Next Previous Contents

3. Ρυθμίζοντας τη δικτύωση

Εντάξει λοιπόν, μέχρι τώρα έχετε εγκαταστήσει το Linux στον Η/Υ, που αποτελεί την gateway σας. Μπορεί ακόμη και να 'χετε ρυθμίσει μία από τις κάρτες δικτύου σας, και τη σύνδεση με το Internet. Ωστόσο, θ' αρχίσουμε από το μηδέν, και θα κάνουμε σα να μην έγινε καμμία ρύθμιση.

Κάντε login ως root. Όλες οι οδηγίες αυτού του κειμένου προϋποθέτουν ότι έχετε κάνει login ως root.

Ο πυρήνας του Linux αναφέρεται στις δύο ethernet κάρτες σας ως eth0 και eth1, άρα με τον ίδιο τρόπο θ' αναφέρομαι κι εγώ σ' αυτές εις το εξής. Το πρόβλημα, όμως, είναι ότι δεν ξέρουμε ποια είναι ποια. Ορίστε ένας "απλός" τρόπος να το βρούμε, που δουλεύει εγγυημένα τουλάχιστον στο 50% των περιπτώσεων : Βάλτε τον Η/Υ σας επάνω στο γραφείο με τη motherboard σε οριζόντια θέση, και να βλέπετε το πίσω μέρος. (Σα να επρόκειτο να τον ανοίξετε, και να κάνετε κάποια εργασία στο εσωτερικό του.) Η eth0 κάρτα είναι η πιο αριστερά - ίσως να θέλετε να σημειώσετε τη θέση της με μιά ετικέτα. Τώρα, σημειώστε σ' ένα φύλλο χαρτί τη μάρκα και το μοντέλο και της eth0, και της eth1.

Εντάξει, ας δούμε τώρα αν και την eth0 και την eth1 τις αναγνωρίζει αυτόματα ο πυρήνας. Δώστε : ifconfig eth0 και : ifconfig eth1. Και στις δύο περιπτώσεις, αν ο πυρήνας αναγνωρίζει την αντίστοιχη κάρτα, πρέπει να δείτε ένα μήνυμα σαν το παρακάτω (με τα νούμερα και τα υπόλοιπα, βέβαια, να είναι διαφορετικά) :

 eth0   Link encap: Ethernet   HWaddr 00:60:67:4A:02:0A 
        inet addr:0.0.0.0  Bcast:0.0.0.0  Mask:255.255.255.255
        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:466 errors:0 dropped:0 overruns:0 frame:0
        TX packets:448 errors:0 dropped:0 overruns:0 carrier:0
        collisions:85 txqueuelen:100 
        Interrupt:10 Base address:0xe400
 

Αν ο πυρήνας δεν αναγνωρίζει την κάρτα δικτύου σας, θα δείτε ένα μήνυμα σαν το παρακάτω :

 eth0: error fetching interface information: Device not found.
 

3.1 Ρυθμίζοντας έναν driver δικτύου

Αν το Linux βρει και τίς δύο κάρτες σας, πάτε την επόμενη ενότητα. Αλλιώς, διαβάστε αυτήν εδώ.

Ας πούμε ότι ο πυρήνας δεν αναγνωρίζει τη μία κάρτα, ή και τις δύο. Αυτό δεν είναι κανένα σπουδαίο πρόβλημα. Ο,τι πρέπει να κάνουμε, είναι να εξηγήσουμε στον πυρήνα πώς να βρει τις κάρτες. Υπάρχουν πολλά κόλπα εδώ, αλλά δεν θα τ' αναφέρω όλα. Μονάχα θυμηθείτε πως, όταν τα πράγματα δυσκολεύουν, υπάρχει και το Ethernet HOWTO. Ιδού, όμως, μερικές συμβουλές σε συντομία :

Τώρα, μιά που ξέρετε τις μάρκες - μοντέλα των eth0 και eth1, μπορείτε να πάτε στη σελίδα συμβατότητας του Ethernet HOWTO, και να ψάξετε γιά τις κάρτες σας. Σημειώστε τον συνιστώμενο driver, καθώς και κάθε πληροφορία γιά ειδικές ρυθμίσεις, που τυχόν απαιτούν οι κάρτες σας.

Έφτασε η στιγμή να επέμβουμε σ' ένα αρχείο ρυθμίσεων! Το αρχείο που θα διορθώσουμε, είναι το /etc/conf.modules. Ανοίξτε το με τον text editor της επιλογής σας. Επειδή υπάρχουν πολλές επιλογές και συνδυασμοί, που μπορούν να προστεθούν στο συγκεκριμένο αρχείο, θα σας δώσω σαν παράδειγμα τις ρυθμίσεις γιά τη δική μου gateway. Έχω μιά PCI κάρτα των 10/100 Mbps, που βασίζεται στο ολοκληρωμένο VIA Rhine, κι έναν τυπικότατο ISA κλώνο του προτύπου NE2000, στα 10 Mbps. Χρησιμοποιώ την κάρτα των 100 Mbps γιά το εσωτερικό δίκτυο, και την 10άρα γιά τη σύνδεση με το εξωτερικό δίκτυο. Το δικό μου /etc/conf.modules αρχείο είναι κάπως έτσι :

 alias parport_lowlevel parport_pc 
 alias eth0 ne 
 options ne io=0x300 irq=10 
 alias eth1 via-rhine 
 

