Δίκτυο

Εικόνα: markos
Submitted by markos on Τρι, 06/03/2007 - 02:12

Το UNIX χρησιμοποιείται αυτή τη στιγμή ως η σπονδυλική στήλη (backbone) ολόκληρου του Internet, καθώς όλες σχεδόν οι ζωτικής σημασίας υπηρεσίες παρέχονται από τέτοια συστήματα. Στην πραγματικότητα το Internet αναπτύχθηκε για την επικοινωνία και ανταλλαγή δεδομένων μεταξύ συστημάτων UNIX. Είναι επόμενο να περιμένουμε ότι ένα σύστημα UNIX και κατά συνέπεια και το Linux, θα παρέχει μεγάλη ευελιξία στην διαχείριση των παραμέτρων ενός δικτύου. Το Linux, ως πυρήνας, έχει τη δυνατότητα υποστήριξης πολλών πρωτοκόλλων επικοινωνίας, πέρα από το βασικό TCP/IP (και τη νέα υλοποίηση με IPv6) που χρησιμοποιείται στο Internet. Ανάμεσα σε άλλα, υποστηρίζει IPX, Appletalk, DECnet και X.25. Αυτό πρακτικά σημαίνει ότι το Linux μπορεί να επικοινωνήσει ακόμη και με τα πιο εξωτικά και εξειδικευμένα συστήματα, όπως δρομολογητές (routers), συσκευές RIP, συστήματα VAX, κλπ.

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

Στον οδηγό αυτό θα αναφερθούμε μόνο στην διαχείριση δικτύου που βασίζεται στο πρωτόκολλο TCP/IP, αφού είναι το πιο συνηθισμένο και απαραίτητο για σύνδεση στο Internet.

Για τη σύνδεση σε ένα δίκτυο TCP/IP, το πιθανότερο είναι ότι θα χρησιμοποιήσετε μια κάρτα δικτύου Ethernet ή μια σύνδεση PPP. Υπάρχουν και άλλοι τρόποι όπως (A)DSL modems, συνδέσεις Wireless και δορυφορικές, αλλά οι περισσότεροι τρόποι σύνδεσης ρυθμίζονται με παρόμοιο τρόπο. Η κάθε συσκευή δικτύου αποτελεί την διασύνδεση του υπολογιστή στο δίκτυο (το interface όπως αλλιώς λέγεται). Για τη ρύθμιση της κάθε διασύνδεσης το Debian χρησιμοποιεί ένα συνδυασμό εντολών, αρχείων ρυθμίσεων και σεναρίων κελύφους. Ο βασικός κορμός όμως όλων αυτών είναι η εντολή ifconfig (interface config). Η εντολή αυτή ρυθμίζει όλες τις παραμέτρους μιας διασύνδεσης όπως διεύθυνση IP, μάσκα δικτύου (netmask) και άλλες παραμέτρους εξειδικευμένες για κάθε συσκευή δικτύου (mtu, hardware address, metrics, multicast, κλπ). Η πιο συνηθισμένη σύνταξή της είναι η εξής:

ifconfig <device> up/down <IP ADDRESS> [netmask MASK]
ifconfig [-s] [device]

Η πρώτη σύνταξη ενεργοποιεί ή απενεργοποιεί μια διασύνδεση στο δίκτυο, η οποία χρησιμοποιεί τη συσκευή δικτύου device και θα έχει διεύθυνση IP την δοθείσα. Η μάσκα δικτύου είναι προαιρετική αλλά είναι σωστή πρακτική να παρέχεται για λόγους σαφήνειας.

Η δεύτερη σύνταξη εμφανίζει αναλυτικές ή περιεκτικές πληροφορίες για τις υπάρχουσες διασυνδέσεις. Η ifconfig δέχεται και άλλες επιλογές και παραμέτρους τις οποίες δε θα αναφέρουμε εδώ (man ifconfig).

Για παράδειγμα για να ορίσουμε την διασύνδεση της συσκευής eth0 με διεύθυνση IP 192.168.10.20 και μάσκα δικτύου 255.255.255.0, εκτελούμε την εντολή:

# ifconfig eth0 up 192.168.10.20 netmask 255.255.255.0

