Główna » jak » Używanie Iptables w systemie Linux

    Używanie Iptables w systemie Linux

    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 użycie
      • 2.1 Blokowanie pojedynczego adresu IP
      • 2.2 Zezwalanie na cały ruch z adresu IP
      • 2.3 Blokowanie portu ze wszystkich adresów
      • 2.4 Umożliwienie pojedynczego portu 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 sieciowa 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) zamiast dodatku, ponieważ chcemy się upewnić, że ta reguła pojawi się jako pierwsza, zanim jakiekolwiek reguły zezwalające.

    / 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 regułami 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 --dan 3306 -j AKCEPTUJ

    Wyświetlanie aktualnych reguł

    Bieżące reguły można wyświetlić 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 - w dowolnym miejscu tcp dpt: ssh DROP tcp - gdziekolwiek w dowolnym miejscu tcp dpt: mysql

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

    Usuwanie bieżących reguł

    Możesz wyczyścić wszystkie aktualne 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

    The iptables skrypt init w Gentoo jest w stanie obsłużyć wiele typowych scenariuszy. Na początek pozwala na skonfigurowanie iptables do ładowania przy starcie (zwykle to, co chcesz):

    rc-update dodaj domyślnie iptables

    Za pomocą skryptu init możliwe jest załadowanie i usunięcie zapory 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. Tak więc twoja zapora ogniowa jest zawsze w stanie, w którym ją 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 i 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 użyteczny, ale wydaje się, że wszystkie zapory ogniowe Linux go mają.

    /etc/init.d/iptics panika

    Ostrzeżenie: Nie uruchamiaj trybu paniki, jeśli jesteś podłączony do serwera przez SSH; ty będzie być rozłączonym! Jedyny czas, w którym powinieneś umieścić iptables w trybie paniki, jest w momencie, gdy jesteś fizycznie przed komputerem.