Rozpocznij pracę z Iptables: nie dopuszczaj złych ludzi (i botów) do serwera

Ujawnienie: Twoje wsparcie pomaga utrzymać działanie witryny! Pobieramy opłatę za polecenie niektórych usług, które zalecamy na tej stronie.


Iptables to aplikacja w przestrzeni użytkownika dla systemu Linux, używana do konfigurowania tabel IPv4 używanych przez zaporę jądra systemu Linux. Iptables jest zawarty w większości dystrybucji Linuksa działających na jądrze 2.4.x lub nowszym.

Iptables to niezwykle elastyczne narzędzie zapory wiersza polecenia, wykorzystujące łańcuchy zasad do zezwalania lub blokowania ruchu. Jest wyraźnie skierowany do administratorów systemu, ponieważ wymaga podwyższonych uprawnień do działania i musi zostać wykonany przez użytkownika root.

Krótka historia

Prace nad projektem iptables rozpoczęły się w 1998 roku, a jego szefem jest australijski programista Rusty Russell. Iptables został stworzony jako następca ipchains, wcześniejszego narzędzia zapory linuksowej, również stworzonego przez Russella.

W miarę rozwoju projektu Rusty Russell założył Netfilter Core Team w 1999 roku. Stworzył platformę Netfilter Linux i iptables i wydał je na licencji GNU General Public Licence. W marcu 2000 r. Netfilter i iptables zostały połączone w linię główną jądra Linux.

Funkcje i konstrukcja Iptables

Różne moduły jądra są używane dla różnych protokołów – iptables dotyczy IPv4, ip6tables do IPv6, arptables do ARP i ebtables do ramek Ethernet.

Iptables służy do konfigurowania, utrzymywania i sprawdzania tabel reguł filtrowania pakietów IPv4 w jądrze Linux.

Można zdefiniować kilka różnych tabel, z których każda zawiera szereg łańcuchów wbudowanych lub łańcuchów zdefiniowanych przez użytkownika. Każdy łańcuch to zestaw reguł, które mogą pasować do zestawu pakietów, a każda reguła określa, co zrobić z pasującym pakietem. Nazywa się to celem.

Jeśli pakiet pasuje do reguły, jego los zależy od wartości celu: ACCEPT przepuszcza pakiet, DROP odrzuca pakiet, QUEUE przekazuje pakiet do przestrzeni użytkownika, RETURN wznawia następną regułę w poprzednim łańcuchu wywołań.

Dostępnych jest do pięciu niezależnych tabel, w zależności od konfiguracji jądra i aktywnych modułów:

  • Filtr to domyślna tabela zawierająca wbudowane łańcuchy INPUT, FORWARD i OUTPUT.
  • Nat jest używany, gdy napotkany zostanie pakiet, który tworzy nowe połączenie, zawierający wbudowane łańcuchy PREROUTING, OUTPUT i POSTROUTING.
  • Magiel – służy do specjalistycznej zmiany pakietów, zawierającej wbudowane łańcuchy PREROUTING, INPUT, OUTPUT, FORWARD i POSTROUTING.
  • Surowy służy do konfigurowania wyjątków od śledzenia połączenia w połączeniu z celem NOTRACK, zapewniając wbudowane łańcuchy PREROUTING i OUTPUT.
  • Bezpieczeństwo służy do reguł sieciowych obowiązkowej kontroli dostępu (MAC) z wbudowanymi łańcuchami INPUT, OUTPUT i FORWARD.

Opcje rozpoznawane przez iptables są podzielone na polecenia, parametry i inne opcje.

Korzystanie z Iptables

Iptables to narzędzie wiersza poleceń zainstalowane fabrycznie w większości dystrybucji Linuksa. Jeśli potrzebujesz zaktualizować lub zainstalować iptables, możesz użyć następującego polecenia:

sudo apt-get install iptables

Powinieneś być bardzo ostrożny, jeśli jesteś zalogowany na zdalnym serwerze i konfigurujesz jego reguły iptables, ponieważ jedno złe polecenie może zablokować cię na dobre i może być konieczne ręczne naprawienie go na serwerze.

Zaprezentujemy kilka typowych i prostych poleceń używanych podczas konfigurowania reguł iptables. Jeśli planujesz korzystać z zaawansowanych funkcji iptables, powinieneś sprawdzić niektóre zasoby w iptables, które udostępniamy poniżej.

Możesz wyświetlić listę aktualnie skonfigurowanych reguł iptables, używając:

iptables –L

W większości przypadków system powinien domyślnie akceptować połączenia za pomocą następujących poleceń:

iptables – POLITY AKCEPTACJA WEJŚCIA
iptables – polityka AKCEPTACJA WYJŚCIA
iptables – POLITYKA AKCEPTACJA DO PRZODU

