Przewodnik dla początkujących po tabelach IP

Przewodnik dla początkujących po IPTables


IPTables to nazwa zapory ogniowej, która działa za pośrednictwem wiersza poleceń w systemie Linux. Ten program jest dostępny głównie jako domyślne narzędzie Ubuntu. Administratorzy często wykorzystują zaporę IPTables do zezwalania lub blokowania ruchu w swoich sieciach. Jeśli dopiero zaczynasz korzystać z IPTables, jedną z pierwszych rzeczy, które musisz zrobić, to zaktualizować go lub zainstalować za pomocą następującego polecenia:

$ sudo apt-get install iptables

Chociaż użytkownicy, którzy dopiero zaczynają korzystać z interfejsów wiersza poleceń, odkryli, że do IPTables dołączona jest krzywa uczenia się, samo narzędzie jest wystarczająco proste w użyciu. Istnieje szereg podstawowych poleceń, które działają jak chleb powszedni do kontrolowania ruchu. Biorąc to pod uwagę, należy bardzo ostrożnie wprowadzać zmiany w regułach IPTables. Wpisanie złego polecenia może całkowicie zablokować IPTables, dopóki nie rozwiążesz problemu na maszynie fizycznej.

W tym artykule przedstawiamy podstawowy przewodnik po IPTables i podstawy. Zanim przejdziemy do sedna IPTables, musisz upewnić się, że masz VPA z systemem Ubuntu 16.04 i a komputer lokalny z klientem SSH. Jeśli już je masz, czas zacząć.

Samouczek IPTables: Łańcuchy

Łańcuchy samouczków Iptables

Jedną z podstawowych koncepcji, które należy uwzględnić w IPTables, jest koncepcja łańcuchów. Łańcuch jest w zasadzie regułą. Tabele filtrów mają trzy łańcuchy, które napotkasz na IPTables; WEJŚCIE, NAPRZÓD i WYNIK.

  • WEJŚCIE - Łańcuch INPUT jest regułą kontrolującą przychodzące pakiety. Tutaj możesz zablokować lub zezwolić na nowe połączenia. Możesz to zrobić na podstawie portu, protokołu i źródłowego adresu IP.
  • NAPRZÓD - Łańcuch FORWARD filtruje przychodzące pakiety, które są przekazywane do innej lokalizacji końcowej. Jest mało prawdopodobne, abyś używał tego łańcucha, chyba że kierujesz routingiem lub szukasz przekazywania.
  • WYNIK - Łańcuch OUTPUT służy do zarządzania wychodzącymi pakietami i połączeniami. Ważne jest, aby pamiętać, że w przypadku pingowania zewnętrznego hosta łańcuch wejściowy zostanie wykorzystany do zwrócenia danych z powrotem do Ciebie.

Domyślne zachowanie łańcucha

Podczas uruchamiania możesz od razu przejść do konfigurowania określonych reguł, ale najpierw musisz cofnąć się o krok, aby zdefiniować domyślne zachowanie. Aby określić, jakie jest domyślne zachowanie Twoich łańcuchów, musisz uruchomić polecenie:

Komenda $ sudo iptables -L

Spowoduje to wyświetlenie następujących informacji:

zasady łańcucha 2

użytkownik @ ubuntu: ~ $ sudo iptables -L -v
Łańcuch WEJŚCIE (AKCEPTACJA zasad)
Łańcuch DO PRZODU (AKCEPTACJA zasad)
WYJŚCIE łańcucha (AKCEPTACJA zasad)
użytkownik @ ubuntu: ~ $

Ta informacja mówi dokładnie, do czego skonfigurowane są Twoje łańcuchy. W tym przykładzie łańcuchy wejściowy, forward i wyjściowy zostały skonfigurowane do akceptowania ruchu. Te ustawienia są dobrym punktem wyjścia, ponieważ nie blokują żadnych pożądanych połączeń.

Jeśli jednak okaże się, że Twoje zasady nie akceptują połączeń, możesz wprowadzić każde z następujących poleceń, aby zaakceptować wszystkie połączenia:

