Linux kao default gateway
October 17th, 2007Linux na kojem je instalirano 2 mrežne kartice može da se ponaša kao default gateway; naime na jednoj eth kartici se podrazumeva operativan pristup ka Internetu (npr ako imamo pristup preko aDSL-a), dok će druga eth kartica biti spojena sa drugim računarom.
dakle topologija izgleda ovako (podrazumevano je da je podešen pristup Internetu preko eth0):

Na PC1 je potrebno odraditi kao root (komanda iz shell-a):
~$ ifconfig eth1 192.168.1.2 netmask 255.255.255.0 up
Da bi podesili da se PC1 ponaša kao default gateway za PC2, moramo na njemu da omogućimo forvardovanje paketa. Najbolje je da se sledeći skript podesi kao izvršni (sačuva u nekom fajlu i uradi chmod +x nad njim) i pokrene iz shell-a:
~$ iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
~$ iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
~$ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
~$ echo 1 > /proc/sys/net/ipv4/ip_forward
Ovo omogućava pravljnje iptables pravila za forvardovanje paketa, dok ip_forward omogućava rutiranje.
Na PC2 računaru potrebno je u shell-u odraditi:
~$ ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up
~$ route add default gw 192.168.1.2
Jasno je šta rade ove dve komande: prva će podići eth0 interfejs sa datim parametrima, dok će druga omogućiti kreiranje default rute ka IP adresi računara PC1, koji će odraditi posao forvardovanja paketa ka Internetu.
Dakle ono što postižemo ovom konfiguracijom je: jedan računar je povezan na Internet, a drugi su povezani na njega (npr preko switcha). Ovo ako se ukrsti sa firewall mogućnostima na Linuxu (iptables, ipchains) i ostalim servisima (squid, postfix, apache…) postaje moćna stvarčica.