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

Comments