Το αποτέλεσμα της ρύθμισης μπορούμε να το διαπιστώσουμε ξανατρέχοντας την ifconfig χωρίς παραμέτρους:

# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:46:0F:39:BD
          inet addr:192.168.10.20  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:9 Base address:0xfcc0 Memory:fecff000-fecff038

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2041732 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2041732 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1033911881 (986.0 MiB)  TX bytes:1033911881 (986.0 MiB)

Στην καταχώρηση eth0 βλέπουμε πολλές πληροφορίες για τη διασύνδεση σε αυτή τη συσκευή, όπως τον τύπο, την διεύθυνση υλικού (hardware ή MAC address), την διεύθυνση IP, τις διευθύνσεις μάσκας και αναμετάδοσης (broadcast) αλλά και πιο τεχνικές πληροφορίες όπως σύνολο πακέτων και που έχουν μεταδοθεί από και προς την διασύνδεση αυτή, αριθμό λαθών και συνολικό μέγεθος μεταφοράς σε bytes.
Πέρα από τις πληροφορίες για την διασύνδεση eth0 που μόλις δημιουργήσαμε, η ifconfig μας παρέχει πληροφορίες και για μια άλλη διασύνδεση lo, (loopback). Αυτή δεν αντιστοιχεί σε κάποια συσκευή δικτύου αλλά είναι μια διασύνδεση σε επίπεδο λογισμικού και χρησιμοποιείται για τοπική επικοινωνία TCP/IP (δηλαδή στον ίδιο υπολογιστή) και για σκοπούς ελέγχου και ανάλυσης. Αντιστοιχεί πάντα στην διεύθυνση 127.0.0.1 και η ύπαρξή της είναι απαραίτητη καθώς πολλές εφαρμογές στηρίζονται σε αυτήν για εσωτερική επικοινωνία.

Κάποιες φορές ίσως χρειαστεί να ρυθμίσουμε την δρομολόγηση των δικτύων, κάτι που ισχύει ειδικά σε δίκτυα εταιρειών ή ακόμη και σε οικιακά δίκτυα αν έχουμε περισσότερους από έναν υπολογιστές συνδεδεμένους μεταξύ τους. Συνήθως μόνο ο ένας έχει πρόσβαση στο Internet (μέσω π.χ. ISDN ή ADSL) και θέλουμε να χρησιμοποιήσουμε αυτόν ως πύλη (gateway) για τους υπόλοιπους. Η δρομολόγηση αυτή γίνεται είτε αυτόματα κατά την ενεργοποιήση, μέσω του αρχείου interfaces, είτε με την εντολή route.

Η εντολή route δίνει την δυνατότητα αρκετά περίπλοκων δρομολογήσεων, οι οποίες όμως έχουν εφαρμογή μόνο σε συνδέσεις τοπικών και μη τοπικών δικτύων (LAN-WAN, Local Area Networks - Wide Area Networks). Η δρομολόγηση ενός τοπικού οικιακού δικτύου σε μία σύνδεση PPP, γίνεται αυτόματα από το πρόγραμμα pppd (όταν αυτό έχει ενεργοποιημένο την επιλογή defaultroute).
Για την κατανόηση της δρομολόγησης δικτύων, παραθέτουμε το ακόλουθο παράδειγμα.

# route
10.10.1.0       *               255.255.255.0   U     0      0        0 eth4
10.0.0.0        *               255.255.0.0     U     0      0        0 eth2
10.1.0.0        *               255.255.0.0     U     0      0        0 eth3
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth1

Με βάση το αποτέλεσμα της route, μπορούμε να βγάλουμε τα εξής συμπεράσματα:

  • Υπάρχουν τέσσερις ενεργές διασυνδέσεις στον υπολογιστή (interfaces) eth1-eth4.
  • Η eth2 συνδέεται στο δίκτυο 10.0.0.0 με netmask 255.255.0.0 ή όπως συχνά απεικονίζεται 10.0.0.0/16.
  • Η eth3 συνδέεται στο δίκτυο 10.1.0.0/16.
  • Η eth4 συνδέεται στο δίκτυο 10.10.1.0/255.255.255.0 ή 10.10.1.0/24.

