Wszystkie systemy operacyjne oparte na jądrze Linuksa mają wbudowaną zaporę, która monitoruje i filtruje ruch przychodzący i wychodzący na podstawie reguł określonych przez użytkownika lub platformę. W dystrybucji CentOS 7 domyślnie ta funkcja jest wykonywana przez narzędzie iptables , współpracujące z wbudowaną zaporą sieciową netfilter. Czasami administrator systemu lub menedżer sieci musi dostosować działanie tego komponentu, pisząc odpowiednie reguły. W dzisiejszym artykule chcielibyśmy porozmawiać o podstawach konfiguracji iptables w wyżej wymienionym systemie operacyjnym.
Treść
Samo narzędzie jest dostępne do pracy natychmiast po zakończeniu instalacji CentOS 7, ale dodatkowo będziesz musiał zainstalować niektóre usługi, które omówimy później. Na tej platformie znajduje się inne wbudowane narzędzie, które pełni funkcję zapory ogniowej o nazwie FirewallD. Aby uniknąć konfliktów podczas dalszej pracy, zalecamy wyłączenie tego komponentu. Szczegółowe instrukcje na ten temat można znaleźć w naszym innym materiale pod następującym linkiem.
Więcej szczegółów: Wyłącz firewallD w CentOS 7
Jak wiadomo, system może korzystać z IPv4 i IPv6. Dzisiaj skoncentrujemy się na przykładzie IPv4, ale jeśli chcesz skonfigurować inny protokół, musisz użyć ip6tables zamiast komendy iptables w konsoli.
Przede wszystkim dodaj do systemu dodatkowe komponenty narzędzia, które jest dziś brane pod uwagę. Pomogą w ustaleniu reguł i innych parametrów. Ładowanie odbywa się z oficjalnego repozytorium, więc nie zajmuje dużo czasu.
sudo yum install iptables-services
jest odpowiedzialne za instalowanie sudo yum install iptables-services
. Wprowadź go i naciśnij klawisz Enter . sudo iptables --version
. Teraz system operacyjny jest całkowicie gotowy do dalszej konfiguracji zapory poprzez narzędzie iptables . Oferujemy zapoznanie się z konfiguracją elementów, począwszy od zarządzania usługami.
Zarządzanie trybem pracy iptables jest wymagane w przypadkach, gdy trzeba sprawdzić efekt pewnych reguł lub po prostu ponownie uruchomić komponent. Odbywa się to za pomocą wbudowanych poleceń.
sudo service iptables stop
i naciśnij klawisz Enter , aby zatrzymać usługi. sudo service iptables start
. Takie ponowne uruchomienie, uruchomienie lub zatrzymanie narzędzia jest dostępne w dowolnym momencie, pamiętaj, aby zwracać wartość zwracaną tylko wtedy, gdy jest na żądanie.
Jak wspomniano wcześniej, zaporą zarządza się ręcznie lub automatycznie dodając reguły. Na przykład niektóre dodatkowe aplikacje mogą uzyskać dostęp do narzędzia, modyfikując niektóre zasady. Jednak większość tych działań jest nadal wykonywana ręcznie. Lista wszystkich bieżących reguł jest dostępna za pomocą sudo iptables -L
.
W wyświetlonym wyniku pojawią się informacje o trzech łańcuchach: „INPUT” , „OUTPUT” i „FORWARD” - odpowiednio ruch przychodzący, wychodzący i przekazujący.
Możesz określić status wszystkich łańcuchów, wpisując sudo iptables -S
.
Jeśli zasady, które widzisz, nie pasują do ciebie, są po prostu usuwane. Cała lista jest wyczyszczona w następujący sposób: sudo iptables -F
. Po aktywacji reguły zostaną usunięte całkowicie dla wszystkich trzech obwodów.
Kiedy trzeba wpływać tylko na polityki z dowolnego łańcucha, do linii dodawany jest dodatkowy argument:
sudo iptables -F INPUT
sudo iptables -F OUTPUT
sudo iptables -F FORWARD
Brak wszystkich zasad oznacza, że obecnie żadne ustawienia filtrowania ruchu nie są stosowane do żadnej ze stron. Następnie administrator systemu już ustawia nowe parametry za pomocą tej samej konsoli, komendy i różnych argumentów.
Każdy obwód jest skonfigurowany oddzielnie do odbierania lub blokowania ruchu. Ustawiając określoną wartość, możesz zapewnić, że na przykład cały ruch przychodzący zostanie zablokowany. Aby to zrobić, komenda musi być sudo iptables --policy INPUT DROP
, gdzie INPUT jest nazwą obwodu, a DROP jest wartością resetowania.
Dokładnie te same parametry są ustawione dla innych obwodów, na przykład sudo iptables --policy OUTPUT DROP
. Jeśli konieczne jest ustawienie wartości, aby odbierać ruch, DROP zmienia się na ACCEPT, a sudo iptables --policy INPUT ACCEPT
.
Jak wiadomo, wszystkie aplikacje sieciowe i procesy działają przez określony port. Blokując lub zezwalając na określone adresy, można kontrolować dostęp do wszystkich celów sieciowych. Przeanalizujmy przekierowanie portów za pomocą przykładu 80 . W „Terminalu” wystarczy wpisać polecenie sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
, gdzie -A to dodanie nowej reguły, INPUT jest wskazaniem obwodu, -P jest definicją protokołu, w tym przypadku TCP i -dport to port docelowy.
Dokładne to samo polecenie dotyczy portu 22 , który jest używany przez usługę SSH: sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
.
Aby zablokować określony port, używany jest ciąg dokładnie tego samego typu, tylko na końcu ACCEPT zostaje zmienione na DROP . Wynikiem jest na przykład sudo iptables -A INPUT -p tcp --dport 2450 -j DROP
.
Wszystkie te reguły są przechowywane w pliku konfiguracyjnym i można je wyświetlić w dowolnym momencie. Pamiętaj, że odbywa się to poprzez sudo iptables -L
. Jeśli adres IP sieci musi zostać rozwiązany wraz z portem, linia jest nieco zmodyfikowana - po dodaniu TPC , -s i samego adresu. sudo iptables -A INPUT -p tcp -s 12.12.12.12/32 --dport 22 -j ACCEPT
, gdzie 12.12.12.12/32 jest wymaganym adresem IP.
Blokowanie odbywa się na tej samej zasadzie, zmieniając na koniec wartość ACCEPT to DROP . Potem okazuje się, na przykład, sudo iptables -A INPUT -p tcp -s 12.12.12.0/24 --dport 22 -j DROP
.
ICMP (Internet Control Message Protocol) to protokół, który jest częścią TCP / IP i służy do wysyłania komunikatów o błędach i sytuacji awaryjnych podczas pracy z ruchem. Na przykład, gdy żądany serwer jest niedostępny, to narzędzie wykonuje funkcje usługi. Narzędzie iptables pozwala ci zablokować je przez zaporę ogniową i możesz to zrobić poleceniem sudo iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP
. Będzie blokować żądania od Ciebie i do Twojego serwera.
Przychodzące żądania są blokowane nieco inaczej. Następnie musisz wpisać sudo iptables -I INPUT -p icmp --icmp-type 8 -j DROP
. Po aktywowaniu tych reguł serwer nie odpowie na żądania ping.
Czasami serwery podlegają atakom DDoS lub innym nieautoryzowanym działaniom intruzów. Odpowiednia konfiguracja zapory ogniowej pozwoli Ci chronić się przed tego rodzaju hackami. Na początek zalecamy ustawienie takich reguł:
iptables -A INPUT -p tcp --dport 80 -m limit --limit 20/minute --limit-burst 100 -j ACCEPT
, gdzie - limit 20 / minutę to limit częstotliwości wyników dodatnich. Możesz określić jednostkę miary samodzielnie, na przykład /second, /minute, /hour, /day
. --limit-burst number - ograniczenie liczby przekazywanych pakietów. Wszystkie wartości są ustawiane indywidualnie zgodnie z preferencjami administratora. sudo iptables -N block-scan
. sudo iptables -A block-scan -p tcp —tcp-flags SYN,ACK,FIN,RST -m limit —limit 1/s -j RETURN
. sudo iptables -A block-scan -j DROP
. Wyrażenie skanowania blokowego w tych przypadkach jest nazwą używanego obwodu. Ustawienia pokazane dzisiaj są tylko podstawą pracy w narzędziu do zarządzania zaporą. W oficjalnej dokumentacji narzędzia znajdziesz opis wszystkich dostępnych argumentów i opcji oraz będziesz mógł skonfigurować firewall specjalnie dla swoich żądań. Powyżej uznano standardowe zasady bezpieczeństwa, które są używane najczęściej iw większości przypadków są wymagane.