Podstawowa wersja - PLD
Transkrypt
Podstawowa wersja - PLD
2017/02/27 14:43 1/3 Podstawowa wersja Jeśli nie odpowiadają nam graficzne narzędzia (np. firestarter) do konfiguracji filtra pakietów, możemy za pomocą kilku regułek iptables stworzyć prostą, ale skuteczną zaporę. Zaczynamy od instalacji programu iptables: $ poldek -i iptables Podstawowa wersja Nie da się w zasadzie napisać uniwersalnego filtra pakietów dla serwera, a tym bardziej routera, w każdym tego rodzaju zastosowaniu administrator przygotowuje zestaw reguł „szyty na miarę”. Firewalle dla stacji roboczych są dużo mniej skomplikowane, dzięki czemu można pokusić się o napisanie stosunkowo uniwersalnego zestawu regułek. Zapory dla stacji roboczych mają chronić usługi przed potencjalnymi atakami i jednocześnie pozwalać swobodne korzystanie z sieci. Dodatkowo taki filtr powinien być jak najbardziej bezobsługowy. Oto podstawowy zestaw reguł: # iptables -F # iptables -P INPUT DROP # iptables -P FORWARD DROP # iptables -P OUTPUT ACCEPT # iptables -A INPUT -i lo -j ACCEPT # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT Pierwszy wiersz usuwa istniejące regułki, trzy kolejne ustawiają domyślną politykę, czwarty dopuszcza ruch dla interfejsu pętli zwrotnej a ostatni wpuszcza ruch z zewnątrz pod warunkiem że był nawiązany z lokalnej maszyny. Domyślna polityka DROP powoduje, że odebrane pakiety które nie pasują do regułek będą całkowicie ignorowane. Powyższy przykład to w pełni działający firewall. Dzięki temu, że Netfilter jest filtrem stanowym można było znacznie zmniejszyć liczbę koniecznych regułek. Dodatkowe regułki (opcjonalne) Opisane poniżej dodatkowe regułki możemy wykonać po podstawowych Ident Wiele usług takich jak np. FTP czy SMTP, przed rozpoczęciem sesji próbuje połączyć się z klientem za pomocą usługi Ident. Użycie filtra w najprostszej postaci (jak powyżej) zablokuje takie żądanie, co z kolei zaowocuje kilkusekundowym opóźnieniem. Nie wpływają one na poprawność komunikacji, ale są dosyć uciążliwe. Zakładam, że na Twojej maszynie nie działa Ident, więc będziemy odrzucać tego rodzaju połączenia za wysłaniem pakietu z odmową połączenia. PLD-users.org - http://www.pld-users.org/ Last update: pl:przewodniki:prosty-firewall-dla-stacji-roboczej http://www.pld-users.org/pl/przewodniki/prosty-firewall-dla-stacji-roboczej 2008/10/31 00:23 # iptables -A INPUT -p tcp --dport 113 -j REJECT Dostęp do usług Załóżmy, że chcemy by do naszego komputera był dostęp na wskazane usługi, poniżej przedstawiamy kilka przykładów: Dostęp do SSH z całego świata: # iptables -A INPUT -p tcp --dport ssh -j ACCEPT Dostęp do wszystkich usług z sieci lokalnej (np. 192.168.0.0/24): # iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT ICMP echo Naiwne poradniki bezpieczeństwa sieciowego zalecają ignorowania zapytań o ICMP ECHO (i nie tylko), prawda jest jednak taka, że technik sprawdzenia działania hosta jest całkiem sporo, a w szczególności w sieci lokalnej. Ataki DoS typu ping flood, są jednymi z najbardziej prymitywnych i najmniej skutecznych, dlatego możemy spokojnie darować sobie blokowanie pingów. Poniżej zamieściłem regułkę dopuszczającą do dwóch pakietów ICMP PING na sekundę (wersja dla bardziej paranoicznych): # iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 2/s -j ACCEPT Skrypt Wydawanie kolejno tych poleceń potrafi być bardzo uciążliwe, dlatego umieścimy je w skrypcie powłoki, łącznie z kilkoma przykładowymi regułkami dodatkowymi: #!/bin/sh IT=/usr/sbin/iptables $IT -F # polityka domyslna $IT -P INPUT DROP $IT -P FORWARD DROP $IT -P OUTPUT ACCEPT # ruch $IT -A $IT -A $IT -A dopuszczony INPUT -i lo -j ACCEPT INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT INPUT -p tcp --dport ssh -j ACCEPT http://www.pld-users.org/ Printed on 2017/02/27 14:43 2017/02/27 14:43 3/3 Podstawowa wersja # specjalne: ident $IT -A INPUT -p tcp --dport 113 -j REJECT Zapisujemy kod do pliku, nadajemy mu prawo wykonania i już możemy używać skrypt. The Right Way™ of PLD Modyfikacja skryptów startowych jest pewną ingerencją w sumy kontrolne RPM, powodującą, że takowy plik niezmieniony jest zamieniany na nową wersję, np. powodującą prawidłowe skonfigurowanie jakiejś nowej opcji, podczas gdyż na zmodyfikowanych plikach przy aktualizacji pakietów są generowane pliki *.rpmnew, co nieraz jest przyczyną nowych postów na forum/liście dyskusyjnej przez zdezorientowanych użytkowników. Jeżeli jesteś zwolennikiem metod nazywanych 'koszernymi', to zamiast każdorazowego wykonywania skryptu konfigurującego przy starcie systemu, należy zainstalować dodatkowo pakiet iptables-init : # poldek -i iptables-init Następnie ustanawiasz wszystkie potrzebne reguły iptables, bądź bezpośrednio z linii poleceń, lub wykonując swój ulubiony skrypt. Teraz wykonujesz zrzut obecnie obowiązujących reguł iptables: # service iptables save Przywrócenie zapisanych reguł (np. po eksperymentach) : # service iptables start Porzucenie tych reguł : # service iptables stop I to tyle… Przy każdym restarcie systemu będą przywracane te reguły z pliku /etc/sysconfig/iptables zależnie od tego jak mamy skonfigurowany start/stop w odpowiednich runlevel-ach SysV. Domyślnie po instalacji w 3-im i 5-tym jest na start, jak w wiekszości usług dostępnych „spod poldka”. Dopisał : Daniel Dawid Majewski 10 lutego 2008r. o godz. 22:20 From: http://www.pld-users.org/ - PLD-users.org Permanent link: http://www.pld-users.org/pl/przewodniki/prosty-firewall-dla-stacji-roboczej Last update: 2008/10/31 00:23 PLD-users.org - http://www.pld-users.org/