Τέλος, η eth1 που χρησιμοποιείται και ως προκαθορισμένη πύλη για όλες τις υπόλοιπες διευθύνσεις συνδέεται στο δίκτυο και ορίζει ως πύλη (gateway) την διεύθυνση 192.168.1.1.

Τι ακριβώς σημαίνει αυτό; Το σύστημα γνωρίζει ότι οποιαδήποτε διεύθυνση IP της μορφής 10.0.x.y ανήκει στο δίκτυο που συνδέεται η eth2. Αντίστοιχα, για τις διευθύνσεις 10.1.x.y θα χρησιμοποιήσει την διασύνδεση eth3 και για τις διευθύνσεις 10.1.10.x την διασύνδεση eth4. Για οποιαδήποτε άλλη διεύθυνση το σύστημα χρησιμοποιεί την διασύνδεση eth1 και αποστέλει όλα τα πακέτα επικοινωνίας στην διεύθυνση 192.168.1.1 που είναι και η προκαθορισμένη πύλη του δικτύου.
Αυτές οι ρυθμίσεις δεν είναι απαραίτητο να γίνονται κάθε φορά που εκκινείται το σύστημα. Το Debian παρέχει αρκετά εξελιγμένα σενάρια κελύφους και εργαλεία που να αναλαμβάνουν και να αυτοματοποιούν όλη τη ρύθμιση του δικτύου κατά την εκκίνηση ή και κατά τη διάρκεια λειτουργίας του συστήματος.

Το βασικό αρχείο ρύθμισης των διασυνδέσεων ενός τυπικού συστήματος Debian (τουλάχιστον στις παρούσες διανομές woody, testing και unstable) είναι το /etc/network/interfaces. Αυτό το αρχείο περιγράφει με ποιον τρόπο θα ρυθμίζεται η κάθε διασύνδεση, αν θα ενεργοποιείται αυτόματα κατά την εκκίνηση, αν θα διευθυνσιοδοτείται αυτόματα μέσω κάποιου πρωτοκόλλου όπως BOOTP ή DHCP αλλά και θα επιτρέπει την απευθείας ρύθμιση της διεύθυνσης IP, της μάσκας και της πύλης του δικτύου της διασύνδεσης. Για παράδειγμα, ας υποθέσουμε ότι έχουμε ένα υπολογιστή που χρησιμοποιεί δυναμική σύνδεση ADSL για πρόσβαση στο Internet, η οποία συνδέεται στην κάρτα δικτύου eth0, ενώ συνδέεται και σε ένα τοπικό δίκτυο μέσω της κάρτας δικτύου eth1. Οι δυναμικές συνδέσεις DSL συνήθως διευθυνσιοδοτούνται μέσω του πρωτοκόλλου DHCP. Ακολουθεί ένα πιθανό αρχείο interfaces που περιγράφει μια τέτοια συνδεσμολογία:

auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
       address 192.168.10.1
       netmask 255.255.255.0

και το αρχείο interfaces ενός άλλου υπολογιστή που συνδέεται στο εσωτερικό δίκτυο μέσω της δικής του eth0:

auto eth0
iface eth0 inet static
       address 192.168.10.5
       netmask 255.255.255.0
       gateway 192.168.10.1

Όπως βλέπουμε, στον δεύτερο υπολογιστή ρυθμίζεται και η προκαθορισμένη πύλη στον πρώτο υπολογιστή που έχει απευθείας πρόσβαση στο Internet.

Χάρη σε αυτό το αρχείο, η ενεργοποίηση/απενεργοποίηση των διασυνδέσεων μπορεί πλέον εύκολα χρησιμοποιώντας τις εντολές ifup/ifdown με το όνομα της διασύνδεσης.
Δηλαδή στο προηγούμενο παράδειγμα η εντολή

# ifup eth0

ενεργοποιεί τη σύνδεση ADSL στον πρώτο υπολογιστή ή την τοπική σύνδεση δικτύου στον δεύτερο. Για περισσότερες πληροφορίες για τις αποδεκτές παραμέτρους των εντολών ifup, ifdown και του αρχείου interfaces παραπέμπουμε στις αντίστοιχες σελίδες οδηγιών.

