If-Koubou

Używanie Iptables w systemie Linux

Używanie Iptables w systemie Linux (Jak)

W tym przewodniku spróbujemy wyjaśnić, jak używać iptables na Linuksie w łatwym do zrozumienia języku.

Zawartość

[ukryć]

  • 1. Przegląd
  • 2 Wykorzystanie
    • 2.1 Blokowanie pojedynczego adresu IP
    • 2.2 Zezwalanie na cały ruch z adresu IP
    • 2.3 Blokowanie portu od wszystkich adresów
    • 2.4 Zezwalanie na pojedynczy port z pojedynczego adresu IP
    • 2.5 Przeglądanie bieżących reguł
    • 2.6 Usuwanie bieżących reguł
  • 3 Specyficzne dla dystrybucji
    • 3.1 Gentoo

Przegląd

Iptables to zapora oparta na regułach, która będzie przetwarzać każdą regułę w kolejności, aż znajdzie taką, która pasuje.

Todo: dołącz tutaj przykład

Stosowanie

Narzędzie iptables jest zazwyczaj preinstalowane w twojej dystrybucji Linuksa, ale w rzeczywistości nie ma żadnych reguł. Narzędzie znajdziesz tutaj w większości dystrybucji:

/ sbin / iptables

Blokowanie pojedynczego adresu IP

Możesz zablokować IP, używając parametru -s, zastępując 10.10.10.10 adresem, który próbujesz zablokować. W tym przykładzie zauważysz, że użyliśmy parametru -I (lub -insert działa również) zamiast załącznika, ponieważ chcemy się upewnić, że ta reguła pojawia się jako pierwsza, przed wszelkimi regułami zezwalającymi.

/ sbin / iptables -I WEJŚCIE -s 10.10.10.10 -j DROP

Zezwalanie na cały ruch z adresu IP

Możesz na przemian zezwalać na cały ruch z adresu IP, używając tego samego polecenia, co powyżej, ale zastępując DROP przez ACCEPT. Musisz upewnić się, że ta reguła pojawia się jako pierwsza, przed wszelkimi zasadami DROP.

/ sbin / iptables -A INPUT -s 10.10.10.10 -j AKCEPTUJ

Blokowanie portu od wszystkich adresów

Możesz całkowicie zablokować dostęp do portu przez sieć, używając przełącznika -dport i dodając port usługi, którą chcesz zablokować. W tym przykładzie zablokujemy port mysql:

/ sbin / iptables -A INPUT -p tcp --dport 3306 -j DROP

Zezwalanie na pojedynczy port z pojedynczego adresu IP

Możesz dodać polecenie -s wraz z poleceniem -dport, aby dodatkowo ograniczyć regułę do określonego portu:

/ sbin / iptables -A INPUT -p tcp -s 10.10.10.10 --dag 3306 -j AKCEPTUJ

Przeglądanie bieżących reguł

Możesz przeglądać bieżące reguły za pomocą następującego polecenia:

/ sbin / iptables -L

Powinno to dać wynik podobny do następującego:

Łańcuch INPUT (polisa ACCEPT) cel docelowy docelowy opt proteza AKCEPTUJ wszystko - 192.168.1.1/24 w dowolnym miejscu AKCEPTUJ wszystko - 10.10.10.0/24 w dowolnym miejscu DROP tcp - gdziekolwiek w dowolnym miejscu tcp dpt: ssh DROP tcp - wszędzie gdziekolwiek tcp dpt: mysql

Rzeczywista wydajność będzie oczywiście nieco dłuższa.

Usuwanie bieżących zasad

Możesz wyczyścić wszystkie bieżące reguły, używając parametru opróżniania. Jest to bardzo przydatne, jeśli chcesz umieścić reguły we właściwej kolejności lub podczas testowania.

/ sbin / iptables --flush

Dystrybucja

Podczas gdy większość dystrybucji Linuksa zawiera formę iptables, niektóre z nich zawierają również opakowania, które ułatwiają zarządzanie. Najczęściej te "dodatki" mają postać skryptów inicjujących, które dbają o inicjowanie iptables przy starcie, choć niektóre dystrybucje zawierają także pełne aplikacje owijające, które próbują uprościć zwykły przypadek.

Gentoo

Theiptables skrypt init w Gentoo jest w stanie obsłużyć wiele typowych scenariuszy. Na początek, pozwala skonfigurować iptables, aby załadować przy starcie (zwykle to, co chcesz):

rc-update dodaje domyślnie iptables

Za pomocą skryptu init można załadować i usunąć zaporę za pomocą łatwego do zapamiętania polecenia:

/etc/init.d/iptables start /etc/init.d/iptables stop

Skrypt init obsługuje szczegóły utrzymywania aktualnej konfiguracji firewalla przy uruchomieniu / zatrzymaniu. Zatem twój firewall jest zawsze w stanie, w którym go zostawiłeś. Jeśli chcesz ręcznie zapisać nową regułę, skrypt init też sobie z tym poradzi:

/etc/init.d/iptables zapisz

Dodatkowo możesz przywrócić zaporę ogniową do poprzedniego stanu zapisanego (w przypadku, gdy eksperymentowałeś z regułami, a teraz chcesz przywrócić poprzednią działającą konfigurację):

/etc/init.d/iptables przeładuj

Na koniec skrypt init może ustawić iptables w trybie "paniki", w którym cały ruch przychodzący i wychodzący jest blokowany. Nie jestem pewien, dlaczego ten tryb jest przydatny, ale wydaje się, że wszystkie zapory ogniowe Linux go mają.

/etc/init.d/iptics panika

Ostrzeżenie: Nie uruchamiaj trybu paniki, jeśli masz połączenie z serwerem przez SSH; tybędzie być rozłączonym! Jedyny czas, w którym powinieneś umieścić iptables w trybie paniki, jest w stanie, w którym jesteśfizycznie przed komputerem.