$ sudo iptables —policy AKCEPTACJA WEJŚCIA$ sudo iptables - polityka AKCEPTACJA WYJŚCIA$ sudo iptables —POLITY AKCEPTACJA

Po dostosowaniu ustawień domyślnych do akceptowania wszystkich połączeń można kontrolować dostęp do tabel IPT, blokując adresy IP i numery portów. Pozwala to określić, które połączenia mają być blokowane, zamiast domyślnie blokować wszystko.

Jeśli pracujesz ze szczególnie wrażliwymi informacjami, możesz skonfigurować ustawienia domyślne, aby automatycznie blokować wszystkie połączenia. W ten sposób możesz użyć IPTables, aby wybrać pojedyncze adresy IP, na które chcesz zezwolić. Aby to zrobić, musisz wprowadzić następujące polecenie:

$ sudo iptables —policy DROP WEJŚCIA$ sudo iptables —polityka WYJŚCIE WYJŚCIOWE$ sudo iptables —POLITY FORWARD DROP

Większość użytkowników lepiej będzie akceptować wszystkie połączenia, ale warto o tym pamiętać, jeśli pracujesz na serwerze o wysokim poziomie bezpieczeństwa.

Konfigurowanie indywidualnych połączeń

konfigurowanie poszczególnych połączeń

Po skonfigurowaniu domyślnego zachowania łańcucha nadszedł czas na skonfigurowanie poszczególnych połączeń. Jest to punkt, w którym konfigurujesz tak zwaną odpowiedź specyficzną dla połączenia. Zasadniczo informuje IPTables, jak współdziałać po podłączeniu do adresu IP lub portu. Odpowiedzi te są następujące; ZAAKCEPTOWAĆ, UPUSZCZAĆ, ODRZUCAĆ.

Jak widać na powyższym obrazku, użytkownik zdefiniował reguły łańcuchowe, aby zezwalać, odrzucać lub odrzucać połączenie w zależności od wymagań. Poniżej znajduje się opis tego, co pociąga za sobą każda odpowiedź:

  • ZAAKCEPTOWAĆ - Ta konfiguracja pozwala po prostu nawiązać połączenie.
  • UPUSZCZAĆ - Drop blokuje połączenie bez interakcji ze źródłem w jakikolwiek sposób.
  • ODRZUCAĆ - To blokuje próbę połączenia, ale wysyła również komunikat o błędzie. Ma to na celu powiadomienie źródła, że ​​próba połączenia została zablokowana przez zaporę.

Jak zezwalać lub blokować połączenia

Istnieje wiele różnych sposobów blokowania lub zezwalania na połączenia w zależności od ustawień. Poniższe przykłady wykorzystują metodę ukrytego blokowania Upuszczać porzucić połączenia bez interakcji. iptables -A pozwala nam dodać dodatkowe zastrzeżenia do reguł ustanowionych przez nasze domyślne ustawienia łańcucha. Zobaczysz, jak używać tego polecenia do blokowania połączeń poniżej:

Blokowanie jednego adresu IP:

$ sudo iptables -A WEJŚCIE -S 10.10.10.10 -j DROP

W powyższym przykładzie zastąpiłbyś 10.10.10.10 adresem IP, który chcesz zablokować.

Blokowanie zakresu adresów IP:

$ sudo iptables -A WEJŚCIE -s 10.10.10.10.0 / 24 -j DROP

lub

$ sudo iptables -A WEJŚCIE -s 10.10.10.0/255.255.255/.0 -j DROP

Blokowanie jednego portu:

$ sudo iptables -A WEJŚCIE -p tcp —port ssh -s 10.10.10.10 -j DROP

Pamiętaj, że „ssh można zastąpić dowolnym protokołem lub numerem portu. Ważne jest również, aby pamiętać, że segment -p tcp kodu służy do określenia, czy protokół, który chcesz zablokować, używa UDP czy TCP.

Jeśli protokół używa UDP, należy wprowadzić -p udp zamiast -p tcp. Możesz także zablokować wszystkie połączenia z adresów IP, wprowadzając następujące polecenie:

