Przejdź do głównej zawartości

Podstawy iptables

Iptables jest podstawowym narzędziem typu firewall w systemach Linux. Pozwala tworzyć podstawowe jak i zaawansowane reguły i polityki bezpieczeństwa.

Wstępnie istnieje kilka tabel: filter, mangle, nat. W tabeli filter stnieją trzy domyślne chainy (z ang. łańcuchy): forward, input oraz output. Dziś przyjrzymy się dwóm, input oraz output. Input odpowiada za połączenia przychodzące do serwera, czyli od klient do serwera, zaś output w przeciwnym kierunku, czyli od serwera do klienta. Domyślnie każdy z łańcuchów posiada domyślną politykę, która mówi co domyślnie ma się dziać z każdym pakietem/połączeniem: ma być przepuszczany lub blokowany.

Reguły są ułożone kolejno, pakiet, który zostanie dopasowany do danej reguły nie jest poddawany interpretacji przez kolejne z wpisów.

 

Dodanie wpisu do tablicy:

iptables -t tabela -A parametry -j czynność

Usunięcie wpisu:

iptables -t tabela -D parametry -j czynność

Wstawianie reguły (w konkretne pozycję):

iptables -t tabela -I pozycja parametry -j czynność

Wyświetlenie istniejących reguł:

iptables -L

Wyczyszczenie konfiguracji:

iptables -F

Domyślne akcje to:

  • ACCEPT - akceptuje połączenie
  • DROP - odrzuca połączenie

Parametry (podstawowe):

  • -p protokół tcp, udp np. -p tcp
  • -s adres żródłowy np. 188.116.15.1 lub cała podsieć 188.116.15.0/24 (zapis CIDR)
  • -d adres docelowy - analogicznie jak z adresem źródłowym
  • --sport port źródłowy [1-65535]
  • --dport port docelowy [1-65535]

Przykładowe użycie:

  • blokuje na wejściu port źródłowy 8000/tcp:
iptables -t filter -A INPUT -p tcp --sport 8000 -j DROP
  • blokuje na wyjściu port źródłowy 8000/tcp:
iptables -t filter -A OUTPUT -p tcp --sport 8000 -j DROP
  • blokuje na wyjściu port docelowy 35100/udp:
iptables -t filter -A OUTPUT -p udp --dport 35100 -j DROP
  • blokuje cały ruch przychodzący z sieci 188.116.0.0/16:
iptables -t filter -A INPUT -s 188.116.0.0/16 -j DROP
  • blokuje ruch przychodzący na porcie źródłowym tcp 65247 z sieci 188.116.0.0/16:
iptables -t filter -A INPUT -s 188.116.0.0/16 -p tcp -sport 65247 -j DROP

Wiele parametrów można ze sobą łączyć tworząc różne reguły. Usunięcie wpisu jest bardzo proste, wpis jest identyczny jak wpis przy dodawaniu, jednak przełącznik -A zastępujemy przełącznikiem -D.

Usunięcie reguły blokującej ruch wejściowy z portem źródłowym 65247/tcp z sieci 188.116.0.0/16:

iptables -t filter -D INPUT -s 188.116.0.0/16 -p tcp --sport 65247 -j DROP
informacja

Reguły są domyślnie usuwane wraz z restartem systemu, aby były ładowane na starcie należy dopisać je np. do pliku /etc/rc.local

Aby uzyskać gotowy skrypt do wklejenia do pliku /etc/rc.local należy skorzystać z polecenia iptables-save.

iptables-save