Η εξήγηση των γραμμών του conf.modules αρχείου μου είναι η εξής :

Πρέπει να βεβαιωθείτε ότι υπάρχουν γραμμές alias και γιά τις δυο κάρτες σας στο αρχείο conf.modules , και να βάλετε τις σωστές γραμμές επιλογών γιά όλες τις ISA κάρτες σας. Μπορεί και να υπάρχουν ήδη γραμμές στο conf.modules, γιά κάθε κάρτα ethernet που ρυθμίσατε κατά την εγκατάσταση

Όταν τελειώσετε τη διόρθωση του conf.modules, ξαναδοκιμάστε τις εντολές ifconfig eth0 και ifconfig eth1. Ίσως σας χρειαστεί να κάνετε κάμποσες δοκιμές, αν σκαλίζετε τις διευθύνσεις IO και τις IRQs, χωρίς να κοιτάζετε το εγχειρίδιο του κατασκευαστή.

Δύο ακριβώς ίδιες κάρτες δικτύου

Εσείς ο ξύπνιος, που αγοράσατε δύο ακριβώς ίδιες κάρτες δικτύου, τώρα δεν μπορείτε να τις βάλετε να δουλέψουν μαζί; Μην ανησυχείτε, το ν' αναγκαστούν να συμβιώσουν είναι απλά θέμα σωστής σύνταξης των γραμμών του αρχείου /etc/conf.modules. Στο παράδειγμά μας, οι αριθμοί IO διευθύνσεων και IRQ's είναι απλά της φαντασίας μας, αλλά θα υποθέσω ότι αγοράσατε ένα ταιριασμένο ζευγάρι κλώνων του προτύπου NE2000 (πράγμα που είναι μιά συνηθισμένη επιλογή). Το δικό σας αρχείο /etc/conf.modules λογικά μοιάζει κάπως έτσι :

 alias eth0 ne
 alias eth1 ne
 options ne io=0x330,0x360 irq=7,9 
 

Οι παράμετροι διευθυνσιοδότησης δίδονται όλες στην ίδια γραμμή, και ο πρώτος αριθμός σε κάθε παράμετρο αναφέρεται στην eth0. Ο δεύτερος στην eth1.

3.2 Ρυθμίζοντας το εσωτερικό μέρος του δικτύου

Το "εσωτερικό" δίκτυο είναι αυτό, με το οποίο επικοινωνούν όλοι οι Η/Υ μας στο σπίτι ή στο γραφείο. Το "εξωτερικό" δίκτυο είναι το μεγάλο, τρομακτικό Internet, στην άλλη πλευρά του gateway Η/Υ μας. Γιά τον περισσότερο χρόνο, το εσωτερικό δίκτυο θα είναι πλήρως απομονωμένο από το εξωτερικό με τη βοήθεια του gateway Η/Υ, ο οποίος θα ενεργεί ως firewall μέτριας ισχύος.

Η συσκευή δικτύου

Μιά που οι drivers σας δουλεύουνε τώρα, και μπορείτε να δείτε και την eth0 και την eth1 με το ifconfig, ήρθε η στιγμή να ρυθμίσουμε το εσωτερικό δίκτυο. Υποθέτω ότι θα βάλετε το εσωτερικό σας δίκτυο στην eth1, και το εξωτερικό δίκτυο στην eth0.

Το εσωτερικό σας δίκτυο θα είναι ιδιωτικής χρήσης, και άρα πρέπει να το κάνουμε δίκτυο τέτοιας μορφής : 192.168.1.0. Αυτό επίσημα λέγεται "ιδιωτικό δίκτυο Τάξης C", σε περίπτωση που θέλετε να εντυπωσιάσετε τους φίλους σας.

Πρώτα, πρέπει να βεβαιωθούμε ότι έχει ενεργοποιηθεί η δικτύωση. Αλλάξτε το αρχείο /etc/sysconfig/network, και βεβαιωθείτε πως περιέχει τις εξής γραμμές :

 NETWORKING=yes 
 FORWARD_IPV4=yes
 

Η πρώτη γραμμή λέει στο Linux πως επιθυμούμε η δικτύωση να ενεργοποιείται κατευθείαν με την εκκίνηση του Η/Υ. Η δεύτερη γραμμή λέει στο Linux να ενεργοποιήσει την προώθηση αριθμών IP (IP forwarding). Αυτή απαιτείται γιά τη ρύθμιση του μασκαρίσματος (masquerading), που θα πούμε στην ενότητα 4 του HowTo.

