Latest Articles, Slider, Λογισμικό — 12 Ιουλίου, 2012 22:53

Άλλαξε DNS με ένα κλικ. Χρησιμοποίησε openDNS για ασφάλεια-ταχύτητα

Δημοσιεύτηκε από

Για την περιήγηση μας στο διαδίκτυο, ο παροχος μας δίνει εκτός της ip μας και το αναγκαίο Domain Name System (DNS), προκειμένου να μπορούμε στο διαδίκτυο και να ανοίξουμε ιστοσελίδες.
Για να καταλάβετε τι κάνει το DNS, σκεφθείτε το σαν ένα τηλεφωνικό κατάλογο του Διαδικτύου. Το σύστημα DNS επιτρέπει την ανεύρεση ενός διακομιστή (server) με βάση το όνομά του. Έτσι είναι ευκολότερο να θυμόμαστε την ιστοσελίδα google.com παρά τη διεύθυνση 74.125.77.104.
-Πιο αναλυτικά (απο την wikipedia):

Ο χώρος ονομάτων τομέων(Domain Name Space ) του DNS είναι δομημένος ιεραρχικά σε δενδρική δομή, με τα ονόματα να φέρουν πληροφορία που αντανακλά τη θέση τους στη δομή αυτή. Ο χώρος ονομάτων DNS ενός ιδιωτικού δικτύου μπορεί να διαφέρει με τον χώρο ονομάτων DNS του Διαδικτύου ή κάποιου άλλου διαδικτύου. Η αντιστοίχιση ονομάτων με αριθμητικές διευθύνσεις προέκυψε επειδή οι αριθμητικές διευθύνσεις IP δεν είναι εύχρηστες απο τους ανθρωπους. Οι άνθρωποι αποδιδουν σημασία και θυμούνται ευκολότερα ονόματα.
Το Σύστημα DNS βασίζεται σε μια διανεμημένη βάση δεδομένων η οποία «τρέχει» στους εξυπηρετητές (servers) του συστήματος και αποτελείται από ζώνες DNS οργανωμένες σε μια δενδρική δομή. Οι εξυπηρετητές DNS χωρίζονται στους αρχικούς (root) εξυπηρετητές, τους εξουσιοδοτημένους (authoritative) εξυπηρετητές, και τους αποθηκευτικούς (caching) εξυπηρετητές. Οι εξουσιοδοτημένοι εξυπηρετητές DNS χωρίζονται σε πρωτεύοντες και εναλλακτικούς (masters and slaves). Συνήθως κάποιος από τους πρωτεύοντες εξουσιοδοτημένους εξυπηρετητές ενός ονόματος χώρου είναι ο πρωταρχικός. Σε αυτόν γίνονται συνήθως οι αλλαγές.
Οι άνθρωποι διαβάζουν τα ονόματα DNS από αριστερά προς τα δεξιά και πάντα παραλείπουν την τελευταία τελεία. Στα ονόματα DNS επιτρέπεται η χρήση αλφαριθμητικών στοιχείων παυλών και τελειών. Συνεχόμενες παύλες και συνεχόμενες τελείες απαγορεύονται. Στα ονόματα χώρου τα κεφαλαία γράμματα είναι ισοδύναμα με τα μικρά γράμματα. Π.χ example.net και exAmpLE.nET είναι το ίδιο όνομα.
Η σχέση μεταξύ ονομάτων και διεύθύνσεων IP δεν είναι 1 προς 1. Δηλαδή σε ένα όνομα μπορεί να αντιστοιχούν πολλές διευθύνσεις IP και σε μια διεύθυνση πολλά ονόματα.

Το σύστημα DNS προέκυψε επειδή στους άνθρωπους ονόματα σημαίνουν περισσότερα απο αριθμητικές διευθύνσεις αλλά στην συνέχεια το συστημα DNS απέκτησε και άλλες χρήσεις εξίσου σημαντικές.

