inicio mail me! sindicaci;ón
 

Maskarada IP

Maskarada IP

Co to jest maskarada? Maskowanie adresów IP polega na ukryciu (zamaskowaniu) adresów IP komputerów w sieci przez router podłączony do internetu. Pozwala to na dostęp do internetu komputerom nie posiadającym publicznego adresu IP (192.168.*.* czy też 10.*.*.*), lub też na ochronę tychże komputerów nawet jeżeli mają publiczne adresy IP - maskarada jest jedną z odmian firewalla.


A do czego to mi w praktyce?

Tekst ten napisałem pod kątem głównie sieci amatroskich które posiadają łącze do internetu z jednym adresem IP, a wbrew pozorom udostępnienie takiego internetu nie jest wcale trudne. Zakładam także że masz już skonfigurowane połączenie z internetem (o SDI pisałem wyżej) i główny nacisk położę na tym jak zbudować maskaradę z komputerami z windows.

Zakładam że już udało Ci się postawić linuksa. Przede wszystkim musisz wiedzieć którą wersję kernela posiadasz - od tego jest uzależnione czy maskaradę należy wykonać przy użyciu komendy ipchains czy iptables. Wersję kernela możesz sprawdzić poprzez komendę ‘uname -a’. Przydała by się skonfigurowana także sieć lokalna (komputery mam nadzieje połączone są już w sieć) - jeżeli tego jeszcze nie zrobiłeś - niestety ja Ci tutaj nie pomogę. Poszukaj dokumentacji do swojej dystrybucji.

Teraz trzeba napisać skrypt który będzie włączał tą maskaradę:

1) Zaloguj się jako root, wejdź do katalogu /etc/rc.d i stwórz plik rc.masq, nadaj mu atrybuty pliku wykonywalnego:

cd /etc/rc.d && touch rc.masq && chmod +x rc.masq

2) Wyedytuj ten plik (możesz do tego użyć ulubionego edytora tekstowego, jeżeli nie masz takowego, użyj programu mc który wygląda i działa podobnie do Midnight Commandera), wpisz do niego odpowiednią treść zależnie od wersji kernela:

dla kerneli w wersjach 2.2.x:

#!/bin/sh

# włączenie forwardowania pakietów:
echo 1 > /proc/sys/net/ipv4/ip_forward

# parametry -F -X wyczyszczą aktualne reguły maskarady
ipchains -F
ipchains -X

# domyślne DENY przy próbie forwardowania pakietów
ipchains -P forward DENY

# uruchamiamy maskaradę
ipchains -A forward -s 192.168.0.0/255.255.0.0 -d 0/0 -j MASQ

# moduły wspomagające do maskarady
/sbin/modprobe ip_masq_irc
/sbin/modprobe ip_masq_ftp

Co to wszystko oznacza? Każdy pakiet pochodzący z komputera o adresie rozpoczynającym się od 192.168. (-s 192.168.0.0/255.255.0.0 - czyli 192.168.0.0 - 192.168.255.255) zadresowany gdziekolwiek (-d 0/0) ma zostać zmaskowany (-j MASQ). Jeżeli nadal tego nie rozumiesz - poczekaj parę minut i spróbuj jeszcze raz.

dla kerneli w wersjach 2.4.x i 2.6.x:

#!/bin/sh

# włączenie forwardowania pakietów:

echo 1 > /proc/sys/net/ipv4/ip_forward
# wyczyśćmy tablice iptables odpowiedzialne za nat i za filtrowanie pakietów:

iptables -F -t nat
iptables -X -t nat
iptables -F -t filter
iptables -X -t filter

# Domyślnie odrzucamy i nie zezwalany na forwardowanie pakietów

iptables -t filter -P FORWARD DROP

# Zezwalamy na by serwer przepuszczał pakiety które pochodzą z naszej sieci
# lokalnej lub są dla niej przeznaczone.

iptables -t filter -A FORWARD -s 192.168.0.0/255.255.0.0 -d 0/0 -j ACCEPT

iptables -t filter -A FORWARD -s 0/0 -d 192.168.0.0/255.255.0.0 -j ACCEPT

# Teraz nakazujemy by wszystkie pakiety pochodzące z lanu były maskowane

iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -d 0/0 -j MASQUERADE

# I doładujmy moduł do obsługi ftp i irc (moduł do irca zauważyłem dopiero
# w kernelu 2.4.14 dlatego się w końcu za niego wziąłem

/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc

Jak widać iptables w Linuxie 2.4.* są o wiele bardziej zaawansowane niż ipchains w 2.2.*. Wiem także iż można zrobić maskaradę prościej/lepiej. Ale powyższy przykład działa i jest w miarę podobny do ipchains. Teraz, aby przy każdym uruchomieniu serwera był wykonywany ten skrypt, dopisujemy w pliku /etc/rc.local na końcu:

/etc/rc.d/rc.masq

Skomentuj