Σημείωση γιά το RedHat : Το RedHat 6.2 απαιτεί αλλαγές στο αρχείο /etc/sysctl.conf, γιά να υποστηρίξει σωστά το IP forwarding και το masquerading. Βεβαιωθείτε ότι υπάρχουν κι έχουν τις σωστές τιμές παραμέτρων οι ακόλουθες γραμμές :

 net.ipv4.ip_forward = 1 
 net.ipv4.ip_always_defrag = 1 
 

Όλες οι ρυθμίσεις δικτύου γιά το RedHat και τις παράγωγες διανομές του RedHat περιέχονται σε αρχεία, στο directory /etc/sysconfig/network-scripts directory. Κάντε cd σ' αυτό το directory, και φτιάξτε ένα νέο αρχείο, το ifcfg-eth1. Μέσα σ' αυτό γράψτε τα εξής :

 DEVICE=eth1 
 IPADDR=192.168.1.1 
 ONBOOT=yes
 

Αυτός ο κώδικας λέει στα scripts δικτύου να ρυθμίσουν την eth1 κατά την εκκίνηση, και να της δώσουν μιά συγκεκριμένη διεύθυνση IP. Ενεργοποιείστε τις νέες ρυθμίσεις στο δίκτυό σας με την ακόλουθη εντολή : /etc/rc.d/init.d/network restart

Ο DHCP server

Ενας DHCP server αποδίδει αυτόματα διευθύνσεις IP στους Η/Υ που βρίσκονται συνδεδεμένοι στο σπιτικό σας δίκτυο. Είναι πολύ χρήσιμος, όταν έχουμε φορητούς Η/Υ : Μπορούμε απλά να συνδέσουμε τους φορητούς Η/Υ στο δίκτυο, και αμέσως να δικτυωθούν σωστά. Αν δεν θέλετε DHCP server στο εσωτερικό σας δίκτυο, να προχωρήσετε στην επόμενη ενότητα.

Πρώτα πρέπει να βεβαιωθείτε ότι ο DHCP server είναι εγκατεστημένος. Κάντε mount το CD του Linux σας, και εγκαταστήστε το πακέτο dhcp RPM. Τώρα, αλλάξτε το αρχείο /etc/dhcpd.conf, και προσθέστε τα εξής (και μόνον αυτά) :

 subnet 192.168.1.0 netmask 255.255.255.0 {
 range 192.168.1.2 192.168.1.60;
 default-lease-time 86400;
 max-lease-time 86400;
 option routers 192.168.1.1;
 option ip-forwarding off;
 option broadcast-address 192.168.1.255;
 option subnet-mask 255.255.255.0;
 }
 

Αν πρόκειται να στήσετε τον Linux Η/Υ σας σαν caching domain name server, δώστε την ακόλουθη επιλογή :

 option domain-name-servers 192.168.1.1;
 

Εάν γνωρίζετε την εξωτερική DNS διεύθυνσή σας, και δεν πρόκειται να χρησιμοποιήσετε τον Linux Η/Υ γιά DNS, δώστε την ακόλουθη επιλογή (όπου x.x.x.x και y.y.y.y είναι αριθμοί IP των DNS servers) :

 option domain-name-servers x.x.x.x, y.y.y.y;
 

Εάν πρόκειται να βάλετε την κοινή χρήση αρχείων με το πρότυπο Samba στον Linux Η/Υ σας (γιά χάρη των Η/Υ σας με Windows), προσθέστε τις ακόλουθες γραμμές, ώστε ο Linux Η/Υ να γίνει ο εξ ορισμού WINS και browsing server :

 option netbios-name-servers 192.168.1.1; 
 option netbios-dd-server 192.168.1.1; 
 option netbios-node-type 8; 
 option netbios-scope "";
 

Οι ρυθμίσεις των Samba και WINS βρίσκονται πολύ έξω από τα όρια του παρόντος κειμένου. Αν χρειάζεστε κάποιες υποδείξεις, ξεκινήστε με το SMB HOWTO, και συνεχίστε από εκεί.

Υπάρχουν ακόμη λίγα βήματα. Τώρα, ανοίξτε το αρχείο /etc/rc.d/init.d/dhcpd, και ψάξτε να βρείτε την εξής γραμμή :

 /sbin/route add -host 255.255.255.255 dev eth1
 

Οι DHCP clients με Windows απαιτούν εκπομπή μιας συγκεκριμένης διεύθυνσης στις αποκρίσεις DHCP, και η παραπάνω εντολή αναγκάζει τον TCP/IP stack του Linux να την παράγει. Εάν δεν μπορείτε να βρείτε αυτή τη γραμμή στο αρχείο αυτό, προσθέστε την. Αν βρείτε μιά παρόμοια γραμμή, βεβαιωθείτε ότι η συσκευή στην οποία αναφέρεται, είναι η eth1.

Το επόμενο βήμα είναι ν' αλλάξουμε το αρχείο /etc/rc.d/init.d/dhcpd, ώστε να δέχεται σαν default τη συσκευή eth1. Αντικαταστήστε τη γραμμή :

 daemon /usr/sbin/dhcpd
 

με :

 daemon /usr/sbin/dhcpd eth1
 