Το DNS επιτρέπει την ανεύρεση ενός εξυπηρετητή (server) ή μιας υπηρεσίας σε έναν εξυπηρετητή χρησιμοποιώντας ένα όνομα. Ένας εξυπηρετητής μπορεί να προσφέρει ταυτόχρονα περισσότερες από μια υπηρεσίες, σύμφωνα με διάφορα πρωτόκολλα, όπως το HTTP, το FTP, το POP, το IMAP και το SMTP, δίνοντας τη δυνατότητα στο χρήστη να συνδεθεί σε μια ιστοσελίδα (HTTP), σε μια αποθήκη αρχείων (FTP), ή να λάβει email (POP ή IMAP). Για ένα χρήστη είναι ευκολότερο να θυμάται το όνομα της ιστοσελίδας www.google.gr [σ 10] παρά το χ.ψ.ω.ζ:80 (ο συνδυασμός διεύθυνσης IP και θύρας TCP στην οποία βρίσκεται ο εξυπηρετητής HTTP του www.google.gr).

Επίσης το DNS χρησιμοποιείται για να αντιστοιχίσει διευθύνσεις IP με ονόματα. Έτσι ο διαχειριστής ενός δικτύου μπορεί να χρησιμοποιήσει ονόματα για να επικοινωνήσει ή να απλώς να θυμάται ονόματα μηχανημάτων, τοποθεσίες, ονόματα χώρου, και ότι άλλο σκεφτεί [σ 11]. Τα ονόματα των διευθύνσεων IP λειτουργούν και κατά κάποιον τρόπο σαν εγγυήσεις μιας και μόνο οι διαχειριστές των δικτύων – κάτοχοι των διευθύνσεων μπορούν να τα αλλάξουν. Στην λειτουργία του ηλεκτρονικού ταχυδρομείου το όνομα της διεύθυνσης IP του εξυπηρετητή ηλεκτρονικού ταχυδρομείου (Mail Server) θεωρείται απόδειξη του ότι είναι αυτός που λέει
Το σύστημα DNS δίνει, τέλος, τη δυνατότητα αντιστοίχισης μεταξύ ονομάτων, καθώς και τη δυνατότητα αντιστοίχισης ενός ονόματος σε πολλαπλές διευθύνσεις IP (round robin DNS και IP sorting), πράγμα που βοηθά στη διαμοίραση του φόρτου μιας δικτυακής υπηρεσίας σε περισσότερους του ενός εξυπηρετητές ή την κατεύθυνση των πελατών δικτυακών υπηρεσιών σε γεωγραφικά κοντινότερους εξυπηρετητές.
Στο σύστημα DNS είναι δυνατή η αντιστοίχιση άπειρων ονομάτων σε μία διεύθυνση IP ή μια ομάδα διευθύνσεων IP. Αυτό διευκολύνει λογιστικά την διαχείριση εξυπηρετητών δικτυακών υπηρεσιών και βοηθά στην οικονομία διευθύνσεων IP..

Η openDNS είναι μια εταιρία στο Σαν Φρανσίσκο που έχει τέτοιους “τηλεφωνικούς καταλόγους” (public DNS servers) και προσφέρει καλύτερες και πιο αξιόπιστες υπηρεσίες, φίλτρα για phishing και άλλα.
Δεν είναι λίγες οι φορές που χρησιμοποιούνται οι openDNS, για βελτίωση της ταχύτητας, για περισσότερη ασφάλεια, καθώς παρέχει πολύ καλό φιλτράρισμα. Μπορείτε να το επιλέξετε σε διαφορετικά επίπεδα. Αυτή η λειτουργία μπορεί να μην είναι τόσο περιεκτική όσο άλλες λύσεις άλλα για δίκτυα με λίγους υπολογιστές(SOHO) είναι αρκετά καλή.
Ακόμα παρέχει την δυνατότητα να μπλοκάρεται μεμονωμένα URL. Παραδείγματος χάριν, αν δεν θέλετε οι χρήστες του δικτύου σας να έχουν πρόσβαση στο microsoft.com, απλά προσθέτετε την διεύθυνση του στην black-list.
To σημαντικότερο είναι πως τρέχει ένα υψηλής απόδοσης δίκτυο που διανέμεται γεωγραφικά. Το OpenDNS αποκρίνεται στην “ερώτησή” (query) σας από την κοντινότερη θέση.