Στην περίπτωση που χρησιμοποιείτε κάρτα δικτύου PCMCIA, η διαδικασία είναι λίγο διαφορετική. Αρκεί να δηλώσετε τα αντίστοιχα χαρακτηριστικά του δικτύου (διεύθυνση IP, μάσκα, πύλη, DHCP/BOOTP, κλπ) στο αρχείο /etc/pcmcia/network.opts. Χάρη σε αυτό το αρχείο η ρύθμιση του δικτύου θα ενεργοποιείται κάθε φορά που συνδέετε την κάρτα δικτύου PCMCIA στον υπολογιστή σας (αν φυσικά έχετε εγκατεστημένα τα πακέτα PCMCIA).

Έπειτα, η ενεργοποίηση/απενεργοποιήση της αντίστοιχης διασύνδεσης είναι απλώς θέμα εκτέλεσης του σεναρίου κελύφους /etc/pcmcia/network, ως εξής:

/etc/pcmcia/network start|stop|restart devicename

όπου devicename το όνομα της διασύνδεσης (π.χ. eth0).

Διαχείριση ονομάτων και τομέων δικτύου

Κατά την εγκατάσταση είχαμε δηλώσει κάποιο όνομα στον υπολογιστή και πιθανόν και κάποιον τομέα δικτύου στον οποίο ανήκει ο υπολογιστής. Το όνομα του υπολογιστή, το hostname όπως λέγεται μπορούμε να το μάθουμε και να το αλλάξουμε προσωρινά με την ομώνυμη εντολή:

# hostname
silmaril

ενώ με την παράμετρο -i τυπώνει την διεύθυνση IP που αντιστοιχεί στο όνομα αυτό (κάθε διεύθυνση IP μπορεί να αντιστοιχεί σε διαφορετικό hostname, ώστε να είναι δυνατόν ένας υπολογιστής να κατέχει περισσότερα από ένα hostnames).

# hostname -i
10.0.1.150

Μπορούμε επίσης να ορίσουμε προσωρινά ένα διαφορετικό hostname δίνοντάς το ως παράμετρο ή από κάποιο αρχείο ως εξής:

# hostname newhost
# hostname -F hostfile

(Το hostfile πρέπει να περιέχει μόνο τη λέξη newhost)
Οι δύο εντολές είναι ισοδύναμες. Για πιο μόνιμη αλλαγή του hostname, θα πρέπει να αλλάξουμε το αρχείο /etc/hostname.

Αντίστοιχα με τη εντολή hostname, υπάρχει και η εντολή dnsdomainname που εμφανίζει τον τομέα ή το πλήρως δηλωμένο όνομα τομέα (Fully Qualified Domain Name, FQDN) του υπολογιστή:

# dnsdomainname -f
computer.somedomain.company.com

Η αλλαγή του τομέα γίνεται αν ο υπολογιστής δεν είναι συνδεδεμένος σε δίκτυο με δηλωμένο όνομα τομέα (π.χ. ένας οικιακός υπολογιστής). Αν είναι συνδεδεμένος σε τέτοιο δίκτυο για τη σωστή σύνδεσή του στο δίκτυο θα πρέπει να χρησιμοποιήσει το κατάλληλο όνομα τομέα (που θα πρέπει να το παρέχει ο διαχειριστής αυτού του δικτύου). Για οικιακή ή απομονωμένη από δίκτυο χρήση μπορούμε να ορίσουμε ένα τυπικό όνομα τομέα με το αρχείο /etc/domainname.

Επίσης, σε ένα μικρό δίκτυο μπορούμε να αντιστοιχίσουμε ονόματα υπολογιστών με διευθύνσεις IP στο αρχείο /etc/hosts. Αυτό το αρχείο θα πρέπει να υπάρχει σε κάθε υπολογιστή και να είναι συνεπές, δηλαδή να μην υπάρχουν διαφορετικές καταχωρήσεις για τον ίδιο υπολογιστή. Παραπέμπουμε στη σελίδα οδηγιών του αρχείου hosts για περισσοτερες πληροφορίες.

