W tym przewodniku spróbujemy wyjaśnić, jak używać iptables na Linuksie w łatwym do zrozumienia języku.
Zawartość[ukryć]
|
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
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
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
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
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
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
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.
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
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.
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.