Debian offre gli strumenti per costruire un gateway multiuso, in grado di
padroneggiare NAT, posta, DHCP, DNS cache, HTTP proxy cache, CVS, NFS, e Samba
per una LAN casalinga. Vedere Netfilter
, dove molti argomenti
sulla configurazione di rete vengono spiegati.
Una LAN usa gli indirizzi IP per la seguente rete privata, per evitare interferenze con gli indirizzi IP provenienti da Internet.
Classe A: 10.0.0.0 con mask 255.0.0.0 Classe B: 172.16.0.0 - 172.31.0.0 con mask 255.255.0.0 Classe C: 192.168.0.0 - 192.168.255.0 con mask 255.255.255.0
Per la configurazione IP, Debian usa /etc/network/interfaces
.
Per esempio, se eth0
si connette ad Internet tramite un indirizzo
IP fornito da DHCP e eth1
si connette alla LAN,
/etc/network/interfaces
sarà impostato come segue (Woody e
seguenti):
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address 192.168.1.1 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255
Date il seguente comando per aggiornare la configurazione di rete sulla base di
un nuovo /etc/network/interfaces
:
# /etc/init.d/networking restart
Ricorda: il file interfaces
di Woody o di rilasci successivi non è
compatibile con Potato.
Se il sistema utilizza una NIC PCMCIA,l'impostazione di rete deve avvenire
tramite /etc/pcmcia/network.opts
in Potato. In Woody questo
problema è stato risolto.
Se avete dubbi, controllate l'ouput dei seguenti comandi:
# ifconfig # cat /proc/pci # cat /proc/interrupts # dmesg|more
Talvolta DSL (PPPoE?) ha dei problemi col MTU. fate riferimento all'LDP
DSL-HOWTO
. Se
avete problemi con siti web particolari, guardate Strani problemi di accesso con alcuni siti
web, Sezione 3.7.5.
Il set tipico di programmi:
# apt-get install nfs samba dhcpd dhcp-client bind squid procmail fetchmail # apt-get install ssh cvs
Poi, controllate i seguenti file:
/etc/init.d/dhcpd (modificate per servire solo LAN = eth1) /etc/host.allow (ALL: 192.168.0.0/16 127.0.0.0/8) per NFS /etc/exports (Necessario per NFS) /etc/bind/db.192.168.1 (aggiungere) /etc/bind/db.lan (aggiungere) /etc/bind/named.conf (modificare) /etc/resolv.conf (modificare) /etc/hosts /etc/dhcpd.conf (modificare per LAN = eth1) /etc/dhclient.conf (modificare per forzare il DNS locale) /etc/samba/smb.conf /etc/exim/exim.conf /etc/mailname /etc/aliases /etc/squid.conf (aggiungere tutti gli IP degli host della LAN sotto allowed)
bind
crea una cache locale dei server DNS server e cambia DNS in
localhost. Controllate /etc/resolv.conf
:
nameserver 127.0.0.1 search lan.aokiconsulting.com
Il progetto netfilter/iptables è un sottosistema di firewalling per Linux 2.4 e
successivi. Vedere Netfilter
, dove vengono spiegati
molti argomenti relativi alla configurazione di rete.
Netfilter processa i pacchetti usando una catena di 5 table: PREROUTING, INPUT, FORWARD, OUTPUT, and POSTROUTING.
decisione sul routing IN ------> PRE ---> ------> FORWARD -----> ----> POST -----> OUT interfaccia ROUTING \ tracciamento / ROUTING interfaccia DNAT | filtro ^ SNAT REDIRECT | | MASQUERADE v | INPUT OUTPUT | filtro ^ filtro,DNAT v | \--> Processo Locale --/ programmi nello user-space
I pacchetti vengono processati ad ogni anello della catena, usando le seguenti table.
Le regole di firewall hanno parecchi target:
--to-source ipaddr[-ipaddr][:port-port]
--to-ports port[-port]
--to-destination ipaddr[-ipaddr][:port-port]
--to-ports port[-port]
I comandi base di iptables
sono:
iptables -N catena # crea una catena iptables -A catena \ # aggiunge una regola alla catena -t table \ # usa una table (filter, nat, mangle) -p protocollo \ # tcp, udp, icmp, o tutti, -s indirizzo-sorgente[/mask] \ --sport porta[:porta] \ # porta sorgente se -p è tcp o udp -d destination-address[/mask] \ --dport porta[:porta] \ # porta di destinazione se -p è tcp o udp -j target \ # cosa fare se corrisponde -i nome-interfaccia-ingresso \ # per INPUT, FORWARD, PREROUTING -o nome-interfaccia-uscita # per FORWARD, OUTPUT, POSTROUTING
Le macchine in una LAN possono accedere all'esterno attraverso un gateway su cui gira IP-masquerade (NAT) mediante la condivisione di un unico indirizzo IP accessibile dall'esterno.
# apt-get install ipmasq
Applicate le rules come da esempio per rafforzare la protezione di
ipmasq
. Vedere
/usr/share/doc/ipmasq/examples/stronger/README
. Per la
kernel-image-2.4 Debian, assicuratevi di caricare i moduli appropriati. Vedere
Funzioni di rete, Sezione 7.2.3
per le configurazioni necessarie.
Per la kernel-image-2.2 Debian, modificate Z92timeouts.rul
in
/etc/masq/rules
come segue per assicurare una connessione più
lunga ai siti remoti (buona per mail di grosse dimensioni, ecc.):
# tcp, tcp-fin, udp # 2hr, 10 sec, 160 sec - default # 1 day, 10 min, 10 min - più lungo, esempio $IPCHAINS -M -S 86400 600 600
In più, se la rete è raggiunta tramite una NIC PCMCIA, ipmasq
deve
essere lanciato da /etc/pcmcia/network.opts
. (leggete
/usr/share/doc/ipmasq/ipmasq.txt.gz
)
Supponiamo che abbiate un portatile che è configurato per utilizzare altri parametri di LAN e che vogliate usare il vostro agente di posta sul portatile senza doverlo riconfigurare.
Aggiungendo le regole seguenti tramite il comando iptables
alla
macchina gateway redirigerà la connessione SMTP alla macchina gateway.
# iptables -t nat -A PREROUTING -s 192.168.1.0/24 -j REDIRECT \ -p tcp --dport smtp --to-port 25 # smtp=25, INPUT is open
Per una serie di regole di redirezione più completa, considerate
l'installazione del pacchetto ipmasq
e l'aggiunta di M30redirect.def
alla directory
/etc/ipmasq/rules/
.
[DA CORREGGERE] Regole di routing: (da Phil Brutsche pbrutsch@tux.creighton.edu
)
Vedere il manuale iproute
per i
dettagli. Il traffic control (tc) potrebbe anche risultare interessante.
L'ambiente:
eth0: 192.168.1.2/24; gateway 192.168.1.1 eth1: 10.0.0.2/24; gateway 10.0.0.1 Nessun masquerading su questa macchina.
Alcune magie:
# ip rule add from 192.168.1.2 lookup 1 # ip rule add from 10.0.0.2 lookup 2 # ip route add to default via 10.0.0.1 metric 0 # ip route add to default via 192.168.1.1 metric 1 # ip route add table 1 to 192.168.1.0/24 via eth0 # ip route add table 1 to 10.0.0.2/24 via eth1 # ip route add table 1 to default via 192.168.1.1 # ip route add table 2 to 192.168.1.0/24 via eth0 # ip route add table 2 to 10.0.0.2/24 via eth1 # ip route add table 2 to default via 10.0.0.2
[DA CORREGGERE] Non l'ho mai fatto personalmente. Come impostare una connessione dialup come riserva di una connessione veloce con la caratteristica di auto-dial? Patch sono ben accolte :)
La guida Debian
1.07-1, dom mar 7 15:48:58 UTC 2004osamu@debian.org
dsewell@virginia.edu
mc0315@mclink.it