Τώρα είμαστε έτοιμοι να ξεκινήσουμε το DHCP. Πρώτα ξεκινάμε τον DHCP server, με την εντολή : /etc/rc.d/init.d/dhcpd start.

Τελικά, πρέπει να βεβαιωθούμε ότι ο DHCP server θα ξεκινήσει κατά την επανεκκίνηση. Μερικά πακέτα RPM του DHCP server δεν περιέχουν εντολές, που να σιγουρεύουν ότι ο server θα ξεκινάει κάθε φορά, άρα πρέπει να βεβαιωθούμε εμείς ότι ξεκινάει, δίνοντας την εντολή : chkconfig dhcpd on.

Αυτή η εντολή κάνει το RedHat να προσθέσει το script εκκίνησης του dhcp στα διάφορα directories των runlevels, κάτω από το /etc/rc.d. Ο DHCP server ξεκινάει στα runlevels 3 και 5 (multiuser κονσόλα και multiuser X). Στα runlevels 0, 1 και 6 (shutdown, μονοχρησία και reboot), ο DHCP server σταματάει.

Οι client Η/Υ

Αν έχετε ήδη ρυθμίσει το DHCP, είναι πολύ εύκολο να ρυθμίσετε και τους client Η/Υ σας : Απλά ενεργοποιείστε τη ρύθμιση του DHCP. Γιά Η/Υ με Windows, αυτό σημαίνει ν' ανοίξετε τον Πίνακα Ρυθμίσεων ("Control Panel"), και μετά την επιλογή δικτύωσης ("Networking"). Βρείτε το πρωτόκολλο "TCP/IP", και βάλτε Ρύθμιση ("Configure"). Κάντε τσεκάρισμα στο κουτάκι, που λέει να ρυθμίσουμε αυτόματα τη διεύθυνση TCP/IP ("Configure TCP/IP address automatically"), εφαρμόστε τις αλλαγές σας, και επανεκκινήστε.

Πριν επανεκκινήσετε, όμως, τον server, μπορείτε να δώσετε και την εξής εντολή : tail -f /var/log/messages. Αυτή παρακολουθεί συνεχώς τα logs στο Linux. Αν όλα πάνε καλά, με την επανεκκίνηση των Windows Η/Υ σας θα δείτε να ζητάνε διεύθυνση IP, και ο DHCP server ν' ανταποκρίνεται. (Η εντολή tail -f τερματίζεται, αν πατήσουμε Control-C.)

Αν δεν έχετε ρυθμίσει το DHCP, η ρύθμιση εξακολουθεί να παραμένει εύκολη. Ξανανοίξτε τη Δικτύωση ("Networking") του Πίνακα Ρυθμίσεων ("Control Panel"), και επιλέξτε τη ρύθμιση του πρωτοκόλλου TCP/IP. Μπορείτε να δώσετε στους client Η/Υ σας οποιαδήποτε διεύθυνση του δικτύου 192.168.1.0 , εκτός της 192.168.1.0 (δηλ. της διεύθυνσης του ίδιου του δικτύου), της 192.168.1.255 (δηλ. της διεύθυνσης broadcast), ή της 192.168.1.1 (της διεύθυνσης του Linux server Η/Υ). Ποτέ μη δώσετε την ίδια διεύθυνση IP σε δύο Η/Υ. Κάντε τη διεύθυνση "Gateway" 192.168.1.1, ώστε η κυκλοφορία προς το έξω δίκτυο να περνάει από τον gateway Η/Υ.

Το IP Masquerading HOWTO έχει λεπτομερείς πληροφορίες γιά τις ρυθμίσεις των clients, στο κεφάλαιο των ρυθμίσεων.

Γενικά, γιά να ρυθμίσουμε έναν client Η/Υ, είτε ενεργοποιούμε τη ρύθμιση DHCP, είτε της δίνουμε με το χέρι μιά διεύθυνση στην περιοχή 192.168.1.x, με gateway 192.168.1.1 . Ο DNS server πρέπει να είναι είτε ο 192.168.1.1, αν τρέχετε έναν caching DNS server (δες παρακάτω), ή να κατευθύνει το DNS στις διευθύνσεις που σας έδωσε ο Internet Provider σας.

Ο DNS server

Ρυθμίζοντας τον Linux Η/Υ σας σαν caching DNS server, θα καλυτερεύσει (ελαφρά) την ταχύτητα σερφαρίσματος, επειδή οι συχνής χρήσης διευθύνσεις DNS θα κασαριστούν μέσα στο δίκτυό σας, και δεν θα τις παίρνετε κάθε φορά απ' έξω.

Εάν ενδιαφέρεστε να υλοποιήσετε ένα πλήρες DNS, υπάρχουν πολλά σύνθετα πράγματα που πρέπει να μάθετε. Υπάρχει ένα DNS HOWTO διαθέσιμο, και το βιβλίο DNS and BIND αποτελεί μιά καλή (και πολύ κατανοητή) γραπτή πηγή αναφοράς.