$ sudo iptables -A WEJŚCIE -p tcp —port ssh -jDROP

Dwukierunkowa komunikacja: Stany połączeń - samouczek IPTables

Większość napotkanych protokołów wymaga komunikacji w obie strony, aby możliwe było przeniesienie. Oznacza to, że transfery składają się z danych wejściowych i wyjściowych. To, co wchodzi do twojego systemu, jest tak samo ważne, jak to, co wychodzi. Stany połączeń pozwalają mieszać i dopasowywać połączenia dwukierunkowe i połączenia jednokierunkowe. W poniższym przykładzie protokół SSH zablokował połączenia SSH z adresu IP, ale zezwala na połączenia z adresem IP:

$ sudo iptables -A WEJŚCIE -p tcp —port ssh -s 10.10.10.10 -m stan - stan NOWY, USTANOWIONY -j AKCEPTUJ

$ sudo iptables -A WYJŚCIE -p tcp —sport 22 -d 10.10.10.10. -m stan - stan USTANOWIONO -J AKCEPTUJĘ

Po wprowadzeniu polecenia zmiany stanu połączenia musisz zapisać zmiany. Jeśli nie, to po zamknięciu narzędzia konfiguracja zostanie utracona. W zależności od używanego systemu dystrybucji dostępnych jest wiele różnych poleceń:

Ubuntu:

$ sudo / sbin / iptables-save

Red Hat / CentOS -

$ sudo / sbin / service iptables save

LUB

$ sudo  /etc/init.d/iptables save 

Zapamiętywanie korzystania z tych poleceń jest niezbędne, ponieważ pozwoli to uniknąć kłopotów związanych z konfigurowaniem przy każdym ładowaniu narzędzia.

Usuwanie reguły

Równie ważne, jak możliwość zapisania reguł, jest możliwość ich usunięcia. Jeśli popełnisz błąd lub po prostu chcesz wyeliminować starą regułę, możesz użyć opcji -re Komenda. To polecenie należy połączyć z numerem wprowadzonej reguły. Liczba informuje IPTables, która reguła ma zostać usunięta. Na przykład, jeśli chcesz wpisać:

$ sudo iptables -D WEJŚCIE 10

Następnie skonfigurowana 10 reguła zostanie usunięta.

Jeśli chcesz posprzątać dom i usunąć szereg zasad, możesz użyć -Polecenie F.. Możesz to zrobić, wprowadzając następujące dane:

$ sudo iptables -F

Spowoduje to wyczyszczenie całego zestawu zasad i opróżnienie tabeli IPTable.

IPTables: Naucz się zasad łańcucha!

To kończy nasz samouczek IPTables. Jak widać, IPTables to wszechstronne narzędzie do blokowania i zezwalania na ruch Linux dystrybucje. Efektywne korzystanie z narzędzia polega na efektywnym konfigurowaniu domyślnych konfiguracji i budowaniu dodatkowych reguł. Domyślne konfiguracje pozwolą ci określić ogólne zamiary ruchu, aby zezwolić na ruch lub go zabronić; reguły pozwolą ci ustrukturyzować swoje podejście w odniesieniu do adresów IP, portów i protokołów.

Porysowaliśmy tylko powierzchnię z potencjałem IPTables i istnieje mnóstwo różnych poleceń, których możesz użyć, aby zdecydować, w jaki sposób odbierasz ruch na serwerze. Zalecamy jednak zapoznanie się z podstawami przed rozpoczęciem korzystania z innych poleceń. Na przykład musisz omówić podstawowe zasady łańcucha, zanim zdecydujesz się na coś bardziej wyspecjalizowanego.

Gdy już przyzwyczaisz się do działania IPTables, możesz zacząć wprowadzać jeszcze więcej reguł, by dostosować swoje wrażenia. W ten sposób będziesz mógł dokładnie określić, jakiego rodzaju połączenia będziesz dopuszczać z większą precyzją niż kiedykolwiek wcześniej.

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me

Add a Comment

Your email address will not be published. Required fields are marked *

14 + = 22