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ć.