Γιά να εκμεταλλευτούν τον caching server οι client Η/Υ σας, πρέπει να ρυθμιστούν, ώστε να χρησιμοποιήσουν τη Linux gateway ως τον πρωτεύοντα DNS server τους. Ένα τρόπος γιά να γίνει αυτό, είναι οι κατευθυντήριες εντολές γιά το DHCP, που δίδονται στην ενότητα 3.2.2 . Αν ρυθμίζετε με το χέρι τους client Η/Υ σας, μπορείτε ν' αλλάξετε τις ρυθμίσεις του DNS με τον ίδιο τρόπο που χρησιμοποιήσατε γιά να γράψετε τη διεύθυνση IP.

Γιά να εγκαταστήσετε τον DNS server, πρώτα εγκαταστήστε το πακέτο bind RPM, και μετά το caching-nameserver RPM. Σ' αυτό το σημείο, έχουμε σχεδόν τελειώσει.

Ο caching server θα δουλέψει μιά χαρά με τον τρόπο που τον εγκαταστήσαμε. Ωστόσο, αν γνωρίζετε τις διευθύνσεις IP των DNS servers του Internet Provider σας (στο εξής "ISP" - σ.τ.μ.), μπορείτε ν' αυξήσετε ακόμη λίγο την απόδοση, αλλάζοντας το αρχείο /etc/named.conf, και προσθέτοντας την εξής γραμμή μετά τη γραμμή directory (όπου x.x.x.x και y.y.y.y είναι αντίστοιχα ο πρωτεύων και ο δευτερεύων DNS servers) :

 forwarders { x.x.x.x; y.y.y.y; }; 
 

Αυτή η αλλαγή κάνει τον DNS server πρώτα να ρωτάει τους DNS servers του ISP, πριν διασχίσει το Internet ψάχνοντας γιά μιά συγκεκριμένη διεύθυνση. Οι servers του ISP συνήθως έχουνε πάρα πολλές διευθύνσεις κασαρισμένες, και επομένως μπορούν να δώσουν ταχύτερη απάντηση απ' ό,τι θα μπορούσε ο δικός σας server.

Ο daemon named είχε κάποια προβλήματα ασφάλειας το προηγούμενο 12μηνο, άρα είναι πολύ σημαντικό το να έχετε την πλέον πρόσφατη έκδοση, και να κάνετε κάποιες αλλαγές στις εξ ορισμού ρυθμίσεις, ώστε ν' αυξήσετε την ασφάλεια του συστήματος.

  1. Ελέγξτε την έκδοση του bind σας, και βεβαιωθείτε ότι είναι τουλάχιστον η 8.2.2. Πηγαίνετε στο site Ανανεώσεις του RedHat, ή στο Ανανεώσεις του Mandrake, ώστε να ψάξετε γιά την πιο πρόσφατη έκδοση.
  2. Περιορίστε την πρόσβαση στον name server σας, ώστε να την έχει μόνο το τοπικό δίκτυο. Προσθέστε τη γραμμή allow-query { 192.168.1/24; 127.0.0.1/32; }; στο αρχείο /etc/named.conf, μετά τη γραμμή forwarders.
  3. Αποφύγετε να τρέχετε τον name server σας ως root. Εάν ο server τρέχει ως root, ένα χάκεμα του server θα δώσει στον χάκερ τα προνόμια του root. Αν τρέχετε τον server ως χρήστης χωρίς πολλά δικαιώματα, πχ σαν nobody, θα χαμηλώσετε το επίπεδο κινδύνου χακέματος του name server. Γιά να τρέξετε τον name server ως nobody, διορθώστε το αρχείο /etc/rc.d/init.d/named, και αλλάξτε τη γραμμή daemon named σε daemon named -u nobody -g nobody.

Βεβαιωθείτε ότι ο DNS server σας θα ενεργοποιηθεί με το bootάρισμα : chkconfig named on. Πάλι, αυτό σιγουρεύει ότι ο server θα ξεκινήσει στα συνηθισμένα runlevels (3 και 5) κατά το bootάρισμα.

Εντάξει, τώρα μπορείτε να ξεκινήσετε τον DNS server σας : /etc/rc.d/init.d/named start

Τεστάροντας το εσωτερικό δίκτυο

Το DNS δεν θα δουλέψει μέχρι να ρυθμίσουμε το εξωτερικό δίκτυο, (μιά που πρέπει να επικοινωνήσει με άλλους DNS servers επάνω στο Internet), αλλά με το πρόγραμμα ping μπορούμε να τεστάρουμε την βασική εσωτερική σύνδεση.

Ανοίξτε ένα παράθυρο τερματικού (MS-DOS) σ' έναν από τους client Η/Υ σας, και δώστε : ping 192.168.1.1. Αυτή η εντολή θα στέλνει σε τακτικά χρονικά διαστήματα πακέτα προς τον Linux Η/Υ σας, κι αυτός θα τα ξαναστέλνει πίσω. Αν όλα δουλεύουν σωστά, θα βλέπετε ένα σύνολο χρόνων επιστροφής των πακέτων.