Następnie możesz użyć iptables, aby odmówić połączenia z określonych adresów IP lub portów, na przykład:

iptables -A WEJŚCIE -s 192.168.10.10 -j DROP

Lub możesz zablokować połączenia z zakresu adresów IP takich jak ten:

iptables -A WEJŚCIE -s 192.168.10.0/24 -j DROP

W niektórych szczególnych przypadkach można zastosować podejście przeciwne do opisanego powyżej. Możesz odmówić wszystkich połączeń i ręcznie określić te, które chcesz zezwolić na połączenie. Tego ustawienia można użyć dla serwerów z wrażliwymi danymi, które są podłączone do unikalnego adresu IP.

iptables –policy DROP WEJŚCIA
iptables – polisa DROP WYJŚCIA
iptables – polityka DROP FORWARD
iptables -A WEJŚCIE -s 192.168.10.10 -j AKCEPTUJĘ

Ważne jest, aby pamiętać, że wszystkie zmiany wprowadzone w regułach iptables nie zostaną zapisane automatycznie. Musisz ręcznie zapisać zmiany za pomocą polecenia, które może różnić się w zależności od dystrybucji. Oto polecenie Ubuntu:

sudo / sbin / iptables-save

W przypadku, gdy zapomniałeś zapisać zmiany wprowadzone w iptables, zostaną one utracone przy następnym uruchomieniu usługi iptables.

Możesz także użyć polecenia flush, aby wyczyścić wszystkie skonfigurowane reguły:

iptables -F

Zasoby Iptables

Istnieje wiele zasobów dla iptables online, co jest zrozumiałe, ponieważ iptables jest zawarty w większości dystrybucji Linuksa. Nauka i używanie iptables nie powinno stanowić problemu, szczególnie jeśli polegasz na wysokiej jakości zasobach takich jak:

  • Oficjalna instrukcja Iptables jest szczegółowa i zawiera przydatne odniesienia do poleceń i parametrów iptables.
  • Filtrowanie pakietów w Linuksie 2.4 Dokumentacja HOWTO to bardzo szczegółowy opis filtrowania pakietów napisany przez Rusty Russella. Szczególnie interesująca jest sekcja Korzystanie z Iptables.
  • Iptables How To jest dobrym przewodnikiem po iptables.

Książki Iptables

Nie ma obfitości książek dotyczących iptables, chociaż iptables są wspomniane w wielu książkach napisanych na temat sieci Linux i zapór ogniowych.

Przy dużej ilości wysokiej jakości zasobów internetowych nic dziwnego, że nie ma więcej książek dotyczących iptables. Dlatego wyróżniliśmy tylko jedną książkę o iptables:

  • Linux Iptables Pocket Reference Gregora Purdy’ego: To odniesienie kieszonkowe pomoże ci w tych krytycznych momentach, gdy ktoś prosi cię o szybkie otwarcie lub zamknięcie portu, aby umożliwić ważny ruch lub zablokować atak. Książka zachowa subtelną składnię i pomoże ci zapamiętać wszystkie wartości, które musisz wprowadzić, aby być jak najbardziej bezpiecznym.

Wniosek

Iptables to szeroko stosowane narzędzie, więc zdecydowanie warto je opanować, jeśli duża część pracy koncentruje się wokół serwerów opartych na systemie Linux. Na szczęście jego popularność oznacza, że ​​iptables jest nadal aktywnie rozwijany, a nowe wersje są okresowo wprowadzane.

Oznacza to również, że nie brakuje wysokiej jakości zasobów iptables w Internecie, ale jeśli lubisz marszczenie papieru, trudno ci będzie znaleźć książki iptables. Mimo to sama ilość zasobów cyfrowych iptables z nawiązką rekompensuje brak zasobów w miękkiej oprawie.

Iptables to potężne, ale łatwe w użyciu narzędzie. Każdy początkujący guru Linuksa powinien go opanować.

Dalsza lektura i zasoby

Mamy więcej przewodników, samouczków i infografik związanych z korzystaniem z komputera:

  • Programowanie w Linuksie Wprowadzenie i zasoby: to głębokie zanurzenie się w programowaniu w Linuksie znajduje się w jądrze, gdzie jest cała akcja.
  • Programowanie sieciowe z gniazdami internetowymi: dowiedz się wszystkiego o sieci w Internecie.

Zasoby programowania w Uniksie

Jeśli naprawdę interesujesz się Linuksem i chcesz zacząć tworzyć dla niego programy, mamy dla ciebie świetne miejsce do nauki: zasoby programistyczne dla Uniksa.

Najlepsza lista narzędzi dla webmasterów A-Z
Zasoby programowania w Uniksie

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map