Για μεγαλύτερα δίκτυα υπάρχουν διαφορετικά συστήματα όπως το NIS (Network Information Services) ή το DNS (Domain Name Service) τα οποία χρησιμοποιούν έναν κεντρικό διακομιστή που διατηρεί μια βάση δεδομένων ονομάτων hostnames και διευθύνσεων IP (στην πραγματικότητα το NIS είναι κάτι περισσότερο, βλ. σχετικές οδηγίες στο αντίστοιχο πακέτο). Η διαχείριση αυτών των συστημάτων αποτελεί αντικείμενο εξειδικευμένων βιβλίων και ξεφεύγει από τα όρια αυτού του οδηγού. Θα αναφέρουμε όμως ορισμένες βασικές πληροφορίες για το σύστημα DNS καθώς είναι το πλέον διαδεδομένο σύστημα ονοματολογίας στο Internet.

Για να μάθετε το όνομα ενός υπολογιστή στο Internet γνωρίζοντας την διεύθυνση IP του, ή αντίστροφα, για να βρείτε σε ποια διεύθυνση αντιστοιχεί ένα συγκεκριμένο όνομα (ή πιο σωστά ένα FQDN) μπορείτε να χρησιμοποιήσετε μια από τις εντολές nslookup, host και dig. Η nslookup θεωρείται ξεπερασμένη και τείνει να αντικατασταθεί από τις host και dig. Η host χρησιμοποιείται για μια γρήγορη αναζήτηση χωρίς να δίνει έμφαση σε τεχνικές λεπτομέρειες. Για πιο εμπεριστατωμένη αναζήτηση στο σύστημα DNS, η dig παρέχει πληθώρα πληροφοριών που είναι όμως χρήσιμες μόνο στους διαχειριστές συστημάτων. Για κατανόηση της διαφοράς των εντολών παραθέτουμε την αναζήτηση της διεύθυνσης www.google.org και με τις τρείς εντολές:

# nslookup www.google.org
Note:  nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead.  Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server:         195.66.112.1
Address:        195.66.112.1#53

Non-authoritative answer:
www.google.org  canonical name = www.google.com.
Name:   www.google.com
Address: 216.239.51.99

Η nslookup παρέχει αρκετές βασικές και χρήσιμες πληροφορίες στο χρήστη, όπως την διεύθυνση του διακομιστή DNS που χρησιμοποιήθηκε, και πληροφορίες για το όνομα που αναζητήθηκε (το οποίο στη συγκεκριμένη περίπτωση είναι ένα ψευδώνυμο για το www.google.com και κατευθύνει στην διεύθυνση IP 216.239.32.10).

# host www.google.org
www.google.org is an alias for www.google.com.
www.google.com has address 216.239.51.99

Η host παρέχει μόνο τις πιο βασικές πληροφορίες για το όνομα και αγνοεί – στον βασικό τρόπο κλήσης της εντολής – τις πληροφορίες για τους διακομιστές DNS ή άλλες πιο τεχνικές πληροφορίες.

silmaril:~# dig www.google.org

; <<>> DiG 9.2.2 <<>> www.google.org
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33223
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;www.google.org.                        IN      A

;; ANSWER SECTION:
www.google.org.         345559  IN      CNAME   www.google.com.
www.google.com.         259     IN      A       216.239.51.99

;; AUTHORITY SECTION:
google.com.             132037  IN      NS      ns1.google.com.
google.com.             132037  IN      NS      ns2.google.com.
google.com.             132037  IN      NS      ns3.google.com.
google.com.             132037  IN      NS      ns4.google.com.

;; ADDITIONAL SECTION:
ns1.google.com.         131769  IN      A       216.239.32.10
ns2.google.com.         131769  IN      A       216.239.34.10
ns3.google.com.         131769  IN      A       216.239.36.10
ns4.google.com.         131769  IN      A       216.239.38.10

;; Query time: 75 msec
;; SERVER: 195.66.112.1#53(195.66.112.1)
;; WHEN: Fri Jul 11 02:03:12 2003
;; MSG SIZE  rcvd: 212