3.3 Ρυθμίζοντας το εξωτερικό δίκτυο

Τώρα είμαστε έτοιμοι να ρυθμίσουμε το εξωτερικό δίκτυο. Μερικές φορές αυτό θα είναι δύσκολο, ανάλογα με το πόσο καλά υποστηρίζει το Linux ο ISP σας. Αν έχετε δυσκολίες, υπάρχει το ADSL mini-HOWTO, που καλύπτει τα θέματα της σύνδεσης ADSL αρκετά λεπτομερειακά. Εάν βρω και κανένα Cable Modem HOWTO, θα βάλω link και γι' αυτό.

Το κύριο πρόβλημα με τις περισσότερες εξωτερικές συνδέσεις είναι το να πάρεις μιά διεύθυνση IP. Μερικοί ISPs δίνουν στατικές διευθύνσεις IP σε συνδρομητές με σύνδεση cable (καλωδιακό) modem ή ADSL, και σ' αυτή την περίπτωση η ρύθμιση είναι εύκολη. Ωστόσο, οι περισσότεροι ISPs έχουνε πλέον προσανατολιστεί σε δυναμική σύνδεση μέσω (σωστά μαντέψατε!) DHCP. Αυτό σημαίνει ότι ο Linux Η/Υ σας θα είναι DHCP server στην κάρτα δικτύου eth1 interface, και DHCP client στην κάρτα δικτύου eth0.

Επιπλέον, πολλοί ISPs παρέχουν τις υπηρεσίες τους με εξειδικευμένο τρόπο, που προϋποθέτει ότι οι πελάτες τους χρησιμοποιούν Windows. Μερικές απ' αυτές τις περιπτώσεις θα συζητηθούν στο τέλος της ενότητας 3.3.2. .

Με στατική διεύθυνση IP

Εάν ο ISP σας σας έδωσε στατική διεύθυνση IP, έχετε ξενοιάσει. Φτιάξτε ένα νέο αρχείο ρυθμίσεων της σύνδεσης, το /etc/sysconfig/network-scripts/ifcfg-eth0, και βάλτε τα εξής μέσα του :

 DEVICE=eth0
 IPADDR=x.x.x.x
 NETMASK=y.y.y.y
 ONBOOT=yes
 

Απλά αντικαταστήστε τα x.x.x.x και y.y.y.y με τις τιμές που σας έδωσε ο ISP. Τώρα, διορθώστε το αρχείο /etc/resolv.conf, και γράψτε τις ακόλουθες γραμμές :

 search provider_domain_here
 nameserver n.n.n.n
 nameserver m.m.m.m
 

Το provider_domain πρέπει κανονικά να σας το δώσει ο ISP σας. Επίσης, βάλτε τους πρωτεύοντα και δευτερεύοντα DNS servers στις γραμμές n.n.n.n και m.m.m.m . Αν έχετε ρυθμίσει τον Linux Η/Υ σαν DNS server, προσθέστε μιά γραμμή πριν τις γραμμές γιά τους άλλους nameservers : nameserver 127.0.0.1. Αυτή θα κάνει τον Linux server να χρησιμοποιήσει τον caching server, πριν ζητήσει από τους εξωτερικούς servers πληροφορίες γιά DNS.

Με το DHCP

Αν ο ISP σας έχει ρυθμιστεί ως DHCP, πρέπει να φτιάξετε ένα νέο αρχείο ρυθμίσεων της σύνδεσης, το /etc/sysconfig/network-scripts/ifcfg-eth0, και προσθέστε του τα εξής :

 DEVICE=eth0 
 BOOTPROTO=dhcp 
 ONBOOT=yes
 

Τώρα, βεβαιωθείτε ότι ο dhcpcd client daemon είναι εγκατεστημένος στο σύστημά σας. Πηγαίνετε στα Linux CD σας, κι εγκαταστήστε το πακέτο dhcpcd RPM.

Έφτασε λοιπόν η στιγμή να δοκιμάσουμε τις ρυθμίσεις του νέου μας δικτύου. Απλά δίνουμε την εντολή /etc/rc.d/init.d/network restart. Μετά, με ping κάνουμε δοκιμή της εξωτερικής σύνδεσης. Κάνουμε ping σ' έναν Η/Υ στο Internet, σαν τον www.yahoo.com, και περιμένουμε μήπως επιστρέψει κάποιο πακέτο.

Παραξενιές και ανωμαλίες

Η κατάσταση με το δίκτυό σας μπορεί να είναι διαφορετική από τα απλά παραδείγματα που περιγράφονται παραπάνω. Ιδού μερικές σύντομες παρατηρήσεις επάνω στις διάφορες δυσκολίες, και links και διευθύνσεις προς περισσότερο έγκυρες πηγές. Ευχαριστώ τον John Mellor, που μου έδωσε τα links και την ώθηση να προσθέσω αυτήν την ενότητα.

PPP επάνω σε Ethernet (PPPoE)