Εδω να θυμίσουμε πως και η Google έχει ξεκινήσει κάτι αντίστοιχο, παρέχοντας τα δικά της DNS, τα οποία και αυτά είναι πιο καλά από θέμα ταχύτητας, συγκριτικά με αυτά των providers.
Πρ’ ολ’ αυτά οι openDNS servers, θεωρούνται πιο αξιόπιστοι και έτσι με αυτούς είναι καλύτερα να ασχοληθούμε.


Εκτός από δίκτυα, τους openDNS servers, μπορεί να χρησιμοποιήσει ο καθένας και στο 90% των περιπτώσεων τα αποτελέσματά είναι εντυπωσιακά.
Αυτό μπορεί να γίνει εύκολα σε οποιοδήποτε λειτουργικό σύστημα από τις ρυθμίσεις του ρουτερ μας (η αυτές του συστήματος μας), μα σίγουρα δεν το ξέρουν πολλοί άνθρωποι η ακομα φοβούνται να πειράξουν αυτές τις ρυθμίσεις.
Στο παρελθόν έχουμε κάνει κάμποσα σχετικά αρθρα, με τελευταία τα:
Aλλαγή DNS server
DNS Crypt: Κρυπτογράφηση σε επίπεδο DNS!
και χρήσιμο επισης, θα σας φανεί και το:
Resolvconf – Πως να το χρησιμοποιήσετε!

Εμείς για να διευκολύνουμε την κατάσταση και σε μια εποχή που θέλουμε περισσότερη ανεξαρτησία, καθώς η τάση για παρακολούθηση από παντού έχει λάβει επικές διαστάσεις, προσπαθήσαμε να διευκολύνουμε την κατάσταση, ώστε το openDNS, να είναι προσβάσιμο σε όλους, με δυο κλικ.
Όλα αυτά σ’ ένα σκριπτακι (sh) που αρκεί να το κατεβάσετε, να το αποσυμπιέσετε (με δεξί κλικ επάνω του, έχετε την επιλογή) και αφού τσεκάρετε ότι είναι Εκτελέσιμο (δεξί κλικ επάνω του>Ιδιότητες>Δικαιώματα και να είναι τικαρισμενη η σχετική επιλογή):

αρκεί  να κάνετε διπλό κλικ επάνω του (στην σχετική ερώτηση επιλέξτε καλύτερα: Εκτέλεση από Τερματικό, μα και απλώς Εκτέλεση να επιλέξετε το ίδιο είναι).
Αλλιώς μπορείτε να ανοίξετε το τερματικό/κονσόλα σας, να το σύρετε (drag & drio) και να πατήσετε Enter μετά.
Στη συνέχεια σε ελάχιστα βήματα η αλλαγή θα γίνει και πλέον θα έχετε openDNS, αντί αυτών των παροχων σας. Κανονικά θα πρέπει να σας δουλέψει, ότι διανομή και να έχετε.
Σε κάθε περίπτωση για να τρέξει, πρέπει να έχετε δικαιώματα διαχειριστή. Αυτό μπορεί να γίνει δίνοντας την εντολη sudo πριν, πατώντας Enter και στη συνέχεια, δίνοντας τον κωδικό σας που θα ζητηθεί.

-Το shell script, είναι ανεβασμένο, στο Dropbox του osarena:


Είναι μια δουλειά του Πάνου και αναμένουμε να μας πείτε πως σας δούλεψε και τι διαφορές είδατε.

Για να δείτε ότι όντως δούλεψε μπορείτε να χρησιμοποιήσετε την εντολή nslookup.Για παράδειγμα με: nslookup www.google.gr Θα πάρετε ανάμεσα στις απαντήσεις και την Ip του dns!Τέλος να τονίσουμε ότι το πρόγραμμα σώζει μόνο τις τελευταίες ρυθμίσεις που υπάρχουν σαν dns.Άμα δηλαδή θέλετε να δοκιμάσετε διαφορετικούς dns αυτό που πρέπει να κάνετε είναι Αλλαγή DNS1 Επαναφορά αρχικών ρυθμίσεων Αλλαγή DNS2 Είδαλλως αν κάνετε: Αλλαγή DNS1 Αλλαγή DNS2 Επαναφορά ρυθμίσεων=>DNS1 Και χάνονται οι αρχικές ρυθμίσεις!

O κώδικας του είναι ο παρακάτω:

#!/bin/bash

# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
whiptail –title “Osarena dns changer” –msgbox “This script must be run as root” 8 78
exit 1
fi

#cancel dialog
function cancel_dialog(){
whiptail –title “Osarena dns changer” –msgbox “No configuration made.” 8 78
}
#get dns server ip dialog
function get_dns(){
local temp
temp=$(whiptail –inputbox “”$1″ DNS Server” 8 78 –title “Osarena dns changer” 3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus != 0 ]; then
cancel_dialog
exit
fi
echo “$temp”
}
#check home folder existance
function check_folder(){
dir=”${HOME}/.osarena_dns_changer”
if [ ! -d $dir ] ;then
mkdir $dir
user=$(ls -la $dir | awk ‘{print $3″ “$4 }’|awk ‘NR>2′|awk ‘NRhead_new
echo “nameserver “$2 >>head_new
cat ~/.osarena_dns_changer/head >>head_new
cp head_new /etc/resolvconf/resolv.conf.d/head
resolvconf -u
}
#undo configuration
function resolvconf_undo(){
local input
input=$(check_folder)
cd ~/.osarena_dns_changer/
if [ $input = "Yes" ];then
if [ -f head ];then
cp head /etc/resolvconf/resolv.conf.d/head
resolvconf -u
whiptail –title “Osarena dns changer” –msgbox “Dns default again” 8 78
else
whiptail –title “Osarena dns changer” –msgbox “Dns default config found.” 8 78
fi
else
whiptail –title “Osarena dns changer” –msgbox “Folder error.Osarena folder was deleted or never created.Please do the configuration manual” 8 78
fi
}

#configuration for /etc/resolv.conf
function oldresolv_apply(){
local input
input=$(check_folder)
cd ~/.osarena_dns_changer/
if [ $input = "Yes" ];then
if [ "$(ls -A)" ]; then
whiptail –title “Osarena dns changer” –yesno “Delete current folder contents?” 8 78
exitstatus=$?
if [ $exitstatus != 0 ]; then
cancel_dialog
exit
fi
rm *
fi
fi
cp /etc/resolv.conf backup.conf
echo “#DNS created by Osarena dns changer”>/etc/resolv.conf
echo “nameserver “$1 >>/etc/resolv.conf
echo “nameserver “$2 >>/etc/resolv.conf
cat backup.conf >>/etc/resolv.conf
}

function oldresolv_undo(){
local input
input=$(check_folder)
cd ~/.osarena_dns_changer/
if [ $input = "Yes" ];then
if [ -f backup.conf ];then
cp backup.conf /etc/resolv.conf
whiptail –title “Osarena dns changer” –msgbox “Dns default again” 8 78
else
whiptail –title “Osarena dns changer” –msgbox “Dns default config found.” 8 78
fi
else
whiptail –title “Osarena dns changer” –msgbox “Folder error.Osarena folder was deleted or never created.Please do the configuration manual” 8 78
fi
}

#function valid_ip belongs to this article:
#http://www.linuxjournal.com/content/validating-ip-address-bash-script
function valid_ip()
{
local ip=$1
local val=1

if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
OIFS=$IFS
IFS=’.’
ip=($ip)
IFS=$OIFS
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
&& ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
val=$?
fi
echo $val
return $val
}

#main script
res=$(whiptail –title “Osarena dns changer” –menu “Choose an option” 15 58 5 “Change DNS” “” “Restore DNS” “” 3>&1 1>&2 2>&3)
if [ "$res" = "Change DNS" ]; then
while true; do
primary=$(get_dns primary)
secondary=$(get_dns secondary)
if [ $(valid_ip $primary) != 0 ]; then
whiptail –title “Osarena dns changer” –yesno “You entered wrong primary address try again?” 8 78
exitstatus=$?
if [ $exitstatus != 0 ]; then
cancel_dialog
exit
fi
continue
fi

if [ $(valid_ip $secondary) != 0 ]; then
whiptail –title “Osarena dns changer” –yesno “You entered wrong secondary address try again?” 8 78
exitstatus=$?
if [ $exitstatus != 0 ]; then
cancel_dialog
exit
fi
continue
fi
if [ -z $(which resolvconf) ];then
oldresolv_apply $primary $secondary
else
resolvconf_apply $primary $secondary
fi

whiptail –title “Osarena dns changer” –msgbox “Configuration done.” 8 78
exit
done
else
if [ -z $(which resolvconf) ];then
oldresolv_undo
else
resolvconf_undo
fi
exit
fi

Διαβάστε Επίσης:

  • Blades

    Το έκανα extract, το έκανα εκτελέσιμο και το έτρεξα in terminal και λέει must run as admin και κλείνει….???

    • Kostas M

      Πρεπει να εκτελεσεις το script σαν root. Για να το τρεξεις ανοιξε το τερματικο εκει που εχεις κατεβασει το to script και δωσε: sudo ./dns.sh
      Πατα enter, πληκτρολογησε τον κωδικο του χρηστη “root” και πατα enter ξανα. Αμεσως θα πρεπει να τρεξει το script.

  • redpower redpower

    Στο primary dnd server τι βάζω?? την ip του provider π.χ 192.168…..

  • toumbo

    Ολε!! Απο τοτε που το ειπες στο φβ το εψαχνα! Δεν το ηξερα! Σ’ευχαριστουμε!!!

  • PanosM

    Καταρχήν να ευχαριστήσω τον Κωνσταντίνο για την παρουσίαση του.Περιμένω σχόλια και απόψεις για τον κώδικα καθώς είναι το πρώτο ολοκληρωμένο script που γράφω σε bash οπότε να είστε ευγενικοί!@redpower σαν primary server βάζεις τον πάροχο του dns Πχ για OpenDns είναι 208.67.222.222 και secondary 208.67.220.220!

    • redpower redpower

      Thanks.Πολύ καλή δουλειά και γρήγορη.Υπάρχει άλλος τρόπος να δούμε εάν έγινε η δουλεία μας εκτός από το τελευταίο μήνυμα configuration done??
      Καμιά εντολή??

      • PanosM

        Σωστό!Ξέχασα να το παραθέσω nslookup http://www.google.gr εκεί θα σου δείξει την ip Που χρησιμοποιήσε για DNS!

        • redpower redpower

          Sorry που ξαναενοχλώ εάν βάλω το 8.8.8.8 που νομίζω είναι της google είναι καλύτερο???Εννοώ έχει κάποια διαφορά στην ασφάλεια και ταχύτητα???

          • PanosM

            O Καθένας βάζει ότι θέλει!Κάτι γνωστό δεν υπάρχει που να λέει πιο είναι πιο καλό σε σχέση με ασφάλεια!Το opendns είναι πιο πολύ για αυτούς που θέλουν παραμετροποίηση σε επίπεδο dns ξέρεις κάποιος να κόψει την πρόσβαση πχ στο fb απο έναν υπολογιστή (και ας υπάρχει και άλλος τρόπος)!

          • redpower redpower

            Το δοκίμασα σε άλλον υπολογιστή με xubuntu 11.10 και στον firefox δεν μπαίνει στο google.Σε gmail και youtube μπαίνει αλλά στο ίδιο το firefox δεν μπαίνει.Πως μπορώ να το επαναφέρω στις αρχικές ρυθμίσεις για να δω εάν φταίει αυτό???

          • redpower redpower

            Άκυρο δεν φταίει καθόλου αυτό..

  • http://www.facebook.com/profile.php?id=1162888353 Aggełos Angełos

    Katarxas signwmi gia ta greeklish alla to lubuntu mou pathenei plaka kai grafei mono agglika kamia fora!! (ama kserete tpt pes te mou!!!)

    Etreksa to scriptaki kai ontos allakse to dns! H erwtisi mou einai:
    Allakse to DNS tou router i mesa sto PC? (mporei na rwtaw xazomara alla kalitera blakas mia stigmi para pote!!!)

    Kai ama kanw restart tha allaksei??

    Pws epanaferw to palio DNS pou den kserw poio einai???? :D
    (Eimai stin Forthnet!!!)

    Euxaristw gia to xrono sas!!

    • PanosM

      Άγγελε καλησπέρα!Ο DNS άλλαξε τοπικά στο pc και όχι στο router.Μετά για να κάνεις restore υπάρχει έτοιμη λειτουργία οπότε δεν καταλαβαίνω πιο πρόβλημα αντιμετωπίζεις!Για ότι θέλεις ξαναστείλε!