Τα σχόλια είναι περιττά για τη dig. Προσφέρει όλες τις πληροφορίες που πιθανόν να χρειαστεί ένας διαχειριστής συστημάτων, αν και για απλή χρήση ίσως κάτι τέτοιο να είναι υπερβολικό. Σε αυτήν την περίπτωση προτιμήστε τη host.

Για την επιτυχή αναζήτηση με οποιαδήποτε από τις εντολές nslookup, host, dig ή οποιοδήποτε άλλο εργαλείο αναζήτησης DNS θα πρέπει να έχουμε δηλώσει κάποιον προκαθορισμένο διακομιστή ονομάτων DNS. Αυτή η δήλωση γίνεται στο αρχείο ρυθμίσεων /etc/resolv.conf και έχει την εξής απλή μορφή:

nameserver <IP address>

Είναι δυνατή η δήλωση και όνοματος hostname αντί για διεύθυνση IP αλλά θα πρέπει να έχετε δηλώσει το όνομα και την αντίστοιχη διεύθυνση IP στο αρχείο /etc/hosts, διαφορετικά δε θα είναι επιτυχείς οι αναζητήσεις DNS.

Ασφάλεια και παρακολούθηση δικτύου

Η διαχείριση ενός δικτύου πέρα από ρυθμίσεις διασυνδέσεων και δρομολογήσεων περιλαμβάνει και παρακολούθηση της κυκλοφορίας σε αυτό, καθώς και την πρόληψη και αντιμετώπιση πιθανών προσπαθειών παραβίασης της ασφαλείας του (security breach). Το Debian θεωρείται από τις πιο ασφαλείς διανομές Linux και κάτι τέτοιο δεν είναι τυχαίο, καθώς παρέχει συνεχή ανανέωση των πακέτων με τις τελευταίες διορθώσεις σε προβλήματα ασφαλείας (security patches) αλλά και μια πληθώρα εργαλείων σχετικά με παρακολούθηση δικτύων, ανίχνευση παραβίασης ασφάλειας και αντιμετώπισής της. Μια απλή αναζήτηση με την εντολή apt-cache με λέξη-κλειδί security θα σας δώσει μια εικόνα της σημασίας που έχει η ασφάλεια στο Debian.

Για λόγους πληρότητας, θα αναφερθούμε σε ορισμένα από τα σημαντικότερα από τα πακέτα του Debian, που χρησιμοποιούνται στη διαχείριση ενός δικτύου.

iptraf
Για απλή παρακολούθηση του δικτύου, από την κυκλοφορία σε επίπεδο διασύνδεσης έως τη φιλτραρισμένη παρακολούθηση της επικοινωνίας με ένα συγκεκριμένο ή μια ομάδα διευθύνσεων IP ή ακόμη και για συγκεκριμένη θύρα TCP/IP, ένα εργαλείο σαν το iptraf είναι πραγματικά απαραίτητο. Πέρα από τις λειτουργίες που αναφέραμε, το iptraf πραγματοποιεί καταμέτρηση σε πραγματικό χρόνο όλων των συνδέσεων TCP/IP καθώς και της κυκλοφορίας των πακέτων UDP ενώ εμφανίζει και μετρητές συνολικού μεγέθους δεδομένων που έχουν μεταδοθεί σε μια ή σε όλες τις διασυνδέσεις. Η iptraf τρέχει σε περιβάλλον κονσόλας.

iptraf 2
Για απλή αναφορά της κατάστασης του δικτύου μπορούμε να χρησιμοποιήσουμε την εντολή netstat, η οποία παρέχει παρόμοιες πληροφορίες με την iptraf αλλά σε περιβάλλον γραμμής εντολών (για χρήση σε σενάρια κελύφους ή για γρήγορη πληροφόρηση).

Πολλές φορές είναι απαραίτητο να γνωρίζουμε αν η σύνδεσή μας όντως λειτουργεί, γιατί, π.χ. ενώ είναι ενεργή δεν έχουμε πρόσβαση στο δίκτυο. Για το σκοπό αυτό υπάρχουν ειδικά εργαλεία όπως οι εντολές ping και traceroute (ή μια πιο χρήσιμη έκδοση της traceroute, η mtr).

