5.1
Γενικά εισαγωγικά
Ο
τομέας της ασφάλειας των δικτύων είναι πολύ βασικός, καθώς η
αύξηση των δικτύων δίνει την δυνατότητα της εύκολης διανομής
πηγών και πληροφοριών σε οποιοδήποτε μέρος της γης, γίνεται
επιτακτική η ανάγκη προστασίας των πηγών και της πληροφορίας
από παράτυπη και μη εξουσιοδοτημένη χρήση.
Από
την μελέτη του ΑΤΜ και του IPv6 καθώς και από τη λειτουργία
του δικτύου του εργαστηρίου Ycorlab υπήρξε προβληματισμός για
το πώς αντιμετωπίζονται και ποιες λύσεις που δίνονται στα ζητήματα
ασφάλειας τα οποία αυξάνονται σύμφωνα με τις εξελίξεις στο χώρο
των δικτύων.
Στο
ΑΤΜ επίπεδο παρατηρήθηκε ότι δε γίνεται η υλοποίηση ενός “firewall”.
Η δημιουργία firewall απαιτεί την ύπαρξη κάποιου δρομολογητή
ο οποίος και επεξεργάζεται πληροφορία που ανήκει σε επίπεδα
ανώτερα του ΑΤΜ επιπέδου (επίπεδο 2 του OSI). Έτσι λοιπόν οι
ΑΤΜ μεταγωγείς (επίπεδο2 ) δεν παρέχουν κανένα είδους ασφάλεια.
Από τη στιγμή που γίνεται η σύνδεση περνάει χωρίς έλεγχο η πληροφορία
με την μόνη δυνατότητα ελέγχου στο τελικό σημείο όπου μπορεί
να υλοποιηθεί κάποιος “firewall” ή κάποιος άλλος μηχανισμός
ασφάλειας. Υπάρχει έρευνα για τη δημιουργία μηχανισμών ασφάλειας
στο ΑΤΜ κατά τη διάρκεια της διευθέτησης της σύνδεσης αλλά με
τον εξοπλισμό του εργαστηρίου ο μόνος τρόπος δημιουργίας ασφάλειας
σε ένα ΑΤΜ δίκτυο γίνεται με τη χρήση του δρομολογητή Cisco7000
ο οποίος και διαθέτει ΑΤΜ interfaces.
Αντίθετα
με το ΑΤΜ το IPv6 διαθέτει μηχανισμούς ασφάλειας (αναφορά έγινε
στο θεωρητικό μέρος) όμως επειδή η χρήση του είναι ακόμα πειραματική
και επειδή οι ανάγκες του εργαστηρίου για παροχή υπηρεσιών και
επικοινωνία με τον υπόλοιπο κόσμο-Internet γίνεται μέσω του
IPv4, η υλοποίηση μέτρων ασφάλειας έγινε για τις πραγματικές
απαιτήσεις του Ycorlab δηλαδή σε IPv4. Όμως οι βασικές αρχές
και η φιλοσοφία πάνω στην ασφάλεια του IPv4 ακολουθούνται και
από το IPv6.
Στο εργαστήριο
Ycorlab υπήρξε προβληματισμός πάνω στην υλοποίηση της ασφάλειας.
Με βάση τον εξοπλισμό αλλά και τις δικτυακές ανάγκες αναπτύχθηκαν
δύο μοντέλα, της οικονομικής υλοποίησης και της ακριβής υλοποίησης.
Το πρώτο
μοντέλο βασίζεται στο κοινό hardware ενός PC υπολογιστή και
στο ανοικτό λειτουργικό Linux όπου παρέχεται χωρίς κόστος στο
κόσμο, ενώ η δεύτερη λύση βασίζεται στο εξειδικευμένο hardware
της Cisco και στο λειτουργικό Cisco IOS όπου το ιδιοκτησιακό
καθεστώς ανεβάζει το κόστος υλοποίησης. Βέβαια το κόστος έχει
άμεση σχέση με την απόδοση χωρίς αυτό να σημαίνει ότι δεν μπορούν
να δοθούν φτηνές ικανοποιητικές λύσεις.
Μετά από
μία εισαγωγή στα γενικά περί ασφάλειας θα παρουσιαστεί στο πρώτο
μέρος η οικονομική υλοποίηση του φτηνό μοντέλο Linux-PC ενώ
στο δεύτερο μέρος θα παρουσιαστεί το πιο ακριβό μοντέλο CiscoIOS-Cisco7000.
5.2
Γενικά περί ασφάλειας
Δεν
είναι δυνατό να υπάρξει 100% ασφαλές δίκτυο. Η πληροφορία πρέπει
να είναι προσβάσιμη για να είναι χρήσιμη, όμως η ασφάλεια μειώνεται
όσο πιο προσβάσιμη γίνεται η πληροφορία. Γι αυτό το λόγο η ισορροπία
μεταξύ πρόσβασης και ασφάλειας βασίζεται στη πολιτική που ασκεί
η διαχείριση του δικτύου. Η σωστή ασφάλεια χρειάζεται προσεκτικό
σχεδιασμό έτσι ώστε η παράτυπη, χωρίς άδεια πρόσβαση να είναι
δύσκολο να συμβεί και εύκολο να ανιχνευτεί.
Η
ασφάλεια ενός δικτύου περιλαμβάνει ένα μεγάλο εύρος θεμάτων.
Τέτοια θέματα περιέχουν τη προστασία του δικτύου και των σχετικών
συσκευών, τη προστασία της πληροφορίας που αποθηκεύεται σε ένα
σύστημα ή ταξιδεύει πάνω στο δίκτυο καθώς και τη προστασία εναντίων
των χρηστών που δεν έχουν άδεια πρόσβασης.
Ένα
ασφαλές δίκτυο σημαίνει ότι όλα τα συστήματα του δικτύου μπορούν
να πραγματοποιήσουν τα εξής:
- Να
αποτρέψουν τη πρόσβαση στη πληροφορία σε μη εξουσιοδοτημένους
χρήστες
Να
αποτρέψουν τη φθορά πληροφορίας που απευθύνεται σε συστήματα
ή χρήστες.
-
Να
αποτρέψουν τη μη εξουσιοδοτημένη αλλαγή στη πληροφορία που
πραγματοποιείται από χρήστες ή εισβολείς.
Γρήγορη
επαναφορά του συστήματος σε σταθερή κατάσταση ύστερα από
δυσλειτουργία του υλικού ή λογισμικού μέρους.
Μέρος
λοιπόν των παραπάνω στόχων για ασφάλεια στο δίκτυο πραγματοποιείται
μέσω μηχανισμών για τον έλεγχο της πρόσβασης στο δίκτυο. Tέτοιοι
μηχανισμοί είναι, οι IP Filtering Firewalls, οι Application/Proxy
Gateways και οι Access Lists(CiscoIOS). Αυτοί οι μηχανισμοί
διαβαθμίζονται από πολύ απλούς σε αρκετά πολύπλοκους και οι
βασικές αρχές λειτουργίας τους περιέχουν:
- Περιορισμούς
στη παροχή πρόσβασης προς τα έξω ή προς τα έσω.
Μέσω
των περιορισμών στη παροχή της πρόσβασης ουσιαστικά ελέγχεται
σε ποιόν χρήστη ή host θα δοθεί παροχή χρήσης TCP υπηρεσίας
όπως το TELNET ή το FTP.Αυτοί οι περιορισμοί τίθονται ανά χρήστη
ή host.
Στο
φιλτράρισμα πακέτων εξετάζονται τα datagrams που προορίζονται
για κάποιο σύστημα. Το φιλτράρισμα πακέτων πραγματοποιείται
με βάση το host. Το σύστημα πετάει τα datagrams που έχουν απορριφθεί
από τους περιορισμούς. Αυτή η λογισμικού τύπου τεχνική φιλτράρει
τα datagrams σύμφωνα με το πρωτόκολλο (TCP,UDP,IP,ICMP) ,τη
διεύθυνση της προέλευσης και του προορισμού και τις UDP ή TCP
πόρτες προορισμού.
5.3
Η οικονομική υλοποίηση (Linux)
5.3.1
IP Filtering
Firewalls
Τα
IP filtering Firewalls είναι ένας ευρέως χρησιμοποιούμενος τρόπος
προστασίας των δυκτίων. Ένα IP filtering firewall μπορεί να
θεωρηθεί σαν ένας δρομολογητής με μια επιπλέον λειτουργία. Η
επιπλέον λειτουργία που παρέχει είναι η δυνατότητα να φιλτράρει
τα πακέτα που φτάνουν στο IP επίπεδο και να αποφασίζει σύμφωνα
με ορισμένους κανόνες εάν θα προωθήσει(Forward) το πακέτο στον
προορισμό του, ή θα το διαγράψει. Η λειτουργία του λοιπόν περιορίζεται
στο IP επίπεδο της στοίβας πρωτοκόλλων του Internet, όπως φαίνεται
και στο Σχήμα 5.3.
Σχήμα
5.1 Επίπεδο Λειτουργίας IP Filtering Firewalls
Οι
κανόνες που χρησιμοποιούνται για το φιλτράρισμα των πακέτων
ελέγχουν τις παραμέτρους που παρουσιάζονται στον Πίνακας 5.12.
Παράμετροι
κανόνων filtering
|
Πρωτόκολλο
Transport επιπέδου του πακέτου (TCP/UDP/ICMP)
|
IP
διεύθυνση της αφετηρίας (source address)
|
Πόρτα
αφετηρίας Transport πρωτοκόλλου (source port)
|
IP
διεύθυνση προορισμού (destination address)
|
Πόρτα
προορισμού Transport πρωτοκόλλου (destination port)
|
Interface
άφιξης στο Filtering firewall
|
Πίνακας
5.12 Παράμετροι κανόνων φιλτραρίσματος πακέτων
Πρέπει
να επισημάνουμε ότι ο τρόπος λειτουργίας των IP filtering firewalls
προϋποθέτει ότι το προστατευόμενο δίκτυο χρησιμοποιεί επίσημες
διευθύνσεις του Internet και όχι διευθύνσεις από τον χώρο διευθυνσιοδότησης
των ιδιωτικών δικτύων.
- Πλεονεκτήματα
των IP Filtering Firewalls
1.
Εύκολη υλοποίηση, λόγο των ενσωματωμένων δυνατοτήτων φιλτραρίσματος
πακέτων στους σημερινούς δρομολογητές.
2.
Επίτευξη μεγάλων ταχυτήτων για περιπτώσεις απλών κανόνων φιλτραρίσματος.
3.
Παρέχει προστασία χωρίς να δυσκολεύει την χρήση του δικτύου
από τον χρήστη. (Transparent security)
Μειονεκτήματα
των IP Filtering Firewalls
1.
Επιτρέπουν την συλλογή χρήσιμης πληροφορίας για την μηχανή
του χρήστη (π.χ. IP διεύθυνση), χρησιμοποιώντας packet sniffers.
2.
Δεν είναι αρκετά ευέλικτα και γίνονται δύσχρηστα στις περιπτώσεις
πολλών υποδικτύων (subnets) με διαφορετικά επίπεδα ασφάλειας
3.
Δεν παρέχουν δυνατότητα αναγνώρισης του χρήστη και για αυτό
δεν μπορούν να επιτρέψουν ή να απαγορεύσουν την πρόσβαση σε
υπηρεσίες ανάλογα με το επίπεδο προνομίων του χρήστη.
4.
Δεν παρέχει πληροφορίες σχετικά με την χρήση της κάθε υπηρεσίας
(application logging)
5.3.2
Application/Proxy GateWays
Τα
application gateways παρουσιάζονται σαν μια λύση που παρέχει
ακόμη μεγαλύτερη ασφάλεια. Το εσωτερικό δίκτυο ουσιαστικά δεν
έχει διασύνδεση με το υπόλοιπο Internet αφού τα proxies για
κανένα λόγο δεν μπορούν να προωθήσουν IP πακέτα.
Ο
χρήστης για να χρησιμοποιήσει κάποια υπηρεσία του δικτύου θα
πρέπει να συνδεθεί πρώτα με το proxy. To proxy στην συνέχεια
θα πραγματοποιήσει εξακρίβωση της ταυτότητας τους (authentication)
και εάν επιτρέπεται η χρήση της υπηρεσίας από τον χρήστη, θα
πραγματοποιήσει την σύνδεση με την υπηρεσία και τον εξυπηρέτη
που ζητήθηκε και θα προωθεί την πληροφορία από και προς τις
δυο κατευθύνσεις. Όπως φαίνεται και στο Σφάλμα! Το αρχείο
προέλευσης της αναφοράς δεν βρέθηκε. η πληροφορία που μεταφέρει
ένα proxy δεν έχει την μορφή IP πακέτων, αλλά πακέτα μιας ροής
δεδομένων ανάμεσα στην εφαρμογή του χρήστη και τον απομακρυσμένο
εξυπηρέτη.
Η
λειτουργία του proxy σε επίπεδο εφαρμογής(Application), απαιτεί
να γνωρίζει το πρωτόκολλο κάθε υπηρεσίας (ftp,http,finger,κ.λ.π.)
που πρέπει να παρέχει για να συνομιλεί με την εφαρμογή του χρήστη
και του εξυπηρέτη. Η έλλειψη της απευθείας σύνδεσης με το Internet
κάνει δυνατή την χρήση διευθύνσεων από τον χώρο διευθύνσεων
για ιδιωτικά δίκτυα.
Πλεονεκτήματα
των Application Gateways
1.
H έλλειψη της απευθείας σύνδεσης του προστατευόμενου δικτύου
από το Internet, αποκρύπτει πληροφορίες για την δομή το δικτύου
που θα μπορούσαν να φανούν χρήσιμες σε ένα επίδοξο εισβολέα.
2.
Λόγο της πλήρης κατανόησης του πρωτοκόλλου μιας εφαρμογής που
πρέπει να έχει ένας proxy μπορεί να παρέχει ασφάλεια σε επίπεδο
εφαρμογής, ελέγχοντας το είδος των δεδομένων που μεταφέρονται.
3.
Είναι δυνατή η συλλογή πληροφοριών μεγάλης λεπτομέρειας, σχετικά
με την χρήση των επιμέρους εφαρμογών.
Μειονεκτήματα
των Application Gateways
1.
Απαιτούν ειδική ρύθμιση από την πλευρά των εφαρμογών του χρήστη,
ώστε να χρησιμοποιούν το proxy.
2.
Η διαδικασία εξακρίβωσης της ταυτότητας του χρήστη πρέπει να
επαναλαμβάνετε για κάθε μια εφαρμογή που ξεκινάει.
3.
Παρουσιάζει έλλειψη ευελιξίας προσαρμογής στις νέες υπηρεσίες
που παρουσιάζονται. Για κάθε νέα υπηρεσία πρέπει να γραφεί το
λογισμικό που θα την υποστηρίξει στο proxy, διαφορετικά δεν
είναι δυνατή η χρησιμοποίηση της.
5.3.3
Πολιτικές ασφάλειας
Το
ποιο σημαντικό μέρος της ασφάλειας ενός δικτύου είναι η πολιτική
που θα υλοποιηθεί μέσω των εργαλείων που υπάρχουν (εδώ firewalls).
Οι δύο βασικές τάσεις που υπάρχουν είναι:
- Ότι
δεν απαγορεύεται ρητά, επιτρέπεται
- Ότι
δεν επιτρέπεται, απαγορεύεται.
Οι
πρώτη παρουσιάζει πολύ μεγαλύτερους κίνδυνους και απαιτεί πολύ
μεγαλύτερη προσπάθεια για να διατηρείται η ασφάλεια του δικτύου
σε υψηλά επίπεδα. Για αυτό το λόγο γενικά προτιμάται η δεύτερη
πολιτική και είναι αυτή που θα παρουσιάσουμε στα παραδείγματα
που θα ακολουθήσουν.
Στην
πραγματικότητα μία πολιτική ασφάλειας πρέπει να είναι ιδιαίτερα
μελετημένη, ούτε τελείως ανοιχτή (πολιτική 1), ούτε τελείως
κλειστή (πολιτική 2), ώστε να μην αφαιρεί το σύνολο της λειτουργικότητας
του από τους χρήστες.
5.3.4
Δημιουργία ενός Firewall με το λειτουργικό Linux 2.0
Μια
φτηνή λύση που μπορεί να αναβαθμιστεί (αναβαθμίζοντας το Hardware)
ανάλογα με τις ανάγκες κάθε (μικρού/μεσαίου) δικτύου αποτελεί
η δημιουργία ενός firewall χρησιμοποιώντας το λειτουργικό Linux.
Για την δημιουργία ενός απλού IP filtering firewall αρκεί μόνο
το λειτουργικό και το πρόγραμμα (ipfwadm) πρόσθεσης και αφαίρεσης
κανόνων φιλτραρίσματος που έρχεται μαζί με όλες τις εκδόσεις
του λειτουργικού. Για την δημιουργία ενός Application Gateway
χρειάζεται κάποιο ειδικό πρόγραμμα που παρέχει αυτή την δυνατότητα.
Η
έκδοση του λειτουργικού που χρησιμοποιήσαμε είναι της εταιρίας
RedHat με όνομα προϊόντος RedHat 4.2 (Biltmore). Το πρόγραμμα
proxy είναι της εταιρίας tis με όνομα Firewall toolkit.
5.3.5
Η Προετοιμασία του πυρήνα για τη δημιουργία Firewall
Η
ρύθμιση του πυρήνα είναι κοινή και για τους δύο τύπους Firewall
και παρουσιάζει μόνο μια μικρή διαφοροποίηση. Ο πυρήνας που
χρησιμοποιoύμε είναι η έκδοση 2.0.30 που περιέχεται και στην
έκδοση της RedHat.
Η
διαδικασία της ρύθμισης ξεκινάει με την εντολή:
make
menuconfig
Στην
Εικόνα 5.2 φαίνονται οι ομάδες επιλογών του πυρήνα. Οι
απαραίτητες επιλογές για την χρήση του πυρήνα με εφαρμογές
firewall παρουσιάζονται στον Πίνακας 5.2.
Εικόνα
5.2 Ομάδες επιλογών πυρήνα Linux 2.0.30
Κατηγορία |
Επιλογές |
Code
maturity level options |
Prompt
for development and/or incomplete code/drivers (Ναι) |
Loadable
module support |
Όλες
τις επιλογές για πλήρες πυρήνα. |
General
setup |
Networking
support (ναι) |
Νetworking
options |
Network
firewalls (Ναι)
TCP/IP networking
(Ναι)
IP forwarding/gatewaying
(Ναι για IP filtering μόνο)
IP firewalling
(Ναι)
IP firewall
packet loggin (Ναι)
IP masquerading
(Οχι)
IP accounting
(Ναι)
IP tuuneling
(Οχι)
IP aliasing
(Οχι)
IP aliasing
(Οχι)
IP PC/TCP compatibility
mode (Οχι)
IP Reverse
ARP (Οχι)
Drop source
routed frames (Ναι)
|
Network
Device support |
Network
Device support (Ναι)
Dummy net driver
support (Ναι)
Ethernet (10
or 100Mbit) (Ναι)
Επιλέξτε τις
κάρτες δικτύου που διαθέτετε.
|
Πίνακας
5.2 Επιλογές πυρήνα απαραίτητες για χρήση ως Firewall
Προσοχή:
Οι οδηγοί των καρτών δικτύου είναι προτιμότερο να επιλεγούν
για να περιληφθούν μέσα στον πυρήνα και όχι σαν modules. Μερικές
φορές η ανίχνευση πολλαπλών καρτών δεν μπορεί να γίνει όταν
ο οδηγός έχει γίνει compile σαν module.
Αφού
σωθούν οι επιλογές, ακολουθεί η δημιουργία (compile) του πυρήνα
με τις εντολές:
make
dep ; make clean
make
zImage
Εγκατάσταση
του πυρήνα
Στη
συγκεκριμένη παράγραφο θα περιοριστούμε στα συστήματα που χρησιμοποιούν
το linux loader (lilo) για την εκκίνηση του συστήματος.
Στο
αρχείο /etc/lilo.conf πρέπει να προστεθούν οι παρακάτω γραμμές:
image=/boot/vmlin-2.0.30-firewall
*/ αντικαταστήστε
με το όνομα που δώσατε στον πυρήνα /*
|
label=firewall |
root=/dev/hda2
*/ εδώ αντικαταστήστε το δικό σας root parttion/* |
append=”ether=10,0x300,eth0
ether=5,0x200,eth1” */αντικαταστήστε με τις κατάλληλες
τιμές για τις δικές σας κάρτες/* |
read-only |
Αφού γίνουν
οι προσθήκες στο αρχείο /etc/lilo.conf, οι αλλαγές ενεργοποιούνται
με την εντολή:
lilo
Εάν
δεν παρουσιασθεί πρόβλημα, στην επόμενη επανεκκίνηση του συστήματος
πρέπει στην προτροπή του lilo να δοθεί firewall<enter>,
για να χρησιμοποιηθεί ο καινούργιος πυρήνας.
5.3.4.2
Ρύθμιση των διευθύνσεων των interface του firewall
Η
ρύθμιση των interfaces γίνεται κατά την εκκίνηση του συστήματος.
Σε αυτή την παράγραφο περιγράφονται περιληπτικά μόνο οι διαδικασίες
ρύθμισης της έκδοσης του λειτουργικού που χρησιμοποιήσαμε (RedHat).
Οι πληροφορίες για τις διευθύνσεις βρίσκονται στον κατάλογο
/etc/sysconfig/network-scripts/ στα αρχεία με όνομα :
ifcfg-ethN , όπου Ν ο αριθμός του interface. Παράδειγμα
του περιεχομένου του αρχείου θα βρείτε στο Παράρτημα Β.
Στον ίδιο
κατάλογο υπάρχουν μεταξύ άλλων δύο προγράμματα (shell scripts)
για την ενεργοποίηση/απενεργοποίηση κάποιου interface. Αφού
συμπληρώσετε τις επιθυμητές τιμές στα αντίστοιχα αρχεία μπορείτε
να ενεργοποιήσετε τις νέες ρυθμίσεις (χωρίς επανεκκίνηση) απενεργοποιώντας
και ενεργοποιώντας ξανά τα interfaces με τις ακόλουθες εντολές:
./ifdown
ifcfg-ethN
./ifup
ifcfg-ethN
Πιστοποιήστε
ότι οι αλλαγές έγιναν, με την εντολή :
ifconfig
Η διαδικασία
φαίνεται στην Σχήμα 5.3.
[root@mantis /root]# cd
/etc/sysconfig/network-scripts/
[root@mantis network-scripts]#
ls
ifcfg-eth0 ifcfg-lo ifdown-ppp
ifup-plip ifup-routes
ifcfg-eth1 ifdhcpc-done
ifdown-sl ifup-post ifup-sl
ifcfg-eth1~ ifdown ifup
ifup-ppp
[root@mantis network-scripts]#
pwd
/etc/sysconfig/network-scripts
[root@mantis network-scripts]#
./ifdown ifcfg-eth1
[root@mantis network-scripts]#
./ifup ifcfg-eth1
[root@mantis network-scripts]#
ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255
Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING
MTU:3584 Metric:1
RX packets:12 errors:0 dropped:0
overruns:0
TX packets:12 errors:0 dropped:0
overruns:0
eth0 Link encap:10Mbps Ethernet
HWaddr 00:60:97:A8:08:F8
inet addr:143.233.241.1
Bcast:143.233.241.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST
MTU:1500 Metric:1
RX packets:272 errors:0
dropped:0 overruns:0
TX packets:190 errors:0
dropped:0 overruns:0
Interrupt:10 Base address:0x300
eth1 Link encap:10Mbps Ethernet
HWaddr 00:60:97:A9:1D:73
inet addr:143.233.34.14
Bcast:143.233.34.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST
MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0
overruns:0
TX packets:0 errors:0 dropped:0
overruns:0
Interrupt:5 Base address:0x200
[root@mantis network-scripts]#
|
Σχήμα
5.3 Διαδικασία Ενεργοποίησης/Απενεργοποίησης του Interface
Στην συνέχεια
και μέχρι το τέλους του κεφαλαίου θα θεωρούμε ότι το interface
eth0 είναι συνδεμένο με το εσωτερικό δίκτυο και το interface
eth1 με το εξωτερικό(Internet).
5.3.4.3
Η ρύθμιση του πίνακα δρομολόγησης του πυρήνα
Εκτός των
διευθύνσεων για τα interface, απαιτείται και η ρύθμιση των διαδρομών
προς τα άλλα δίκτυα στον πίνακα δρομολόγησης του πυρήνα. Οι
διαδρομές ενεργοποιούνται χρησιμοποιώντας την διαδικασία ενεργοποίησης
των interfaces.
- Τις περισσότερες
φορές αρκούν οι διαδρομές στα δίκτυα που είναι συνδεμένα
απευθείας στα interfaces του firewall και μια διαδρομή σε
έναν δρομολογητή που γνωρίζει τις διαδρομές προς όλα τα
υπόλοιπα δίκτυα. Σε αυτή την περίπτωση αρκεί να συμπληρωθεί
η διεύθυνση αυτού του δρομολογητή στην μεταβλητή GATEWAY
στο αρχείο ρύθμισης του interface που βρίσκεται στο κοινό
δίκτυο firewall-δρομολογητή. Μια τέτοια περίπτωση φαίνεται
στην εικόνα 5.4 .
Εικόνα
5.4 Παράδειγμα 1 προστατευμένου L.A.N.
Ο πίνακας
δρομολόγησης για την παραπάνω περίπτωση φαίνεται στην
[root@mantis
network-scripts]# route -n
Kernel IP
routing table
Destination
Gateway Genmask Flags Metric Ref Use Iface
143.233.241.1
0.0.0.0 255.255.255.0 U 0 0 4 eth
143.233.34.14
0.0.0.0 255.255.255.0 U 0 0 1 eth1
127.0.0.0
0.0.0.0 255.0.0.0 U 0 0 1 lo
0.0.0.0
143.233.34.1 0.0.0.0 UG 0 0 1 eth1
[root@mantis
network-scripts]#
|
Εικόνα
5.5 Πίνακας δρομολόγησης παραδείγματος 1
- Εάν χρειαστούν
και άλλες διαδρομές πρέπει να προστεθούν στο αρχείο /etc/sysconfig/static-routes
(Παράρτημα Β).
5.3.4.4
Προστασία του Firewall
Το Firewall
είναι η μόνη ασπίδα προστασίας του εσωτερικού δικτύου από εξωτερικές
απειλές. Η καλύτερη δυνατή προστασία που μπορούμε να πετύχουμε,
ακόμα και εάν έχουμε υλοποιήσει άριστα την βέλτιστη πολιτική
ασφαλείας, περιορίζεται στο βαθμό ασφάλειας που παρέχει το Firewall
σε επιθέσεις εναντίον του ιδίου του Firewall.
Για παράδειγμα
εάν είναι δυνατό να συνδεθεί ο οποιοσδήποτε στο firewall με
την υπηρεσία telnet τότε το δίκτυο που προστατεύει δεν είναι
καθόλου ασφαλές. Για αυτό τον λόγο πρέπει να περιορίζονται στο
ελάχιστο οι υπηρεσίες που παρέχει στο δίκτυο το ίδιο το firewall.
Φυσικά η βέλτιστη επιλογή είναι να μην είναι ενεργή καμία υπηρεσία
στο firewall. To αρχείο που ελέγχει τους δαίμονες των υπηρεσιών,
είναι το /etc/inetd.conf .
Προσοχή
:Υπάρχουν υπηρεσίες
που δεν ελέγχονται από το /etc/inetd.conf (π.χ. NFS,DNS,WWW,samba)
και πρέπει να απενεργοποιηθούν από τα αρχεία εκκίνησης (rc.local
κ.λ.π)
Τέλος το
Firewall δεν πρέπει να διασυνδέεται με το Internet πριν ολοκληρωθεί
η ρύθμιση του, διότι είναι πιθανό να δεχτεί μια επίθεση πριν
ολοκληρωθεί η ρύθμιση του.
5.3.5
Δημιουργία
ενός IP Filtering Firewall με το Linux 2.0
Στην
περιγραφή μας θα παρουσιάσουμε σαν παράδειγμα ένα δίκτυο με
τις εξής απαιτήσεις :
- 1.
Η πολιτική που θα ακολουθηθεί είναι της άρνησης των υπηρεσιών
που δεν επιτρέπονται.
- 2.
Στους χρήστες του δικτύου θα παρέχονται οι εξής υπηρεσίες:
1.
Στο εξωτερικό δίκτυο θα επιτρέπετε πρόσβαση στον WWW εξυπηρέτη
του δικτύου.
2. Θα υποστηρίζονται τα πρωτόκολλα :
- Domain
Name Service (DNS)
- Simple
Mail Transfer Protocol
Η
διεύθυνση του εσωτερικού δικτύου είναι : 143.233.241.0/24
Η
διεύθυνση του δικτύου μέσω του οποίο υπάρχει διασύνδεση με το
Internet είναι:
143.233.34.0/24
5.3.5.1
Οι ρυθμίσεις του IP Filtering Firewall
Απαραίτητη
προϋπόθεση για τη δημιουργία IP filtering, όπως έχει προαναφερθεί,
είναι η ενεργοποίηση της επιλογής IP Forwarding κατά την δημιουργία
του πυρήνα του λειτουργικού Linux.
Στο
σύστημα στο οποίο και πραγματοποιήθηκε το IP Filtering Firewall
δημιουργήσαμε κάποια scripts για τις ρυθμίσεις πάνω στη πολιτική
επιλογής πακέτων (φιλτράρισμα) καθώς και για λόγους υπολογισμού
της διακίνησης πακέτων μέσω του firewall. Τα scripts βρίσκονται
στο /etc/rc.d έτσι ώστε να πραγματοποιούνται οι ρυθμίσεις στο
σύστημα κάθε φορά που το σύστημα περνάει από τη διαδικασία επαναλειτουργίας
(boot time).
Από
μόνος του ο πυρήνας του linux έχοντας IP Forwarding προωθεί
όλα τα πακέτα. Γι αυτό το λόγο το πρώτο script που φτιάχνουμε
απαγορεύει την πρόσβαση σε οτιδήποτε και αναιρεί οποιοδήποτε
κανόνα ipfw που υπήρχε από προηγούμενη λειτουργία του συστήματος.
#
setup IP packet Accounting and Forwarding
#
#
Forwarding
#
By default DENY all services
ipfwadm
-F -p deny
#
Flush all commands
ipfwadm
-F -f
ipfwadm
-I -f
ipfwadm
-O -f
Με το παραπάνω
script αποτρέπουμε οποιαδήποτε επικοινωνία μεταξύ του δικτύου
που θέλουμε να προστατεύσουμε και του Internet. Ουσιαστικά με
το παραπάνω script επιτυγχάνεται η πλήρης απομόνωση του εσωτερικού
δικτύου αφού αποτρέπεται η προώθηση πακέτων οποιασδήποτε υπηρεσίας
από και προς το προστατευόμενο δίκτυο.
Όμως ο
σκοπός δεν είναι η απομόνωση του δικτύου αλλά η επικοινωνία
με το Internet διαμέσου ελεγχόμενης πρόσβασης. Παρακάτω λοιπόν
ακολουθούν οι εντολές που προσδιορίζουν ποια πακέτα θα μπορούν
να προωθηθούν από το firewall. Η επιλογή αυτών των πακέτων γίνεται
βάση της προέλευσης και του προορισμού τους καθώς και του τύπου
της υπηρεσίας που εξυπηρετούν.
# Forward
email to your servera Προωθεί email στον εξυπηρέτη μας
ipfwadm
-F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 143.233.241.10
25
# Forward
email connections to outside email serversa Προωθεί email διασύνδεση
με εξωτερικούς email εξυπηρέτες
ipfwadm
-F -a accept -b -P tcp -S 143.233.241.10 25 -D 0.0.0.0/0 1024:65535
# Forward
Web connections to your Web Servera Προωθεί WWW συνδέσεις στον
WEB εξυπηρέτη μας
ipfwadm
-F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 143.233.241.10
80.
# Forward
Web connections to outside Web serversa Προωθεί WEB συνδέσεις
σε
εξωτερικούς
WEB εξυπηρέτες.
ipfwadm
-F -a accept -b -P tcp -S 143.233.241.* 80 -D 0.0.0.0/0 1024:65535
# Forward
DNS traffic a Προωθεί DNS πληροφορία
ipfwadm
-F -a accept -b -P udp -S 0.0.0.0/0 53 -D 143.233.241.0/24
Με το παρακάτω
script μπορούμε να υπολογίσουμε το ποσό της διακίνησης των πακέτων
που πέρασαν από το firewall.
# Flush
the current accounting rules
ipfwadm
-A -f
#Accounting
ipfwadm
-A -f
ipfwadm
-A out -I -S 143.233.241.0/24 -D 0.0.0.0/0
ipfwadm
-A out -i -S 0.0.0.0/0 -D 143.233.241.0/24
ipfwadm
-A in -i -S 143.233.241.0/24 -D 0.0.0.0/0
ipfwadm
-A in -i -S 0.0.0.0/0 -D 143.233.241.0/24
5.3.5.2
Η
λογική λειτουργίας του κώδικα Filtering του πυρήνα.
Ο πυρήνας
του linux περνάει κάθε πακέτο που φτάνει σε ένα από τα interface
του από την διαδικασία που φαίνεται στo Σχήμα 5.4. Στον Πίνακας
5.14 υπάρχει μια σύντομη περιγραφή κάθε φάσης.
Σχήμα
5.6 Πορεία IP πακέτου στον πυρήνα του Linux
Επεξεργασία
πακέτου |
Περιγραφή
λειτουργίας |
Input
Device Accounting |
Καταμέτρηση
εισερχομένων πακέτων |
Input
Rules |
Έλεγχος
εάν επιτρέπετε στο πακέτο να εισέρθει στο Firewall. |
Forwarding
Rules |
Έλεγχος
εάν επιτρέπεται στο πακέτο να προωθηθεί στον προορισμό
του. |
Output
Rules |
Έλεγχος
εάν επιτρέπετε στο πακέτο να εξέρθει από το Firewall. |
Output
Device Accounting |
Καταμέτρηση
εξερχόμενων πακέτων |
Πίνακας
5.3 Στάδια φιλτραρίσματος εισερχόμενου IP πακέτου
Κάθε ένας
από τους κανόνες μπορεί να επιτρέπει ή όχι την διέλευση του
πακέτου.
Τέλος σε κάθε ένα από τα στάδια φιλτραρίσματος υπάρχει μια προκαθορισμένη
(default policy) πολιτική (αποδοχής ή απόρριψης) για τα πακέτα
που δεν εμπίπτουν σε κανένα από τους υπόλοιπους κανόνες.
5.3.6
Δημιουργία ενός Application Gateway
Στην
περιγραφή μας θα παρουσιάσουμε σαν παράδειγμα ένα δίκτυο με
τις εξής απαιτήσεις :
1.
Η πολιτική που θα ακολουθηθεί είναι της άρνησης των υπηρεσιών
που δεν επιτρέπονται.
2.
Στους χρήστες του δικτύου θα παρέχονται οι εξής υπηρεσίες:
Η διεύθυνση
του εσωτερικού δικτύου είναι : 192.168.2.0/24 Η διεύθυνση του
δικτύου μέσω του οποίο υπάρχει διασύνδεση με το Internet είναι:
143.233.34.0/24
5.3.6.1
Η Λογική λειτουργίας του firewall toolkit από την tis
Το firewall
toolkit αποτελείται από αυτόνομους δαίμονες για κάθε υπηρεσία
που υποστηρίζει. Οι υπηρεσίες αυτές φαίνονται στον Πίνακας 5.15
Δαίμονας
|
Λειτουργία
|
rlogin
|
Proxy για
το πρωτόκολλο rlogin
|
telnet
|
Proxy για
το πρωτόκολλο telnet
|
ftp
|
Proxy για
το πρωτόκολλο ftp
|
netacl
|
Το πρόγραμμα
αυτό μπορούμε να το καλούμε μέσα από το inetd.conf
πριν από κάθε υπηρεσία για την οποία δεν υπάρχει
proxy, ώστε να αποφασίσει εάν θα πρέπει να την παρέχει.
|
smap
|
Proxy για
το πρωτόκολλο SMTP
|
X forwarder
|
Proxy για
το πρωτόκολλο X windows
|
authserv
|
Δαίμονας
εξακρίβωσης στοιχείων χρήστη.
|
Πίνακας
5.4 Υπηρεσίες που παρέχει το Firewall Toolkit
Κάθε
υπηρεσία είναι αυτόνομη και μπορεί να συμβουλεύεται τον δαίμονα
εξακρίβωσης (authserv) όταν χρειάζεται να εξακριβώσει τα στοιχεία
κάποιου χρήστη πριν του παρέχει μια υπηρεσία. Συνήθως η εξακρίβωση
συμβαίνει σε περιπτώσεις που πρέπει να δοθεί άδεια πρόσβασης
σε κάποιον εκτός του προστατευόμενου δικτύου.
Τα βασικά
βήματα για την ρύθμιση του proxy είναι :
- Ρύθμιση
των επιμέρους Application Proxies
Η όλη ρύθμιση
της λειτουργίας του κάθε ενός από τα application proxies ρυθμίζεται
από το αρχείο /usr/local/etc/netperm-table. Κάθε proxy έχει
τις δικές του ρυθμίσεις αλλά όλα χρησιμοποιούν κοινές λέξεις
κλειδιά. Οι σημαντικότερες από αυτές φαίνονται στον ακόλουθο
πίνακα.
Λέξη
κλειδί
|
Λειτουργία
|
permit-hosts
|
Καθορίζει
τις μηχανές που έχουν πρόσβαση στο proxy και εάν
χρειάζεται εξακρίβωση στοιχείων του χρήστη για να
χρησιμοποιηθεί η υπηρεσία. Μπορεί να καθοριστεί
μέχρι και ποιες ενέργειες μπορούν να πραγματοποιηθούν
(δες ftp).
|
denial-msg
|
καθορίζει
το αρχείο που περιέχει το μήνυμα άρνησης της υπηρεσίας,
|
welcome-msg
|
καθορίζει
το αρχείο που περιέχει το μήνυμα παροχής της υπηρεσίας,
|
help-msg
|
καθορίζει
το αρχείο που περιέχει το μήνυμα βοήθειας της υπηρεσίας
|
timeout
|
Καθορίζει
το χρόνο που μπορεί να μείνει αδρανής μια υπηρεσία
πριν αποσυνδεθεί
|
Πίνακας
5.5 Λέξεις κλειδιά για τις ρυθμίσεις των Application Proxies
Ενημέρωση
του καταλόγου των υπαρχόντων υπηρεσιών
Ο κατάλογος
των υπηρεσιών καθώς και οι πόρτες που χρησιμοποιούν περιέχονται
στο αρχείο /etc/services. Σε αυτό το αρχείο πρέπει να προστεθούν
/ αλλάξουν τα ονόματα των υπηρεσιών που παρέχει το proxy.
- Ενεργοποίηση
των υπηρεσιών
Η ενεργοποίηση
των Application gateways γίνεται από τον υπερ-δαίμονα inetd
και για αυτό πρέπει να ενημερωθεί το αρχείο ρυθμίσεων του /etc/inetd.conf.
5.3.6.2
Οι ρυθμίσεις των Application Gateways
Ουσιαστικά
εδώ θα γίνει η παρουσίαση των τριών αρχείων /usr/local/etc/netperm-table,
/etc/inetd.conf και /etc/service στα οποία βασίζεται η λειτουργία
των Application Gateways TIS FWTK.
Το
αρχείο netperm-table
Μέσω αυτού
του αρχείου γίνεται ο έλεγχος για το ποιος μπορεί να έχει πρόσβαση
στις υπηρεσίες του TIS FWTK. Για τους χρήστες που βρίσκονται
έξω από το προστατευόμενο δίκτυο υπάρχει μια διαδικασία αναγνώρισης
τους πριν αποκτήσουν πρόσβαση στις υπηρεσίες του δικτύου ενώ
οι χρήστες εντός του δικτύου έχουν ελεύθερη πρόσβαση. Για την
αναγνώριση των χρηστών υπάρχει το πρόγραμμα authsrv το
οποίο κρατάει μια βάση δεδομένων με την ταυτότητα και τα passwords
των χρηστών.
Παρακάτω
ακολουθεί το μέρος του netperm-table αρχείου που ασχολείται
με τη διαδικασία αναγνώρισης.
#
# Proxy configuration table
#
# Authentication server and client rules
authsrv: database /usr/local/etc/fw-authdb
authsrv: permit-hosts * #localhost
authsrv: badsleep 1200
authsrv: nobogus true
# Client Applications using the Authentication server
*: authserver 127.0.0.1 114
Οι ρυθμίσεις
για την υπηρεσία TELNET (tn-gw) ακολουθούν στο επόμενο μέρος
όπου οι χρήστες εντός του προστατευόμενου δικτύου κάνουν χρήση
της υπηρεσίας χωρίς να περάσουν από τη διαδικασία αναγνώρισης
( permit-hosts 192.168.2.* -passok) ενώ οι χρήστες που βρίσκονται
εκτός υποχρεούνται στη διαδικασία αναγνώρισης (permit-hosts
* -auth).
Επίσης
επιτρέπουμε σε ένα σύστημα (192.168.2.33) να έχει άμεση πρόσβαση
στο firewall σύστημα χωρίς να εμπλέκεται στις διαδικασίες του
firewall. Αυτό γίνεται μέσω της γραμμής netacl-in.telnetd.
# telnet
gateway rules:
tn-gw: denial-msg /usr/local/etc/tn-deny.txt
tn-gw: welcome-msg /usr/local/etc/tn-welcome.txt
tn-gw: help-msg /usr/local/etc/tn-help.txt
tn-gw: timeout 90
tn-gw: permit-hosts 196.168.2.* -passok -xok
tn-gw: permit-hosts * -auth -xok
#Only the Administrator can telnet directly to the firewall
via Port 24
netacl -in.telnetd: permit-hosts 192.168.2.33 -exec /usr/sbin/in.telnetd
Όλες οι
r-εντολές λειτουργούν με τον τρόπο του telnet οπότε για την
rlogin έχουμε:
# rlogin
gateway rules:
rlogin-gw: denial-msg /usr/local/etc/rlogin-deny.txt
rlogin-gw: welcome-msg /usr/local/etc/ rlogin -welcome.txt
rlogin-gw: help-msg /usr/local/etc/ rlogin-help.txt
rlogin-gw: timeout 90
rlogin-gw: permit-hosts 196.168.2.* -passok -xok
rlogin-gw: permit-hosts * -auth -xok
#Only the Administrator can telnet directly to the firewall
via Port 24
netacl - rlogin: permit-hosts 192.168.2.33 -exec /usr/sbin/rlogind-a
Με τον
ίδιο τρόπο γίνονται και οι ρυθμίσεις για την ftp υπηρεσία μόνο
που εδώ αυξάνεται ο χρόνος (timeout) που χρειάζεται ή για να
κλείσει μια κακή σύνδεση ή για να παραμείνει ανοικτή μία σύνδεση
χωρίς να υπάρχει δραστηριότητα. Στις ρυθμίσεις καταγράφονται
τα αρχεία που στέλνονται ή λαμβάνονται μέσω του firewall (-log{retr
stor}).
# ftp gateway
rules:
ftp-gw: denial-msg /usr/local/etc/ ftp -deny.txt
ftp -gw: welcome-msg /usr/local/etc/ ftp -welcome.txt
ftp -gw: help-msg /usr/local/etc/ ftp -help.txt
ftp -gw: timeout 300
ftp -gw: permit-hosts 196.168.2.* -log {retr stor}
ftp -gw: permit-hosts * - log {retr stor}
Το
αρχείο inetd.conf
Παραθέτουμε
ολόκληρο το αρχείο /etc/inetd.conf ώστε να δειχθεί η ρύθμιση
των καινούργιων υπηρεσιών του firewall καθώς και απενεργοποίηση
υπηρεσιών που δεν χρειάζονται. (Οτιδήποτε ακολουθεί μετά από
# θεωρείται σχόλιο.)
#
# inetd.conf This file describes the services that will be available
# through the INETD TCP/IP super server. To re-configure
# the running INETD process, edit this file, then send the
# INETD process a SIGHUP signal.
#
# Version: @(#)/etc/inetd.conf 3.10 05/27/93
#
# Authors: Original taken from BSD UNIX 4.3/TAHOE.
# Fred N. van Kempen, waltje@uwalt.nl.mugnet.org
#
# Modified for Debian Linux by Ian A. Murdock imurdock@shell.portal.com
#
# Modified for RHS Linux by Marc Ewing marc@redhat.com
#
# <service_name> <sock_type> <proto> <flags>
<user> <server_path> <args>
#
# Echo, discard, daytime, and chargen are used primarily for
testing.
#
# To re-read this file after changes, just do a 'killall -HUP
inetd'
#
#echo stream tcp nowait root internal
#echo dgram udp wait root internal
#discard stream tcp nowait root internal
#discard dgram udp wait root internal
#daytime stream tcp nowait root internal
#daytime dgram udp wait root internal
#chargen stream tcp nowait root internal
#chargen dgram udp wait root internal
#
# These are standard services.
#
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
#gopher stream tcp nowait root /usr/sbin/tcpd gn
# do not uncomment smtp unless you *really* know what you are
doing.
# smtp is handled by the sendmail daemon now, not smtpd.
It does NOT
# run from here, it is started at boot time from /etc/rc.d/rc#.d.#smtp
stream tcp nowait
root /usr/bin/smtpd smtpd
#nntp stream tcp nowait root /usr/sbin/tcpd in.nntpd
#
# Shell, login, exec and talk are BSD protocols.
#
#shell stream tcp nowait root /usr/sbin/tcpd in.rshd
login stream tcp nowait root /usr/sbin/tcpd in.rlogind
#exec stream tcp nowait root /usr/sbin/tcpd in.rexecd
#talk dgram udp wait root /usr/sbin/tcpd in.talkd
#ntalk dgram udp wait root /usr/sbin/tcpd in.ntalkd
#dtalk stream tcp waut nobody /usr/sbin/tcpd in.dtalkd
#
# Pop and imap mail services et al
#
#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d
#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
#imap stream tcp nowait root /usr/sbin/tcpd imapd
#
# The Internet UUCP service.
#
#uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico
-l
#
# Tftp service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers."
Do not uncomment
# this unless you *need* it.
#
#tftp dgram udp wait root /usr/sbin/tcpd in.tftpd
#bootps dgram udp wait root /usr/sbin/tcpd bootpd
#
# Finger, systat and netstat give out user information which
may be
# valuable to potential "system crackers." Many sites
choose to disable
# some or all of these services to improve security.
#
# cfinger is for GNU finger, which is currently not in use in
RHS Linux
#
#finger stream tcp nowait root /usr/sbin/tcpd in.fingerd
#cfinger stream tcp nowait root /usr/sbin/tcpd in.cfingerd
#systat stream tcp nowait guest /usr/sbin/tcpd /bin/ps -auwwx
#netstat stream tcp nowait guest /usr/sbin/tcpd /bin/netstat
-f inet
#
# Time service is used for clock syncronization.
#
#time stream tcp nowait nobody /usr/sbin/tcpd in.timed
#time dgram udp wait nobody /usr/sbin/tcpd in.timed
#
# Authentication
#
auth stream tcp wait root /usr/sbin/tcpd in.identd -w -t120
authrsv stream tcp nowait root /usr/local/etc/authrsv authrsv
#
# End of inetd.conf
Το
αρχείο /etc/service
Όταν κάποιος
χρήστης συνδέεται με το firewall συνδέεται σε μία από τις γνωστές
πόρτες, για παράδειγμα η σύνδεση με την υπηρεσία telnet γίνεται
στη πόρτα 23. Ο δαίμονας inetd παρακολουθεί αυτές τις συνδέσεις
και ψάχνει το όνομα της υπηρεσίας στο αρχείο /etc/service. Κατόπιν
καλεί το πρόγραμμα που αντιστοιχεί στο όνομα από το αρχείο /etc/inetd.conf.
telnet-a
24/tcp
ftp-gw
21/tcp
auth 113/tcp
5.4
Μέρος Δεύτερο - Η ακριβή υλοποίηση (Cisco IOS)
5.4.1
Περιληπτική αναφορά στις access-lists
και το πρακτικό μέρος
Στη προσπάθεια
ελέγχου της πρόσβασης το CiscoIOS(Internetworking Operating
System) δημιούργησε τις access-lists με τις οποίες φιλτράρεται
η πληροφορία πάνω στο δρομολογητή. Συνήθως η θέση αυτού του
δρομολογητή βρίσκεται μεταξύ του εσωτερικού και εξωτερικού δικτύου
(όπως το Internet) και με τη σωστή ρύθμιση των access-lists
πάνω στα interfaces του δρομολογητή μπορεί να ελεγχθεί , να
φιλτραριστεί η πληροφορία που κυκλοφορεί από έξω προς τα μέσα
προφυλάσσοντας έτσι το εσωτερικό δίκτυο. Το φιλτράρισμα της
πληροφορίας γενικά χρησιμοποιείται στους λεγόμενους “firewalls”
έτσι λοιπόν η οικοδόμηση ενός firewall πάνω σε ένα δρομολογητή
ο οποίος διαθέτει Cisco IOS πραγματοποιείται με τη χρήση των
access-lists. Η χρήση των access-lists στο φιλτράρισμα της IP
πληροφορίας έχει συγκεκριμένους στόχους:
- Αποσκoπεί στον
έλεγχο της μετάδοσης πακέτων πάνω σε ένα interface.
- Αποσκoπεί στον
έλεγχο της πρόσβασης μίας γραμμής virtual terminal.
- Αποσκoπεί στο περιορισμό
του περιεχομένου της ενημέρωσης πάνω στη δρομολόγηση πακέτων.(routing
updates)
Οι access-lists
χωρίζονται στις standard και στις extended και υπάρχουν και
οι Dynamic Access Lists ή αλλιώς Lock-and-Key Security που είναι
μία τεχνική ασφάλειας που βασίζεται στη φιλοσοφία των access-lists.
Οι standard
access lists μπορούν να προσδιοριστούν είτε μέσω ονόματος είτε
αριθμού και ουσιαστικά επιτρέπουν ή αρνούνται πακέτα σύμφωνα
με τον έλεγχο που κάνουν στη διεύθυνση προέλευσης.
Οι extended
access lists προσδιορίζονται και αυτές είτε μέσω ονόματος είτε
αριθμού αλλά επιτρέπουν ή αρνούνται πακέτα σύμφωνα με τον έλεγχο
που κάνουν στο είδος πρωτοκόλλου του πακέτου στη διεύθυνση προέλευσης
και προορισμού και σε κάποιες άλλες παραμέτρους που θα αναφερθούν
αναλυτικά στην παρουσίαση των εντολών.
Ο εξοπλισμός
του εργαστηρίου ο οποίος αποτελεί και τη βάση για την δημιουργία
ενός είδους “firewall” μέσω των access-lists είναι ο δρομολογητής
Cisco 7000. Αυτός διαθέτει λειτουργικό CiscoIOS 10.3 και παρακάτω
ακολουθεί περιγραφή του εξοπλισμού, των εντολών για την δημιουργία
access-lists καθώς και η περιγραφή ενός παραδείγματος καθορισμού
της access-lists 101.
5.4.2
Εξοπλισμός
5.4.2.1
Δρομολογητής Cisco-7000
Η σειρά
της 7000 της Cisco περιέχει δρομολογητές που υποστηρίζουν πολλά
πρωτόκολλα. Ένας δρομολογητής (Cisco-7000) αυτής της σειράς
υπάρχει και στο χώρο του Ycorlab, η αρχιτεκτονική του οποίου
υποστηρίζει δικτυακά interfaces με ενσωματωμένους επεξεργαστές
τα οποία και παρέχουν άμεση σύνδεση μεταξύ του CyBUS (το εσωτερικό
bus) με το εξωτερικό δίκτυο. Επίσης η διεργασία της δρομολόγησης
και της μεταγωγής πραγματοποιείται μέσω των επεξεργαστών RP(Route
Processor), SP(Switch Processor) και SSP(Silicon Switch Processor).
Το λογισμικό
του Cisco-7000 είναι το Cisco IOS για το οποίο θα γίνει
αναφορά παρακάτω.
Πίνακας
χαρακτηριστικών του Cisco-7000
ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ |
Cisco-7000 |
Υποστηριζόμενα
δικτυακά interfaces |
Ethernet
10BaseT, AUI1, and 10BaseFL
Fast Ethernet (100BaseT
and MII)
Token Ring
FDDI (half and full duplex)
HSSI
Synchronous serial
ATM
Multichannel on T1 or E1
lines, ISDN PRI
Channelized T3
Packet OC-3
IBM channel
|
Τροφοδοτικά |
2 |
Υποδοχείς
για interface επεξεργαστών |
5 |
Υποδοχείς
για επεξεργαστές συστήματος |
2 |
Τύπος
Cisco IOS |
10.3 |
Ενσωματωμένη(Onboard)
μνήμη Flash |
RP:
4 MB standard |
PCMCIA
Flash memory card |
RP:
Optional 8 or 16 MB |
τύπος
επεξεργαστή |
RP:
25-MHz 68040 CPU, 16-MB RAM, 64-MB option |
Διαστάσεις
(H x W x D) |
19.25
x 17.5 x 24.1 in.
(48.9 x 44.45 x 61.34 cm)
|
Βάρος |
149
lbs (~67.6 kg) πλήρης |
Τα προτερήματα
του Cisco-7000 που του προσδίδουν αξιοπιστία και ευκολοχρησία
στο τρόπο λειτουργίας είναι τα εξής:
- Άμεση(online) επαναρύθμιση
στο λογισμικό: Είναι επιτρεπτό να γίνουν ρυθμίσεις στο λογισμικό
χωρίς να σταματήσουν οι εφαρμογές ή οι υπηρεσίες και χωρίς
να γίνει επανεκκίνηση του συστήματος.
- Άμεση εισαγωγή
και αφαίρεση: Μπορεί να γίνει αναβάθμιση με νέα interface
επεξεργαστών χωρίς να γίνει επανεκκίνηση ή να βγει το σύστημα
εκτός λειτουργίας. Μειώνει και του χειριστή τη παρέμβαση
γιατί τα interface επεξεργαστών αυτορυθμίζονται.
- Γρήγορη Εκκίνηση:
Μπορεί να έρθει σε λειτουργία μέσα σε 35sec μετά από μία
αναβάθμιση λογισμικού γεγονός που μειώνει τον αντίκτυπο
της μη λειτουργίας του δρομολογητή στο δίκτυο.
- Παρακολούθηση περιβάλλοντος
λειτουργίας: Προειδοποιεί για τυχόν μη επιτρεπτές συνθήκες
λειτουργίας όπως για λόγους υπερθέρμανσης.
- Εργαλεία για αυτοδίαγνωση:
Μπορεί να διαγνώσει εάν οι μονάδες είναι λειτουργικές πριν
τεθούν σε λειτουργία.
- Flash memory και
EPROM: Λόγω των μνημών αυτών παρέχεται γρήγορη και αξιόπιστη
αναβάθμιση λογισμικού.
Το
εμπρός και πίσω μέρος του Cisco-7000
5.4.2.2
CISCO IOS SOFTWARE
Οι δρομολογητές
και οι access servers CISCO λειτουργούν με το Cisco Internetworking
Operating System (Cisco IOS) software. Αυτό το software υποστηρίζει
πρωτόκολλα στο χώρο των LAN και WAN δικτύων, ελέγχει τη πρόσβαση
στο δικτυακό περιβάλλον και προσπαθεί στη βελτίωση των υπηρεσιών
στα WAN δίκτυα.
Υποστηρίζει
όλες τις κύριες στοίβες πρωτοκόλλων όπως TCP/IP, Novell Net
Ware, Apple Aplle Talk, Banyan Vines, Digital DECNet, OSI, XNS
και Apollo Domain.
Το Cisco
IOS έχει σχεδιαστεί για να παρέχει στο χώρο των δικτύων:
1.
Αξιόπιστη και προσαρμοστική δρομολόγηση δεδομένων
Προσπαθεί
για την εύρεση και δρομολόγηση των δεδομένων με τη καλύτερη
διαδρομή αποφεύγοντας τυχόν δυσλειτουργίες του δικτύου, τη
μείωση της καθυστέρησης, κατανέμει το εύρος ζώνης ανάλογα
με τις ανάγκες του δικτύου και διευκολύνει τη διαχείριση των
διαδρομών. Την αξιοπιστία στη δρομολόγηση προσπαθεί να την
επιτύχει το Cisco IOS χρησιμοποιώντας τις εξής τεχνολογίες:
Interior
Gateway Routing Protocol(IGRP)
- Enhanced
Interior Gateway Routing Protocol(EIGRP)
- Protocol
Independed Multicast(PIM)
- Net
Ware Link Service Protocol (NLSP)
- Simple
Multicast Routing Protocol(SMRP)
- Next
Hop Resolution Protocol(NHRP)
- Generic
Routing Encapsulation(GRE)
- Hot
Standby Routing Protocol(HSRP)
- Resource
Reservation Protocol(RSVP)
- Private
Network-Network Interface(PNNI)
- Open
Shortest Path First (OSPF)
- Intermediate
System to Intermediate System (IS-IS)
- Routing
Information Protocol(RIP)
- Apple
Talk Update-Based Routing Protocol (AURP)
2.
Βελτιστοποίηση του εύρους ζώνης και έλεγχος στη κατανομή των
πόρων
Η αρχιτεκτονική
του Cisco IOS βελτιστοποιεί τη χρήση του εύρους ζώνης ελαττώνοντας
τη μετάδοση μη απαραίτητης πληροφορίας από συνδέσεις wide
area και επιλέγοντας τις πιο οικονομικές WAN συνδέσεις. Για
να βελτιώσει την απόδοση ενός δικτύου το Cisco IOS παρέχει
δυνατότητες όπως υποθετική κράτηση εύρους ζώνης (virtual bandwidth
reservation) και αποθήκευση σε σειρά αναμονής με προτεραιότητες
(priority queuing). Με αυτές τις δυνατότητες ένας διαχειριστής
ενός δικτύου μπορεί να διατηρεί εύρος ζώνης και να δίνει προτεραιότητα
σε πληροφορία ανάλογα με το τύπο της εφαρμογής, τη πηγή και
το προορισμό. Οι τεχνολογίες που χρησιμοποιεί το Cisco IOS
για τη βελτιστοποίηση του εύρους ζώνης είναι οι εξής:
Dial
on Demand Routing (DDR)
- Bandwidth
on Demand (BOD)
- Snapshot
Routing
- Virtual
Bandwidth reservation/priority queuing
- Remote
Access
- SNA
integration
- Protocol
Indepented Multicast(PIM)
- Weighted
Fair Queuing (WFQ)
- Private
Network-Network Interface (PNNI)
- Available
Bit Rate (ABR)
- Resource
Reservation Protocol(RSVP)
3.
Διαχείριση και ασφάλεια
To
Cisco IOS διαθέτει διαχειριστικά χαρακτηριστικά μείωσης του
εύρους ζώνης και του υπολογιστικού φόρτου, διατήρησης πόρων
του δικτύου καθώς και εύκολες διαδικασίες ρύθμισης του δικτύου.
Υπάρχει κεντρικό σημείο ελέγχου του δικτύου όπου με αυτοματοποιημένες
διαδικασίες δίνεται η δυνατότητα στη διεύθυνση του δικτύου να
κάνει ρυθμίσεις ή να διαγνώσει και να επιδιορθώσει προβλήματα
που μπορεί να συμβούν σε ένα γεωγραφικά διασκορπισμένο δίκτυο.
Στην
ασφάλεια το Cisco IOS παρέχει πολυδιάστατα φίλτρα που εμποδίζουν
ένα χρήστη από το να γνωρίζει άλλους χρήστες ή ευαίσθητες πηγές
του δικτύου. Κρυπτογραφημένα συνθήματα (passwords), dial-in
επικύρωση, πολυεπίπεδες ρυθμιστικές εγκρίσεις και μηχανισμοί
αρχειοθέτησης παρέχουν προστασία και πληροφορία για τις παράτυπες
προσπάθειες πρόσβασης. Ισχυροί firewall και remote access ασφάλεια
είναι λοιπόν οι λύσεις προστασίας οι οποίες και καταφέρνονται
διαμέσου το Cisco IOS χρησιμοποιώντας τις τεχνολογίες:
TACACS+
- Route
Authentication OSPF
- Image
Authentication
- Lock
and Key
4.
Κλιμακωτή τεχνολογία
Το Cisco
IOS παρέχει εύκολη ενσωμάτωση καινούργιων τεχνολογιών στη
δρομολόγιση δεδομένων όπως την ΑΤΜ μεταγωγή χωρίς να αλλάξει
η κύρια υποδομή του δικτύου. Μπορεί να διασυνδέσει ένα μεγάλο
αριθμό από LANs και τελικούς σταθμούς υποστηρίζοντας τα με
κλιμακωτά πρωτόκολλα δρομολόγησης τα οποία παρέρχονται τις
αδυναμίες και τους περιορισμούς των υπαρχόντων πρωτοκόλλων.
Τέτοιου είδους τεχνολογία στο Cisco IOS παρέχουν :
- Hot Standby Routing
Protocol
- vLAN
- IGMP switching
- NHRP
- GRE tunneling
5.4.3
Δημιουργία Access-Lists
5.4.3.1
Αναλυτική Παρουσίαση των Εντολών Δημιουργίας ACCESS-LISTS
A)
access-list (standard)
Για να
καθοριστεί μία κανονική IP accesss-list χρησιμοποιείται η εντολή
access-list (σε global configuration). Για να τεθεί εκτός
μια κανονική access-list χρησιμοποιείται η εντολή noaccess-list.
access-list
access-list-number {deny | permit} source [source-wildcard]
no access-list
access-list-number
Περιγραφή της σύνταξης της εντολής:
access-list-number
deny
permit
source
|
Ο
αριθμός της access-list. Είναι δεκαδικό αριθμός από
1 έως 99
Άρνηση στη πρόσβαση εάν οι συνθήκες ταιριάζουν(συμφωνούν).
Επιτρέπει τη πρόσβαση εάν
οι συνθήκες ταιριάζουν.
Ο αριθμός του δικτύου ή
του χρήστη (host) από όπου έρχεται το πακέτο. Υπάρχουν
δύο εναλλακτικοί τρόποι για να καθοριστεί η πηγή
(source):
|
- Χρησιμοποιώντας
ένα αριθμό σε δεκαδική μορφή χωρισμένο σε τέσσερα μέρη από
τελείες και ο οποίος αναλογεί σε ποσότητα 32-bit.
- Χρησιμοποιώντας
τη λέξη κλειδί any σαν συντομογραφία για τη source(πηγή)
και για το source-wildcard που είναι 0.0.0.0 255.255.255.255.
source-wildcard
(Προαιρετικά) Τα wildcard bits συμπληρώνουν το source. Υπάρχουν
δύο τρόποι καθορισμού του source-wildcard πεδίου:
- Χρησιμοποιώντας
ένα αριθμό σε δεκαδική μορφή χωρισμένο σε τέσσερα μέρη από
τελείες και ο οποίος αναλογεί σε ποσότητα 32-bit. Τοποθετώντας
μονάδες στα bit που χρειάζεται να αγνοηθούν.
- Χρησιμοποιώντας
τη λέξη κλειδί any σαν συντομογραφία για τη source(πηγή)
και για το source-wildcard που είναι 0.0.0.0 255.255.255.255.
Παρατηρήσεις
- Προκαθορισμένη
κατάσταση (Default)
Σε μία
κανονική access-list η προκαθορισμένη κατάσταση είναι η άρνηση
όλων (deny) των καταστάσεων. Η access-list τελειώνει πάντα υπονοώντας
αρνητική δήλωση για οτιδήποτε άλλο.
- Τρόπος
πραγματοποίησης των εντολών(Command Mode)
Ολική ρύθμιση
(Global Configuration)
Οι access-lists
χρησιμοποιούνται για τον έλεγχο στη μετάδοση πακέτων σε ένα
interface ή σε γραμμή πρόσβασης virtual terminal καθώς και στο
περιορισμό της ανανεωμένης πληροφορίας δρομολόγησης που έρχεται
από το δίκτυο.H εντολή show access-list παρουσιάζει τα περιεχόμενα
όλων των access-lists.
Παράδειγμα
Στο ακόλουθο
παράδειγμα χρησιμοποιείται το δίκτυο 143.233.0.0 όπου η τρίτη
οκτάδα μπορεί να καθορίσει ένα υποδίκτυο με μάσκα 255.255.0.0
. Χρησιμοποιώντας την access-list 5 θα επιτραπεί μία διεύθυνση
στο 241 υποδίκτυο (subnet) και θα απορριφθούν όλες οι άλλες
του 241 υποδικτύου. Η επόμενη γραμμή επιτρέπει σε όλες τις διευθύνσεις
από τα υπόλοιπα υποδίκτυα του 143.233.0.0. Οποιαδήποτε άλλη
πρόσβαση εκτός από αυτές που έχουν δηλωθεί υπονοείται ότι απορρίπτεται.
Στις τελευταίες
δύο γραμμές καταχωρείται η access-list 5 στο interface ethernet
0 μέσω της εντολής ip access-group.
access-list
5 permit 143.233.241.5
access-list 5 deny 143.233.241.0 0.0.0.255
access-list 5 permit 143.233.0.0 0.0.255.255
interface ethernet 0
ip access-group 5 in
Β) access-list
(extended)
Γενικά
αυτή η εντολή χρησιμοποιείται για το IP πρωτόκολλο. Για να καθορίσεις
μία εκτεταμένη access-list γίνεται μέσω της παρακάτω εντολής(σε
global configuration). Για να θέσεις εκτός την access-list χρησιμοποιείς
την εντολή που αρχίζει με no.
access-list
access-list-number {deny | permit} protocol source
source-wildcard
destination
destination-wildcard [precedence precedence] [tos
tos] [log]
no
access-list access-list-number
Για το
πρωτόκολλο ICMP χρησιμοποιείται και η εξής σύνταξη:
access-list
access-list-number {deny | permit} icmp source
source-wildcard
destination
destination-wildcard [icmp-type [icmp-code] | icmp-message]
[precedence
precedence]
[tos tos] [log]
Για το
πρωτόκολλο TCP χρησιμοποιείται και η εξής σύνταξη:
access-list
access-list-number {deny | permit} tcp source
source-wildcard
[operator port [port]] destination destination-wildcard
[operator port [port]] [established] [precedence
precedence] [tos tos] [log]
Για το
πρωτόκολλο UDP χρησιμοποιείται και η εξής σύνταξη:
access-list
access-list-number {deny | permit} udp source
source-wildcard
[operator port [port]] destination destination-wildcard
[operator port [port]] [precedence precedence] [tos
tos] [log]
Περιγραφή
της σύνταξης της εντολής:
access-list-number:
deny
permit
protocol
source
source-wildcard
destination
|
Ο
αριθμός της access-list. Είναι δεκαδικός αριθμός μεταξύ
100 και199.
Αρνείται τη πρόσβαση εάν οι συνθήκες ταιριάζουν.
Επιτρέπει τη πρόσβαση εάν
οι συνθήκες ταιριάζουν.
Όνομα ή αριθμός ενός Internet
πρωτοκόλλου. Μπορεί να αναφέρονται με λέξεις κλειδιά
ως egrp, gre, igrp, ip,
ipinip, nos, ospf, tcp, udp, ή να αναφέρονται
μέσω των ακεραίων αριθμών 0 έως 255. Για τα πρωτόκολλα
ICMP, UDP και TCP χρησιμοποιείται η λέξη κλειδί
ip. Μερικά πρωτόκολλα έχουν και άλλα χαρακτηριστικά
που περιγράφονται παρακάτω.
Ο αριθμός του δικτύου ή του χρήστη (host) από όπου
έρχεται το πακέτο. Υπάρχουν τρεις εναλλακτικοί τρόποι
για να καθοριστεί η πηγή (source):
- Χρησιμοποιώντας ένα
αριθμό σε δεκαδική μορφή χωρισμένο σε τέσσερα
μέρη από τελείες και ο οποίος αναλογεί σε ποσότητα
32-bit.
- Χρησιμοποιώντας τη λέξη
κλειδί any σαν
συντομογραφία για τη source(πηγή) και για το source-wildcard
που είναι 0.0.0.0 255.255.255.255.
- Χρησιμοποιώντας τη λέξη
host source
σαν συντομογραφία για τo source και για το source-wildcard
που είναι 0.0.0.0.
Τα wildcard bits συμπληρώνουν
το source. Υπάρχουν τρεις τρόποι καθορισμού του
source-wildcard πεδίου:
- Χρησιμοποιώντας ένα
αριθμό σε δεκαδική μορφή χωρισμένο σε τέσσερα
μέρη από τελείες και ο οποίος αναλογεί σε ποσότητα
32-bit. Τοποθετώντας μονάδες στα bit που χρειάζεται
να αγνοηθούν.
- Χρησιμοποιώντας τη λέξη
κλειδί any σαν
συντομογραφία για τη source(πηγή) και για το source-wildcard
που είναι 0.0.0.0 255.255.255.255.
- Χρησιμοποιώντας τη λέξη
host source
σαν συντομογραφία για τo source και για το source-wildcard
που είναι 0.0.0.0.
Ο αριθμός ή ο host στον
οποίο στέλνεται το πακέτο. Υπάρχουν τρεις τρόποι
καθορισμού του destination πεδίου:
- Χρησιμοποιώντας ένα
αριθμό σε δεκαδική μορφή χωρισμένο σε τέσσερα
μέρη από τελείες και ο οποίος αναλογεί σε ποσότητα
32-bit. Τοποθετώντας μονάδες στα bit που χρειάζεται
να αγνοηθούν.
- Χρησιμοποιώντας τη λέξη
κλειδί any σαν
συντομογραφία για το destination και για το destination-wildcard
που είναι 0.0.0.0 255.255.255.255.
- Χρησιμοποιώντας τη λέξη
host source
σαν συντομογραφία για τo destination και για το
destination-wildcard που είναι 0.0.0.0.
|
precedence
(Προαιρετικό) Τα πακέτα μπορεί να “φιλτραριστούν” από ένα επίπεδο
προτεραιότητας, το οποίο καθορίζεται από τους αριθμούς 0 έως
7.
tos
tos (Προαιρετικό) Τα πακέτα μπορεί να “φιλτραριστούν” σύμφωνα
με ένα επίπεδο υπηρεσίας , το οποίο καθορίζεται από τους αριθμούς
0 έως 15.
icmp-type
(Προαιρετικό) Τα ICMP πακέτα μπορεί να “φιλτραριστούν” σύμφωνα
με τους τύπους των ICMP μηνυμάτων. Οι τύποι καθορίζονται από
τους αριθμούς 0 έως 255.
icmp-code
(Προαιρετικό) Τα ICMP πακέτα μπορεί να “φιλτραριστούν” σύμφωνα
με τους τύπους των ICMP μηνυμάτων αλλά μπορούν να φιλτραριστούν
σύμφωνα με μηνύματα ICMP κώδικα. Ο κώδικας καθορίζεται από τους
αριθμούς 0 έως 255.
Icmp-message
(Προαιρετικό) Τα ICMP πακέτα μπορεί να “φιλτραριστούν” σύμφωνα
με το όνομα των τύπων των ICMP μηνυμάτων ή τον τύπο και το κωδικό
όνομα των ICMP μηνυμάτων.
operator
(Προαιρετικό) Συγκρίνει τις πόρτες της προέλευσης ή του προορισμού
(source, destination). Πιθανές τιμές που μπορεί να πάρει το
πεδίο αυτό είναι lt (less than), gt(greater than),
eq(equal), neq(not equal) και range(inclusive
range). Εάν το πεδίο operator βρίσκεται μετά το πεδίο source
και source-wildcard αναφέρεται στη πόρτα του source.
Εάν το πεδίο operator βρίσκεται μετά το πεδίο destination και
destination-wildcard αναφέρεται στη πόρτα του destination.
Η τιμή range απαιτεί δύο αριθμούς πορτών ενώ όλες οι άλλες τιμές
μονάχα ένα αριθμό πόρτας.
established
(Προαιρετικό)Είναι για το TCP πρωτόκολλο μόνο. Δείχνει μία εγκατεστημένη
σύνδεση και σχετίζεται με το εάν το TCP datagram έχει σε ισχύ
τα ACK και RST bits.
log (Προαιρετικό)Κρατάει
ένα αρχείο με πληροφορία γύρω από τα πακέτα. Περιέχει τον αριθμό
της access-list, εάν το πακέτο επιτράπηκε ή απορρίφθηκε, το
πρωτόκολλο (TCP, UDP, ICMP) τη διεύθυνση προέλευσης και προορισμού
και τη πόρτα.
Παρατηρήσεις
Προκαθορισμένη
κατάσταση (Default)
Σε μία
εκτεταμένη access-list η προκαθορισμένη κατάσταση είναι η άρνηση
όλων (deny) των καταστάσεων. Η access-list τελειώνει πάντα υπονοώντας
αρνητική δήλωση για οτιδήποτε άλλο.
Τρόπος
πραγματοποίησης των εντολών (Command Mode)
Ολική ρύθμιση
(Global Configuration)
Οι access-lists
χρησιμοποιούνται για τον έλεγχο στη μετάδοση πακέτων σε ένα
interface ή σε γραμμή πρόσβασης virtual terminal καθώς και στο
περιορισμό της ανανεωμένης πληροφορίας δρομολόγησης που έρχεται
από το δίκτυο. Ο έλεγχος (από το δρομολογητή ή το μεταγωγέα)
σταματάει αμέσως μετά την συμφωνία με κάποια συνθήκη.
Παράδειγμα
Στο παράδειγμα που ακολουθεί
η πρώτη γραμμή επιτρέπει κάθε εισερχόμενες TCP συνδέσεις με
πόρτα προορισμού μεγαλύτερη από 1023. Η δεύτερη γραμμή επιτρέπει
εισερχόμενες TCP συνδέσεις στην SMTP πόρτα του host 143.233.241.4.
Η τρίτη επιτρέπει εισερχόμενα ICMP μηνύματα .
Στις τελευταίες
δύο γραμμές καταχωρείται η access-list 103 στο interface ethernet1
μέσω της εντολής ip access-group.
access-list
103 permit tcp 0.0.0.0 255.255.255.255 143.233.241.0 0.0.0.255
gt 1023
access-list 103 permit tcp 0.0.0.0 255.255.255.255 143.233.241.4
0.0.0.0 eq 25
access-list 103 permit icmp 0.0.0.0 255.255.255.255 143.233.241.0
0.0.0.255
interface ethernet 1
ip access-group 103
5.4.3.2
Καθορισμός Access List
Οι κατάλογοι
πρόσβασης (access-lists) καθορίζουν την επιτρεπόμενη ή τη μη
αποδεκτή πληροφορία ενώ τα access groups εφαρμόζουν τους περιορισμούς
των access-lists σε ένα interface. Τα access-lists χρησιμοποιούνται
για να αποτρέψουν τις συνδέσεις που εμπεριέχουν κινδύνους ασφάλειας
και να επιτρέψουν όλες τις άλλες συνδέσεις ή να επιτρέψουν εκείνες
τις συνδέσεις που θεωρούνται αποδεκτές και να αποτρέψουν όλες
τις άλλες. Ο δεύτερος τρόπος είναι και πιο σίγουρος για την
πραγματοποίηση ενός firewall.
Στη περίπτωση
που θα περιγραφεί, εισερχόμενο e-mail και news επιτρέπεται για
μερικούς χρήστες (hosts) ενώ FTP ,Telnet και rlogin υπηρεσίες
επιτρέπονται μόνο για τους χρήστες που βρίσκονται στο εσωτερικό
δίκτυο εντός του Firewall (firewall subnet). Για το “φιλτράρισμα”
της πληροφορίας χρησιμοποιούνται IP extended access-lists (100-199)
και οι TCP,UDP αριθμοί πορτών. Όταν μια σύνδεση προσπαθεί να
γίνει π.χ για e-mail ,Telnet, FTP η σύνδεση προσπαθεί να ανοίξει
την υπηρεσία στις συγκεκριμένες πόρτες. Μπορεί λοιπόν να απομονωθεί
οποιαδήποτε προσπάθεια χρήσης συγκεκριμένων υπηρεσιών και να
μην γίνουν δεκτά πακέτα που απευθύνονται σε κάποια σύνδεση συγκεκριμένης
υπηρεσίας.
Παρακάτω
ακολουθεί πίνακας που περιέχει τις γνωστές υπηρεσίες με τις
αντίστοιχες πόρτες.
Υπηρεσίες |
Τύπος
Πόρτας |
Αριθμός
Πόρτας |
File
Transfer Protocol (FTP)—Data |
TCP |
20 |
FTP---Εντολές |
TCP |
21 |
Telnet |
TCP |
23 |
Simple
Mail Transfer Protocol(SMTP)---E-Mail |
TCP |
25 |
Terminal
Access Controller Access Control System(TACACS) |
UDP |
49 |
Domain
Name System (DNS ) |
TCP
και UDP |
53 |
Trivial
File Transfer Protocol(TFTP) |
UDP |
69 |
finger |
TCP |
79 |
SUN
Remote Procedure Call (RPC) |
UDP |
111 |
Network
News Transfer Protocol (NNTP) |
TCP |
119 |
Network
Time Protocol (NTP) |
TCP
και UDP |
123 |
NeWS
|
TCP |
144 |
Simple
Management Network Protocol (SNMP) |
UDP
|
161 |
SNMP
(Traps) |
UDP |
162 |
Border
Gateway Protocol (BGP) |
TCP |
179 |
rlogin |
TCP
|
513 |
rexec |
TCP |
514 |
talk |
TCP
και UDP |
517 |
ntalk |
TCP
και UDP |
518 |
Open
Windows |
TCP
και UDP |
2000 |
Network
File System (NFS) |
UDP |
2049 |
X11 |
TCP
και UDP |
6000 |
DNS
zone transfer |
TCP
|
53 |
TFTP daemon
(tftpd)
|
UDP |
69 |
link—συνήθως
χρησιμοποιείται από εισβολείς |
TCP |
87 |
SUN
RPC |
TCP
και UDP |
111 |
line
printer daemon (lpd) |
TCP
|
515 |
UNIX-to-UNIX
copy program daemon (uucpd) |
TCP
|
540 |
Η access-list
καλείται αφού έχει ληφθεί η απόφαση της δρομολόγησης αλλά πριν
σταλεί το πακέτο στο interface για μετάδοση.
5.4.3.3
Πρακτικά βήματα δημιουργίας μιας Access-list
Πρώτα
γίνεται η διαμόρφωση μιας access-list είναι σε ένα εύχρηστο
text editor. Κατόπιν δημιουργείται ένας φάκελος (file) που περιέχει
τις εντολές της access-list (ουσιαστικά περιέχει το κείμενο
από τον text editor) ο οποίος τοποθετείται στο καθορισμένο TFTP
κατάλογο ενός server. Έχοντας σε λειτουργία το TFTP δαίμονα
στο server και διατηρώντας μια TCP σύνδεση με το firewall δρομολογητή,
μπορεί μέσω δικτύου να φορτώνεται η access-list στο δρομολογητή.
Μπορεί η δημιουργία της access-list να γίνει απ’ευθείας πάνω
στο δρομολογητή, τρόπος καθόλου πρακτικός, ενώ με την προηγούμενη
διαδικασία μπορούν εύκολα να γίνουν αλλαγές αρκεί κάθε φορά
που φορτώνεται η καινούργια παραλλαγή της access-list να απομακρύνεται
η παλιά με την εντολή : no access-list number
Α)
Περιγραφή της Access-list 105
Η
παρακάτω εντολή access-list επιτρέπει την επιστροφή πακέτων
από τις ήδη εγκατεστημένες συνδέσεις. Με τη λέξη κλειδί established
συμφωνία συμβαίνει όταν το TCP datagram έχει σε ισχύ τα
bits ACK και RST.
access-list
105 permit tcp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255
established
Με
την παρακάτω εντολή ο firewall δρομολογητής επιτρέπει την πρόσβαση
στους χρήστες κάποιου provider ο οποίος επικοινωνεί με το δρομολογητή
έχοντας σαν διεύθυνση προέλευσης τη 143.233.105.1
access-list
101 permit ip 143.233.105.1 0.0.0.0 0.0.0.0 255.255.255.255
Η
ακόλουθη εντολή δεν αποδέχεται πληροφορία που προέρχεται από
κάποιο χρήστη εκτός του εσωτερικού δικτύου, ο οποίος προσπαθεί
να “οικειοποιηθεί” μια εκ των διευθύνσεων που ανήκουν στο εσωτερικό
δικτυακό χώρο
access-list
101 deny ip 143.233.241.0 0.0.0.255 0.0.0.0 255.255.255.255
Η
ακόλουθη εντολή επιτρέπει αιτήσεις και απαντήσεις των πρωτοκόλλων
DNS και NTP.
access-list
101 permit udp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255
eq 53
access-list 101 permit udp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255
eq 123
Η
ακόλουθη εντολή αποτρέπει τη πληροφορία την NFS πληροφορία.
access-list
101 deny udp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255
eq 2049
Οι
παρακάτω εντολές αρνούνται πληροφορία OpenWindows στις πόρτες
2001 και 2002 καθώς X11 στις πόρτες 6001 και 6002.
access-list
101 deny tcp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255
eq 6001
access-list 101 deny tcp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255
eq 6002
access-list 101 deny tcp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255
eq 2001
access-list 101 deny tcp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255
eq 2002
Η
ακόλουθη εντολή επιτρέπει το Telnet στο χρήστη (143.233.241.2):
access-list
101 permit tcp 0.0.0.0 255.255.255.255 143.233.241.2 0.0.0.0
eq 23
Η
ακόλουθη εντολή επιτρέπει το FTP στο host (143.233.241.10):
access-list
101 permit tcp 0.0.0.0 255.255.255.255 143.233.241.10 0.0.0.0
eq 21
access-list 101 permit tcp 0.0.0.0 255.255.255.255 143.233.241.10
0.0.0.0 eq 20
Οι
ακόλουθες εντολές επιτρέπουν TCP και UDP συνδέσεις για πόρτες
με αριθμούς μεγαλύτερους του 1023, σε ορισμένους μόνο hosts.
access-list
101 permit tcp 0.0.0.0 255.255.255.255 143.233.241.10 0.0.0.0
gt 1023
access-list 101 permit tcp 0.0.0.0 255.255.255.255 143.233.241.2
0.0.0.0 gt 1023
access-list 101 permit tcp 0.0.0.0 255.255.255.255 143.233.241.4
0.0.0.0 gt 1023
access-list 101 permit udp 0.0.0.0 255.255.255.255 143.233.241.10
0.0.0.0 gt 1023
access-list 101 permit udp 0.0.0.0 255.255.255.255 143.233.241.2
0.0.0.0 gt 1023
access-list 101 permit udp 0.0.0.0 255.255.255.255 143.233.241.4
0.0.0.0 gt 1023
Οι
παρακάτω εντολές επιτρέπουν εισερχόμενη πληροφορία από το Simple
Mail Transfer Protocol (SMTP) e-mail μόνο σε δύο μηχανές
access-list
101 permit tcp 0.0.0.0 255.255.255.255 143.233.241.10 0.0.0.0
eq 25
access-list 101 permit tcp 0.0.0.0 255.255.255.255 143.233.241.2
0.0.0.0 eq 25
Η
ακόλουθη εντολή επιτρέπει στο Internet Control Message Protocol
(ICMP) να ανατροφοδοτεί με μηνύματα ένδειξης κάποιου λάθους.
access-list
101 permit icmp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255
Με
το τέλος της access-list υπονοείται άρνηση σε οτιδήποτε άλλο
διασφαλίζοντας έτσι την αποτροπή σε καταστάσεις που δεν έχουν
επιτραπεί ρητά και κατηγορηματικά προηγούμενα.
Β)
Eφαρμογή της Access List στο interface
Αφού
φορτωθεί η access-list στο δρομολογητή και αποθηκευτεί στη NVRAM
μνήμη του, πρέπει να καταχωρηθεί σε ένα interface. Αυτό πραγματοποιείται
μέσω της εντολής access-group.
ip
access-group access-list-number
{in | out}
no ip access-group access-list-number {in | out}
Επειδή
μια access-list δημιουργείται με το στόχο να φιλτράρει τη πληροφορία
αλλά δίνεται η δυνατότητα με την επιλογή {in | out} στην εντολή
access-group να προσδιορίσουμε το που θα
γίνει ο έλεγχος της πληροφορίας κατά την είσοδο ή κατά την έξοδο
από το δρομολογητή. Τις πιο πολλές φορές και ο έλεγχος στην
είσοδο (input access lists) αλλά και ο έλεγχος στην έξοδο (output
access lists) παρέχουν το ίδιο αποτέλεσμα σε μερικές περιπτώσεις
όπως σε “spoofing” IP διευθύνσεων ο έλεγχος στην είσοδο είναι
πιο αποτελεσματικός.
Στο τέλος
λοιπόν της access-list 105 υπάρχουν οι δύο επόμενες γραμμές.
interface ethernet 0
ip access-group 101 out
|