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ć]
|
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.