Η ping ελέγχει τη σύνδεση μεταξύ δύο υπολογιστών οπουδήποτε και αν βρίσκονται στο Internet και δίνει και ένα μέσο χρόνο απόκρισης, μια χρήσιμη πληροφορία ειδικά αν αναζητούμε κάποιο δικτυακό τόπο WWW ή FTP με γρήγορη σύνδεση. Πολλές φορές η ping δείχνει ότι ο απομακρυσμένος υπολογιστής δεν απαντά ενώ γνωρίζουμε με άλλον τρόπο ότι δεν υπάρχει πρόβλημα με τη σύνδεση ούτε με τον υπολογιστή. Αυτό γιατί συμβαίνει γιατί σε κάποιο σημείο στη διαδρομή τα πακέτα τύπου ICMP που χρησιμοποιεί η ping, απορρίπτονται από κάποιο σύστημα ασφαλείας firewall. Στην περίπτωση αυτή θα πρέπει να χρησιμοποιήσουμε κάποιο άλλο εργαλείο όπως το nmap (για οποίο θα μιλήσουμε παρακάτω). Ακολουθεί ένα παράδειγμα της χρήσης της εντολής ping:

# ping www.forthnet.gr
PING www.forthnet.gr (193.92.150.50): 56 data bytes
64 bytes from 193.92.150.50: icmp_seq=0 ttl=243 time=207.3 ms
64 bytes from 193.92.150.50: icmp_seq=1 ttl=243 time=213.0 ms
64 bytes from 193.92.150.50: icmp_seq=2 ttl=243 time=231.3 ms
64 bytes from 193.92.150.50: icmp_seq=3 ttl=243 time=211.3 ms

--- www.forthnet.gr ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 207.3/215.7/231.3 ms

Η εντολή traceroute εμφανίζει την διαδρομή ενός πακέτου από τον υπολογιστή μας έως την διεύθυνση που θα του δώσουμε ως παράμετρο. Για παράδειγμα, αν είμαστε στο Internet από μια απλή σύνδεση dialup, η διαδρομή που κάνει ένα πακέτο για να φτάσει στον υπολογιστή που χειρίζεται τη διεύθυνση www.kernel.org (που είναι το επίσημο site φιλοξενίας του πηγαίου κώδικα του πυρήνα του Linux) είναι η εξής:

# traceroute www.kernel.org
traceroute to zeus-pub.kernel.org (204.152.189.116), 30 hops max, 38 byte packets
 1  -- DELETED--  110.186 ms  57.099 ms  40.391 ms
 2  -- DELETED--  99.239 ms  56.281 ms  39.729 ms
 3  gip-ath-4-s0-5.globalone.gr (195.119.130.5)  79.741 ms  76.734 ms  79.914 ms
 4  57.66.64.1 (57.66.64.1)  139.948 ms  178.502 ms  179.842 ms
 5  blcy326-pos-5-0-0.global-one.co.uk (212.167.0.174)  199.982 ms  158.008 ms  160.613 ms
 6  ge3-0.pr1.lhr1.uk.mfnx.net (195.66.224.76)  139.654 ms  150.622 ms  159.613 ms
 7  pos8-0.mpr2.lhr1.uk.above.net (208.184.231.73)  139.892 ms  137.708 ms  140.834 ms
 8  so-4-1-0.cr2.lhr3.uk.mfnx.net (208.185.156.2)  159.189 ms  197.172 ms  159.954 ms
 9  so-7-0-0.cr2.lga1.us.above.net (64.125.31.182)  220.175 ms  236.809 ms  219.974 ms
10  so-1-0-0.cr2.iad1.us.mfnx.net (208.184.233.65)  219.281 ms  237.998 ms
so-1-0-0.cr1.lga1.us.mfnx.net (208.185.0.233)  239.752 ms
11  so-1-0-0.cr1.iad1.us.mfnx.net (208.184.233.61)  257.274 ms  236.612 ms  219.718 ms
12  so-1-0-0.cr1.dca2.us.mfnx.net (208.184.233.125)  261.211 ms  218.685 ms  219.642 ms
13  so-3-0-0.mpr3.sjc2.us.mfnx.net (208.184.233.133)  300.054 ms  357.976 ms  339.308 ms
14  pos5-0.mpr1.pao1.us.mfnx.net (208.184.233.142)  300.579 ms  398.004 ms  300.600 ms
15  isc-above-oc3.pao.isc.org (216.200.0.10)  298.789 ms  297.269 ms  299.921 ms
16  r8-pao1.r3.sfo2.isc.org (192.5.4.233)  300.014 ms  457.189 ms  420.235 ms
17  zeus-pub.kernel.org (204.152.189.116)  300.167 ms  294.637 ms  299.943 ms

