Komputery naszą pasją!

Linux, Poradniki

Debian serwer – program iptables (udostępnianie Internetu)

Deban Serwer iptables

Pokazaliśmy Wam poradnik przedstawiający, jak zainstalować serwer DHCP. Natomiast dziś zaprezentujemy narzędzie iptables i pokażemy, w jaki sposób za jego pomocą udostępnić Internet naszym klientom podłączonym do serwera. Ale czym jest ten program? iptables to program sterujący filtrem pakietków (głównie używanym jako zapora sieciowa) opracowany dla systemu Linux. Dzięki niemu możemy ustawiać dostęp do serwera dla poszczególnych adresów IP, bądź MAC .

Jak działa iptables?

Narzędzie iptables pozwala stworzyć tzw. tabele. Każda z nich się różni, ponieważ służą do przetwarzania innych pakietów. Np. oddzielne tabele do zapory sieciowej i NAT. Poniżej przedstawię kilka tabel, wraz z tzw. łańcuchami, które służą do ich zarządzeniem.

  • filter – domyślna tablica
    • INPUT – pakiety przeznaczone dla lokalnego komputera
    • FORWARD – pakiety routowane przez lokalny komputer
    • OUTPUT – pakiety wygenerowane przez lokalny komputer
  • nat – pakiety nawiązujące nowe połączenia
    • PREROUTING – dla zmian w pakietach zanim zostaną routowane
    • OUTPUT – dla zmian w lokalnie wygenerowanych pakietach zanim zostaną routowane
    • POSTROUTING – dla zmian w pakietach tuż przed ich wysłaniem
  • mangle – dla wyspecjalizowanych zmian w pakietach
    • PREROUTING – dla zmian w pakietach przychodzących zanim zostaną routowane
    • OUTPUT – dla zmian w lokalnie wygenerowanych pakietach, przed ich routowaniem
    • INPUT – dla zmian w pakietach zmierzających do lokalnego komputera
    • FORWARD – dla zmian w pakietach routowanych przez lokalny komputer
    • POSTROUTING – dla zmian w pakietach po routingu, tuż przed ich wysłaniem

Na łańcuchach możemy też przeprowadzać operacje:

  • -P – zmiana zasady dla wbudowanego łańcucha
  • -L – listowanie reguł w łańcuchu
  • -F – wyczyszczenie reguł z łańcucha
  • -A – dodanie nowej reguły do łańcucha
  • -I – wstawienie reguły do łańcucha na określoną pozycję
  • -R – wymiana reguły na określonej pozycji
  • -D – skasowanie reguły
  • -X – skasowanie pustego łańcucha
  • -Z – zerowanie liczników w łańcuchu

Ważnym aspektem są też opcje filtrowania, które pozwalają skonfigurować poszczególne komponenty:

  • -p -użycie reguły dla konkretnego protokołu
  • -s -określenie adresu źródłowego pakietu
  • -d -określenie adresu docelowego pakietu
  • -i -określenie interfejsu sieciowego
  • –sport -określenie portu źródłowego
  • –dport -określenie portu docelowego
  • -j – określa co należy wykonać z pakietem pasującym do reguły

Możliwe stany dla –j to:

  • DENY
  • ACCEPT
  • DROP
  • RETURN

UWAGA! WIELKOŚĆ LITER MA ZNACZENIE!

Przykładowe polecenia

W tym poradniku nie będę opisywał wszystkiego, co może nam dać to narzędzie. Zajmiemy się tylko podstawowymi akcjami, takimi jak blokada adresów lub udostępnianie internetu. Zacznijmy od czegoś prostego. Zablokujmy cały ruch przychodzący do naszego serwera. Zrobimy to za pomocą polecenia:

iptables -P INPUT DROP

W ten sposób pingi przestaną przechodzić pomiędzy komputerami. Aby odblokować cały ruch użyjemy polecenia:

iptables -P INPUT ACCEPT

I znów wszystko będzie jak wcześniej. Teraz spróbujmy ustawić naszą tablicę tak, aby przyjmowane były tylko pakiety jednego komputera. Na początek musimy zablokować cały ruch, tak jak pokazałem wyżej. Potem używamy polecenia akceptującego adres IP naszego klienta:

iptables -A INPUT -s 192.168.222.50 -j ACCEPT
iptables

Aby usunąć dany adres IP z tablicy, to zamiast ACCEPT używamy DROP. Możemy też wyczyścić całą tablice za pomocą:

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

Udostępnianie Internetu Linux

W ostatnim poradniku pokazałem Wam, jak skonfigurować DHCP. Otrzymywaliśmy adres IP od serwera, ale nie mieliśmy dostępu do Internetu. Teraz pokaże jak to łatwo zrobić. Najpierw musimy włączyć opcję forwardowania:

echo 1 > /proc/sys/net/ipv4/ip_forward

Następnie do tablicy NAT dodajemy naszą sieć i akceptujemy forwardowanie:

iptables -t nat -A POSTROUTING -s 192.168.222.0/24 -j MASQUERADE
iptables -A FORWARD -s 192.168.222.0/24 -j ACCEPT

Po tym należy uruchomić ponownie naszą stację roboczą. Sprawdźmy, czy zadziałało:

Udało się przesłać pakiety do zewnętrznego serwera, więc wszystko działa. .

Zapisanie reguł iptables

Została nam ostatnia rzecz. Musimy zapisać nasze zmiany w tablicach, ponieważ po resecie serwera wszystkie zmiany zostaną usunięte. Potrzebny nam będzie pakiet:

apt-get install iptables-persistent

Następnie zapisujmy bieżącą konfiguracje pliku i to wszystko.

iptables-save > /etc/iptables/rules.v4

Rozumiem, że niektóre elementy iptables mogą być niejasne. Jeśli chcecie się bardziej zagłębić w działanie tego narzędzia odsyłam Was tutaj. W tym poradniku to już wszystko. Mam nadzieję, że Wam trochę pomógł i rozjaśnił na czym polega to narzędzie.