iptables - dzielenie łącza (maskarada)
Wymagania:
* system Linux z jądrem 2.4 (lub 2.2 z łatami na iptables)
* wkompilowana na stałe lub jako moduły obsługa iptables w jądrze
W większości dystrybucji jądro ma już potrzebne moduły, wystarczy je tylko załadować. Na początku należy ustawić odpowiednie parametry dostępu do internetu. Jest za to odpowiedzialna komenda ifconfig, a za ruting odpowiada route. Podstawowa składnia ifconfig wygląda tak:
ifconfig eth0 ADRES_IP netmask MASKA_SIECI
W tym wypadku eth0 jest to oznaczenie karty sieciowej, kolejna będzie eth1 itd. Tak więc ustawienie adresów dla dwóch kart sieciowych (eth0 - dostęp do internetu, eth1 - dostęp do sieci lokalnej) będzie takie:
ifconfig eth0 62.148.84.84 netmask 255.255.255.0
route add default gw 62.148.84.87
ifconfig eth1 192.168.1.1 netmask 255.255.255.128
Gdzie:
62.148.84.84 - adres IP komputera udostępniającego internet (*)
255.255.255.0 - maska podsieci komputera udostępniającego internet
62.148.84.87 - domyślna brama dla komputera udostępniającego internet (*)
192.168.1.1 - adres IP drugiej karty sieciowej w komputerze udostępniającym internet
255.255.255.128 - maska podsieci dla drugiej karty sieciowej, a także dla innych komputerów, które zamierzamy podłączyć do sieci
* przyznawane przez ISP
Następnie włączamy obsługe ip forwarding:
echo 1 > /proc/sys/net/ipv4/ip_forward
Teraz należy załadować moduły potrzebne do obsługi iptables, jeżeli mamy usługę wkompilowaną w jądro pomijamy ten paragraf:
/sbin/modprobe iptable_filter
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ipt_REDIRECT
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
Usuwamy istniejące już łańcuchy:
iptables -F -t nat
iptables -X -t nat
iptables -F -t filter
iptables -X -t filter
Ustalamy domyślną polityke dla filtrów:
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P INPUT DROP
Dopuszczamy wybrany ruch w obie strony:
iptables -t filter -A FORWARD -s 192.168.1.0/25 -d 0/0 -j ACCEPT
iptables -t filter -A FORWARD -d 192.168.1.0/25 -s 0/0 -j ACCEPT
iptables -t filter -A INPUT -j ACCEPT
Teraz dopiero właściwy NAT, 192.168.1.2 oznacza komputer za maskaradą, można powielić tą regułke:
iptables -t nat -A POSTROUTING -s 192.168.1.2 -d 0/0 -j MASQUERADE
Kolejno dla tej maskarady należy komputerom, którym udostępniamy sieć, przydzielić adresy:
IP - 192.168.1.2 itd.
Maska podsieci - 255.255.255.128
Bramka domyślna (ruter) - 192.168.1.1
DNS - wpisać jakiś z TPSA :-) (np. 194.204.159.1 lub 194.204.152.34)
To by było na tyle, maskarada powinna działać.