Μερικοί ADSL providers (πχ η Bell Atlantic) επιμένουν τελευταία να συνδέονται οι νέοι τους πελάτες μέσω του πρωτοκόλλου "PPP over Ethernet" (PPPoE). Γιά τον σκοπό αυτό, δίνουνε στους νέους συνδρομητές ένα client πρόγραμμα γιά Windows : κάτι όχι ιδιαίτερα χρήσιμο σε χρήστες Linux. Ευτυχώς, όμως, το PPPoE είναι ένα απλό πρωτόκολλο, και γίνονται ήδη πολλές προσπάθειες να υποστηριχθεί και από το Linux.

Χαζά κόλπα με το DHCP

Ένα από τα αγαπημένα κόλπα των ISPs είναι το να σε συνδέουν μ' ένα και μοναδικό host name, ή ακόμη και με μία και μοναδική κάρτα πρόσβασης στο δίκτυο. Αυτό υποθετικά γίνεται γιά να σ' εμποδίσει να βάζεις πολλούς Η/Υ στο δίκτυό σου, με τη χρήση hub. (Φυσικά, με χρήση Linux και masquerading έχουμε το ίδιο αποτέλεσμα με καλύτερη ασφάλεια, και ο ISP δεν διαθέτει τρόπο να γνωρίζει αν έγινε αυτό!!)

Εάν ο ISP σας έδωσε ένα host name, και επέμεινε να δώσετε στον Windows Η/Υ σας αυτό το όνομα, ώστε να σας αφήσει να χρησιμοποιήσετε τη σύνδεση, τότε πρέπει να σιγουρευτείτε ότι ο Linux Η/Υ σας στέλνει πρώτα αυτό το host name, όταν ζητάει μιά διεύθυνση από τον DHCP server.

Όταν βάζετε dhcp στο BOOTPROTO, στο αρχείο ρυθμίσεων της σύνδεσης, καλείται μεν ο RedHat DHCP client, αλλά χωρίς ν' αναφέρεται σε κάποιο host name. Γιά να καλείτε το πρόγραμμα με host name στο RedHat 6.1, διορθώστε το αρχείο /etc/sysconfig/network, και αλλάξτε τη γραμμή :

HOSTNAME=

ώστε να γράφει :

HOSTNAME=your_isp_assigned_name

Αυτό μπορεί να μη δουλέψει σε μερικές παραλλαγές του RedHat. Αν δεν δουλέψει, ελέγξτε το /sbin/ifup script και κοιτάξτε αν οι κλήσεις των dhcpcd και pump περιλαμβάνουν μιά παράμετρο -h $HOSTNAME. Αν όχι, προσθέστε την, ώστε οι κλήσεις να γίνουν κάπως έτσι : /sbin/dhcpcd -i $DEVICE -h $HOSTNAME και /sbin/pump -i $DEVICE -h $HOSTNAME.

Η εταιρία Road Runner

Η εταιρία καλωδιακών συνδέσεων Road Runner έχει μιά ειδική διαδικασία login, που πρέπει να τρέξει πριν χρησιμοποιηθεί ο server. Ευτυχώς, υπάρχει ένα λεπτομερές Linux Road Runner HOWTO.

Κοιτάζοντας τις ρυθμίσεις του δικτύου

Τώρα, μπορείτε να θαυμάσετε το έργο σας. Δώστε ifconfig, γιά να δείτε όλες τις ρυθμισμένες συσκευές σας. Στον δικό μου gateway Η/Υ, παίρνω τα εξής :

 eth0  Link encap:Ethernet  HWaddr 00:60:67:4A:02:0A 
       inet addr:24.65.182.43  Bcast:24.65.182.255  Mask:255.255.255.0 
       UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1 
       RX packets:487167 errors:0 dropped:0 overruns:0 frame:0 
       TX packets:467064 errors:0 dropped:0 overruns:0 carrier:0 
       collisions:89 txqueuelen:100 
       Interrupt:10 Base address:0xe400
 eth1  Link encap:Ethernet  HWaddr 00:80:C8:D3:30:2C 
       inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0 
       UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1 
       RX packets:284112 errors:0 dropped:0 overruns:0 frame:1 
       TX packets:311533 errors:0 dropped:0 overruns:0 carrier:0 
       collisions:37938 txqueuelen:100 
       Interrupt:5 Base address:0xe800
 lo    Link encap:Local Loopback 
       inet addr:127.0.0.1  Mask:255.0.0.0 
       UP LOOPBACK RUNNING  MTU:3924  Metric:1 
       RX packets:12598 errors:0 dropped:0 overruns:0 frame:0 
       TX packets:12598 errors:0 dropped:0 overruns:0 carrier:0 
       collisions:0 txqueuelen:0
 

Σημειώστε ότι η κάρτα eth0 έχει μιά εντυπωσιακή εξωτερική διεύθυνση IP, και η κάρτα eth1 μιά ιδιωτική εσωτερική διεύθυνση.

