Εντάξει λοιπόν, μέχρι τώρα έχετε εγκαταστήσει το 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.
Αν το Linux βρει και τίς δύο κάρτες σας, πάτε την επόμενη ενότητα. Αλλιώς, διαβάστε αυτήν εδώ.
Ας πούμε ότι ο πυρήνας δεν αναγνωρίζει τη μία κάρτα, ή και τις δύο. Αυτό δεν είναι κανένα σπουδαίο πρόβλημα. Ο,τι πρέπει να κάνουμε, είναι να εξηγήσουμε στον πυρήνα πώς να βρει τις κάρτες. Υπάρχουν πολλά κόλπα εδώ, αλλά δεν θα τ' αναφέρω όλα. Μονάχα θυμηθείτε πως, όταν τα πράγματα δυσκολεύουν, υπάρχει και το Ethernet HOWTO. Ιδού, όμως, μερικές συμβουλές σε συντομία :
/proc/pci
και σημειώνοντας
μάρκες και μοντέλα.Τώρα, μιά που ξέρετε τις μάρκες - μοντέλα των 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 eth0 ne
) λέει στον πυρήνα να
χρησιμοποιήσει τον ne driver γιά τη συσκευή eth0
.options ne io=0x300 irq=10
) λέει στον ne
driver σε ποια διεύθυνση IO και σε ποια IRQ θα βρει την ISA κάρτα.
Αν έχετε και σεις κάρτα ISA, πιθανότατα πρέπει να γράψετε μιά
παρόμοια γραμμή στο αρχείο. Απλά, αντικαταστήστε τον driver και τις
IO και irq με τα αντίστοιχα γιά την κάρτα σας.alias eth1 via-rhine
) λέει στον πυρήνα να
χρησιμοποιήσει στην κάρτα eth1
τον driver γιά ολοκληρωμένα
via-rhine. Επειδή, τώρα, η eth1
κάρτα μου είναι PCI, δεν
χρειάζεται να γράψω οδηγίες γιά τις io και irq : Το υποσύστημα PCI
ρυθμίζει την κάρτα αυτόματα.Πρέπει να βεβαιωθείτε ότι υπάρχουν γραμμές 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
.
Το "εσωτερικό" δίκτυο είναι αυτό, με το οποίο επικοινωνούν όλοι οι Η/Υ μας στο σπίτι ή στο γραφείο. Το "εξωτερικό" δίκτυο είναι το μεγάλο, τρομακτικό 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 αποδίδει αυτόματα διευθύνσεις 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 σταματάει.
Αν έχετε ήδη ρυθμίσει το 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 σας.
Ρυθμίζοντας τον 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μηνο, άρα είναι πολύ σημαντικό το να έχετε την πλέον πρόσφατη έκδοση,
και να κάνετε κάποιες αλλαγές στις εξ ορισμού ρυθμίσεις, ώστε ν' αυξήσετε
την ασφάλεια του συστήματος.
bind
σας, και βεβαιωθείτε ότι είναι
τουλάχιστον η 8.2.2. Πηγαίνετε στο site
Ανανεώσεις του RedHat,
ή στο
Ανανεώσεις του Mandrake, ώστε να ψάξετε γιά την πιο πρόσφατη
έκδοση.allow-query { 192.168.1/24; 127.0.0.1/32; };
στο αρχείο
/etc/named.conf
, μετά τη γραμμή forwarders
.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 Η/Υ σας, κι αυτός θα τα ξαναστέλνει
πίσω. Αν όλα δουλεύουν σωστά, θα βλέπετε ένα σύνολο χρόνων επιστροφής των
πακέτων.
Τώρα είμαστε έτοιμοι να ρυθμίσουμε το εξωτερικό δίκτυο. Μερικές φορές αυτό θα είναι δύσκολο, ανάλογα με το πόσο καλά υποστηρίζει το 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. .
Εάν ο 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.
Αν ο 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 και την ώθηση να προσθέσω αυτήν την ενότητα.
Μερικοί ADSL providers (πχ η Bell Atlantic) επιμένουν τελευταία να συνδέονται οι νέοι τους πελάτες μέσω του πρωτοκόλλου "PPP over Ethernet" (PPPoE). Γιά τον σκοπό αυτό, δίνουνε στους νέους συνδρομητές ένα client πρόγραμμα γιά Windows : κάτι όχι ιδιαίτερα χρήσιμο σε χρήστες Linux. Ευτυχώς, όμως, το PPPoE είναι ένα απλό πρωτόκολλο, και γίνονται ήδη πολλές προσπάθειες να υποστηριχθεί και από το Linux.
Ένα από τα αγαπημένα κόλπα των 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 έχει μιά ειδική διαδικασία 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. Τέλειο!
Τώρα έχουμε και τα έξω, και τα μέσα. Απομένει ν' ανοίξουμε την πόρτα μεταξύ τους. Ωστόσο, πρώτα πρέπει να βεβαιωθούμε ότι δεν μπορούν να μπουν μέσα τίποτε τέρατα απ' έξω.
Ένα από τα μειονεκτήματα της μόνιμης σύνδεσης στο 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 Η/Υ σας.