Ακριβώς το ίδιο αποτέλεσμα μας δίνει και η mtr, αλλά με συνεχή ανανέωση και με δύο διαφορετικούς τρόπους εμφάνισης, σε κονσόλα και σε γραφικό περιβάλλον GTK.

mtr
Για πιο εξειδικευμένη ανίχνευση ή σάρωση ενός δικτύου, τα εργαλεία satan, nmap, netcat και nessus χρησιμοποιούνται από επαγγελματίες και ειδικούς στην ασφάλεια δικτύων για την ανίχνευση πιθανών τρωτών σημείων (vulnerabilities) σε ένα δίκτυο ή ένα υπολογιστή.

Πέρα από την ενεργητική προστασία δηλαδή την ανίχνευση για τρωτά σημεία με ένα από τα προανεφερθέντα εργαλεία, υπάρχει και η παθητική προστασία, που δίνει αναφορά για μη πιστοποιημένη πρόσβαση σε έναν υπολογιστή (non-authenticated access), δηλαδή όταν κάποιος συνδεθεί στο σύστημα χωρίς να δικαιούται. Αυτοί οι χρήστες λέγονται hackers και η διαδικασία hacking. Αντίθετα με την κοινή πεποίθηση, οι hackers δεν προκαλούν ζημιές στους υπολογιστές τους οποίους “σπάνε”, αλλά το κάνουν καθαρά για λόγους κύρους και αναγνώρισης από τους ομοίους τους. Συνήθως οι hackers προσφέρουν και τις υπηρεσίες τους σε μεγάλες εταιρείες, οργανισμούς ή κρατικές υπηρεσίες ώστε να βεβαιωθούν αυτές για την ασφάλεια των δικτύων τους. Πιο επικίνδυνοι είναι οι crackers, ή freakers που μοναδικό σκοπό έχουν την καταστροφή δεδομένων και τη δημιουργία πανικού.

Ανεξαρτήτως της ονομασίας τους όμως όλοι είναι ανεπιθύμητοι, όσον αφορά την πρόσβαση σε έναν υπολογιστή. Για την αποφυγή της ενδεχόμενης παραβίασης του υπολογιστή σας, το Debian προσφέρει και αρκετά πακέτα για ανίχνευση παράνομης εισβολής στο σύστημα (Intrusion Detection Systems, IDS), όπως το LIDS, aide, idsa, snort, harden-nids, samhain.

Επίσης, ο πυρήνας του Linux προσφέρει μεγάλη παραμετροποίηση στην επιτρεπόμενη κυκλοφορία των πακέτων επικοινωνίας TCP/IP, UDP, ICMP και IGMP μέσω των εντολών ipchains ή iptables στους νεώτερους πυρήνες (2.4.x), δημιουργώντας ένα firewall. Οι εντολές αυτές είναι αρκετά περίπλοκες στη χρήση τους και συχνά χρησιμοποιούνται άλλα προγράμματα που λειτουργούν ως wrappers και πιθανώς να εμφανίζουν κάποιο γραφικό περιβάλλον. Παραδείγματα τέτοιων προγραμμάτων είναι το fwbuilder, guarddog, knetfilter, shorewall.

Χρήσιμα πακέτα: nis, iptraf, etherconf, ethereal, nessus, satan, nmap, mtr, iptraf, traceroute, host, tcpdump, netkit-ping, dnsutils, ipchains, iptables, fwbuilder, guarddog, knetfilter, shorewall, lidstools-2.2, lidstools-2.4, aide, idsa, snort, harden-nids, samhain.

0
Your rating: None