Μπορείτε να δείτε τα routes του δικτύου, δίνοντας την εντολή route. Στον gateway Η/Υ μου, παίρνω ένα μήνυμα σαν αυτό :

  Kernel IP routing table 
  Destination     Gateway      Genmask         Flags Metric Ref Use Iface 
  255.255.255.255 *            255.255.255.255 UH    0      0     0 eth1 
  192.168.1.0     *            255.255.255.0   U     0      0     0 eth1 
  24.65.182.0     *            255.255.255.0   U     0      0     0 eth0 
  127.0.0.0       *            255.0.0.0       U     0      0     0 lo 
  default         24.65.182.1  0.0.0.0         UG    0      0     0 eth0
 

Εδώ μπορούμε να δούμε ότι το εξωτερικό δίκτυο είναι ρυθμισμένο, το εσωτερικό δίκτυο είναι ρυθμισμένο, η τοπική συσκευή επίσης, η ειδική διεύθυνση broadcast 255.255.255.255 επίσης, και το default route είναι ρυθμισμένο να δείχνει την gateway του ISP. Τέλειο!

Τώρα έχουμε και τα έξω, και τα μέσα. Απομένει ν' ανοίξουμε την πόρτα μεταξύ τους. Ωστόσο, πρώτα πρέπει να βεβαιωθούμε ότι δεν μπορούν να μπουν μέσα τίποτε τέρατα απ' έξω.

3.4 Ασφάλεια

Ένα από τα μειονεκτήματα της μόνιμης σύνδεσης στο Internet μέσω ADSL ή καλωδιακού modem, είναι πως ο Η/Υ μας είναι εκτεθειμένος σε πιθανές απειλές της ασφάλειάς του 24 ώρες τη μέρα, 7 μέρες την εβδομάδα. Η χρήση του Linux ως gateway περιορίζει το ρίσκο, επειδή κρύβει όλους τους υπόλοιπους Η/Υ στο δίκτυό σας : Όσον αφορά το υπόλοιπο Internet, συνδεδεμένος είναι μόνον ο Linux Η/Υ σας. Αυτό σημαίνει ότι το δίκτυό σας μπορεί να είναι τόσο σίγουρο, όσο ο Linux Η/Υ σας, επομένως σ' αυτό το σημείο θα σας δώσω μερικές βασικές συμβουλές, γιά να τον κάνετε ασφαλέστερο.

Πρώτα, πρέπει να κλείσετε έξω όλους τους κακούς. Γιά να γίνει αυτό, διορθώστε το αρχείο /etc/hosts.deny, και βεβαιωθείτε ότι έγινε ακριβώς όπως παρακάτω :

 # 
 # hosts.deny  Αυτό το αρχείο περιγράφει τα ονόματα των host Η/Υ, που
 #             *δεν* επιτρέπεται να χρησιμοποιούν τις τοπικές υπηρεσίες
 #             INET, όπως καθορίζεται από τον "/usr/sbin/tcpd" server.
 # 
 #             Η γραμμή γιά τον portmap είναι περιττή, αλλά αφήνεται γιά 
 #             να σας θυμίζει ότι ο νέος ασφαλής portmap χρησιμοποιεί το
 #             hosts.deny και το hosts.allow . Ειδικότερα, θα έπρεπε να
 #             γνωρίζετε ότι το NFS χρησιμοποιεί τον portmap!
 ALL: ALL 
 

Τα παραπάνω λένε στους "TCP wrappers" (οι οποίοι ελέγχουν το 95% των εισερχομένων συνδέσεων) να αρνηθούν κάθε σύνδεση από κάθε host Η/Υ. Αυτή είναι αρκετά καλή απαγόρευση! Αλλά επίσης θα σας εμποδίσει και να συνδεθείτε με τον Linux Η/Υ σας από το εσωτερικό σπιτικό σας δίκτυο, πράγμα ενοχλητικό. Επομένως, θα κάνουμε μιά εξαίρεση. Διορθώνουμε το αρχείο /etc/hosts.allow, και το κάνουμε ακριβώς έτσι :

 # 
 # hosts.allow  Αυτό το αρχείο περιγράφει τα ονόματα των host Η/Υ, που
 #              τους επιτρέπεται να χρησιμοποιούν τις τοπικές υπηρεσίες
 #              INET, όπως καθορίζεται από τον "/usr/sbin/tcpd" server.
 # 
 ALL: 127.0.0.1 
 ALL: 192.168.1.
 

Τα παραπάνω λένε στους "TCP wrappers" ότι μπορούν να επιτρέψουν συνδέσεις προς όλες τις υπηρεσίες της τοπικής συσκευής (local device, 127.0.0.1), και προς το σπιτικό δίκτυο (192.168.1.) .

Τώρα έχετε κλειδώσει τα τέρατα έξω, με ισχυρό λουκέτο. Αν θέλετε να βάλετε μπάρες και συναγερμούς, πρέπει να έχετε πολύ περισσότερες γνώσεις. Το Security HOWTO είναι ένα καλό μέρος γιά ν' αρχίσετε το διάβασμα, αν θέλετε να μάθετε περισσότερα γιά το πώς ν' ασφαλίζετε τον Linux Η/Υ σας.


Next Previous Contents