Ξεκινάμε με μία καθαρή εγκατάσταση της Linux διανομής σας. (Χρησιμοποίησα το RH 3.0.3 και τα παραδείγματα είναι βασισμένα σε αυτή τη διανομή). Όσο πιο λίγο λογισμικό έχετε φορτώσει, τόσο πιο λίγες τρύπες, πίσω πόρτες και (ή) bugs θα υπάρχουν για να παρουσιάσουν προβλήματα ασφαλείας στο σύστημά σας, έτσι φορτώνετε μόνο την έλαχιστη συλλογή από εφαρμογές (minimum installation).
Πάρτε ένα σταθερό πυρήνα. Χρησιμοποίησα τον 2.0.14 πυρήνα του Linux για το σύστημά μου. Έτσι αυτή η τεκμηρίωση είναι βασισμένη στη δική μου σύνθεση.
Θα χρειαστεί να μεταγλωττίσετε ξανά το πυρήνα του Linux με τις ανάλογες ρυθμίσεις. Γι' αυτό κοιτάξτε στα Kernel-HOWTO, Ethernet-HOWTO και NET-2 HOWTO, εάν δεν το έχετε ξανακάνει.
Παρακάτω ακολουθούν οι ρυθμίσεις που γνωρίζω ότι δουλεύουν με το make config.
Τώρα μπορείτε να μεταγλωττίσετε και να επανεγκαταστήσετε το πυρήνα και επανεκκίνηση (reboot). Η κάρτα (-ες) δικτύου θα εμφανιστούν κατά τη διάρκεια της εκκίνησης. Εάν όχι, πηγαίνετε στα άλλα HOWTO ξανά μέχρι να δουλέψουν
Εάν έχετε δύο κάρτες δικτύου στον υπολογιστή σας, πιθανώς θα χρειαστεί να προσθέσετε μία δήλωση στο αρχείο /etc/lilo.conf για τη περιγραφή των IRQ και των διευθύνσεων των δύο καρτών. Η δήλωση στο δικό μου lilo.conf είναι κάπως έτσι:
append="ether=12,0x300,eth0 ether=15,0x340,eth1"
Αυτό είναι πραγματικά ένα ενδιαφέρον κομμάτι. Τώρα θα έχετε μερικές αποφάσεις να πάρετε. Επειδή δεν θέλουμε το Internet να έχει πρόσβαση σε κανένα τμήμα του προσωπικού μας δικτύου, δεν χρειάζεται να χρησιμοποιήσουμε πραγματικές διευθύνσεις. Υπάρχει ένας αριθμός διευθύνσεων Internet που βρίσκονται στην άκρη για τα προσωπικά δίκτυα. Επειδή ο καθένας χρειάζεται περισσότερες διευθύνσεις και επειδή αυτές οι διευθύνσεις δεν μπορούν να διασταυρωθούν μέσα στο Internet, είναι καλή επιλογή.
Αυτές, 192.168.2.χχχ, είναι τοποθετημένες στην άκρη και θα τις χρησιμοποιήσουμε στο παράδειγμά μας.
Ο firewall σας, θα είναι μέλος και στα δύο δίκτυα και έτσι θα μπορεί να μεταβιβάζει δεδομένα από και προς το προσωπικό σας δίκτυο.
199.1.2.10 __________ 192.168.2.1 _ __ _ \ | | / _______________ | \/ \/ | \| Firewall |/ | | / Internet \--------| System |------------| Workstation/s | \_/\_/\_/\_/ |__________| |_______________|
Εάν επιθυμείτε να χρησιμοποιήσετε firewalls φιλτραρίσματος μπορείτε να χρησιμοποιήσετε ακόμη και τους παραπάνω αριθμούς. Θα χρειαστεί όμως να χρησιμοποιήσετε IP masqurading για να συμβεί αυτό. Με αυτή τη διαδικασία ο firewall θα προωθεί πακέτα και θα τα μεταβιβάζει σε "REAL (πραγματικές)" διευθύνσεις για το ταξίδι τους στο Internet.
Θα πρέπει να ορίσετε τις πραγματικές ΙΡ διευθύνσεις στη κάρτα δικτύου πάνω στη (έξω) πλευρά του Internet. Και να ορίσετε 192.168.2.1 στην Ethernet κάρτα στο εσωτερικό. Αυτή θα είναι η IP διεύθυνση του εξουσιοδοτή/πύλη. Μπορείτε να ορίσετε σε όλους τους άλλου Η/Υ μέσα στο προστατευόμενο δίκτυο μερικούς αριθμούς από το 192.168.2.χχχ πεδίο (192.168.2.2 έως 192.168.2.254)
Επειδή χρησιμοποιώ RH Linux (Ε! Παιδιά, μου κάνετε ένα αντίγραφο για τα plugs? ;-) για να ρυθμίσω το δίκτυο κατά το χρόνο εκκίνησης πρόσθεσα ένα ifcfg-eth1 αρχείο στο κατάλογο /etc/sysconfig/network-scripts. Αυτό το αρχείο διαβάζεται κατά τη διάρκεια της εκκίνησης για την εγκατάσταση του δικτύου και των πινάκων.
Παρακάτω παρουσιάζω με τί το ifcfg-eth1 μοιάζει.
#!/bin/sh #>>>Device type: ethernet #>>>Variable declarations: DEVICE=eth1 IPADDR=192.168.2.1 NETMASK=255.255.255.0 NETWORK=192.168.2.0 BROADCAST=192.168.2.255 GATEWAY=199.1.2.10 ONBOOT=yes #>>>End variable declarations
Μπορείτε να χρησιμοποιήσετε αυτά τα scripts για να συνδεθήτε αυτόματα μέσω modem στο παροχέα σας Internet. Κοιτάξτε στο ipup-ppp script.
Εάν προορίζετε να χρησιμοποιήσετε modem για τη σύνδεσή σας με το Internet, η εξωτερική ΙΡ διεύθυνση θα πρέπει να οριστεί από τον ISP για εσάς κατά τη διάρκεια της σύνδεσης.
Ξεκινήστε ελέγχοντας τα ifconfig και route. Εάν έχετε δύο κάρτες δικτύου το ifconfig θα είναι κάπως έτσι:
#ifconfig lo Link encap:Local Loopback inet addr:127.0.0.0 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:1620 errors:0 dropped:0 overruns:0 TX packets:1620 errors:0 dropped:0 overruns:0 eth0 Link encap:10Mbps Ethernet HWaddr 00:00:09:85:AC:55 inet addr:199.1.2.10 Bcast:199.1.2.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:12 Base address:0x310 eth1 Link encap:10Mbps Ethernet HWaddr 00:00:09:80:1E:D7 inet addr:192.168.2.1 Bcast:192.168.2.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:15 Base address:0x350
και ο πίνακας route κάπως έτσι:
#route -n Kernel routing table Destination Gateway Genmask Flags MSS Window Use Iface 199.1.2.0 * 255.255.255.0 U 1500 0 15 eth0 192.168.2.0 * 255.255.255.0 U 1500 0 0 eth1 127.0.0.0 * 255.0.0.0 U 3584 0 2 lo default 199.1.2.10 * UG 1500 0 72 eth0
Σημείωση: 199.1.2.0 είναι η Internet πλευρά αυτού του firewall και 192.168.2.0 η προσωπική πλευρά.
Τώρα προσπαθήστε να κάνετε ping το Internet από το firewall. Συνήθιζα να χρησιμοποιώ το nic.ddn.mil σαν δοκιμαστικό σημείο. Είναι καλό σημείο δοκιμής, αλλά έχει αποδειχθεί ότι είναι λιγότερο αξιόπιστο απ' ότι είχα ελπίσει. Αν δεν δουλέψει με τη πρώτη, προσπαθήστε να κάνετε ping σε μερικά άλλα σημεία που δεν είναι συνδεδεμένα με το τοπικό σας δίκτυο (LAN). Εάν δεν δουλέψει ούτε τώρα, τότε το ΡΡΡ δεν είναι στημένο σωστά. Ξαναδιαβάστε το ΝΕΤ-2 HOWTO και προσπαθήστε ξανά.
Μετά, προσπαθήστε να κάνετε ping ένα host μέσα στο προστατευόμενο δίκτυο από το firewall. Όλοι οι υπολογιστές μπορούν να κάνουν ping μεταξύ τους. Εάν όχι, πηγαίνετε στο NET-2 HOWTO ξανά και δουλέψετε λίγο πάνω στο δίκτυό σας ακόμη.
Ύστερα, προσπαθήστε να κάνετε ping την εξωτερική διεύθυνση του firewall από το εσωτερικό του προστατευόμενου δικτύου. (Σημείωση: Η διεύθυνση της εξωτερικής πλευράς του firewall δεν είναι κανένας 192.168.2.χχχ ΙΡ αριθμός). Εάν μπορείτε, τότε δεν έχετε απενεργοποιήσει το IP Forwarding. Σιγουρευτήτε ότι το θέλετε αυτό. Εάν το αφήσετε ενεργοποιημένο μπορείτε να πάτε κατευθείαν στο κεφάλαιο "IP εγκατάσταση φιλτραρίσματος (κεφάλαιο 6)" αυτής της τεκμηρίωσης.
Τώρα, προσπαθήστε να κάνετε ping στο Internet πίσω από το firewall χρησιμοποιώντας τις ίδιες διευθύνσεις που δούλεψαν προηγουμένος. (πχ nic.ddn.mil). Ξανά, εάν έχετε απενεργοποιημένο το IP Forwarding, αυτό δεν πρόκειται να δουλέψει. Αν όμως το έχετε ενεργοποιημένο αυτό θα δουλέψει.
Αν έχετε το IP Forwarding επιλεγμένο να χρησιμοποιήτε "Πραγματικές (REAL)" (και όχι 192.168.2.χχχ) IP διευθύνσεις για το προσωπικό σας δίκτυο. Αν δεν μπορείτε να κάνετε ping το Internet αλλά μπορείτε την Internet πλευρά του firewall ελέξτε αν ο επόμενος δρομολογητής της γραμμής (προς το Internet) δρομολογεί πακέτα στη διεύθυνση του προσωπικού σας δικτύου. (Ο ISP το κάνει αυτό για εσάς)
Εάν έχετε καθορίσει το προστατευόμενο δίκτυο στο 192.168.2.χχχ, τότε κανένα πακέτο δεν μπορεί να δρομολογηθεί σε αυτό με τίποτα. Εάν έχετε προχωρίσει και έχετε ήδη το IP masqurading ενεργοποιημένο, αυτό το τεστ θα δουλέψει.
Τώρα έχετε το βασικό σας σύστημα έτοιμο.
Ο firewall δεν κάνει καλό αν τον έχουμε διάπλατα ανοικτό σε επιθέσεις μέσω μη χρησιμοποιούμενων υπηρεσιών. Ένας "κακός τύπος (bad guy)" μπορεί να αποκτήσει πρόσβαση στο firewall και να τον τροποποιήσει ανάλογα με τις ανάγκες του.
Ξεκινάμε απενεργοποιώντας όλες τις άχρηστες υπηρεσίες. Κοιτάξτε το αρχείο /etc/inetd.conf. Αυτό το αρχείο ελέγχει το τι κάλεσε τον "υπέρ διακομιστή (super server)". Ελέγχει μία ομάδα από δαίμονες υπηρέτες και τους ξεκινά όταν αυτοί ζητηθούν.
Οπωσδήποτε απενεργοποιούμε τα netstat, systat, tftp, bootp, και finger. Για να απενεργοποιήσουμε μία υπηρεσία, βάλτε # στο πρώτο χαρακτήρα της γραμμής της κάθε υπηρεσίας που δεν θέλουμε. Όταν το κάνετε αυτό, στείλτε ένα SIG-HUP στη διεργασία γράφοντας "kill -HUP <pid>", όπου <pid> είναι ο αριθμός εργασίας του inetd. Αυτό μπορεί να κάνει το inedt να ξαναδιαβάσει το αρχείο ρυθμίσεών του (inedt.conf) και επανεκκίνηση (restart).