Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
pl:przewodniki:prosty-firewall-dla-stacji-roboczej [2007/11/08 22:00]
qwiat
pl:przewodniki:prosty-firewall-dla-stacji-roboczej [2008/10/31 00:23] (current)
qwiat firestarter
Line 1: Line 1:
-Poniżej przestawię jak stworzyć ​prosty i jednocześnie skuteczny firewall oparty o **Netfilter**. Zaczynamy od instalacji programu iptables: +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: 
-<​code>​poldek -i iptables</​code>​+<​code>​poldek -i iptables</​code>​ 
  
 ====== Podstawowa wersja ====== ====== Podstawowa wersja ======
Line 16: Line 17:
 # iptables -A INPUT -m state --state ESTABLISHED,​RELATED -j ACCEPT</​code>​ # iptables -A INPUT -m state --state ESTABLISHED,​RELATED -j ACCEPT</​code>​
  
-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.+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.
  
  
Line 38: Line 39:
   * Dostęp do wszystkich usług z sieci lokalnej (np. 192.168.0.0/​24):​   * Dostęp do wszystkich usług z sieci lokalnej (np. 192.168.0.0/​24):​
 <​code>#​ iptables -A INPUT -s 192.168.0.0/​24 -j ACCEPT</​code>​ <​code>#​ iptables -A INPUT -s 192.168.0.0/​24 -j ACCEPT</​code>​
 +
  
  
Line 45: Line 47:
 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):​ 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+<​code>​# iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 2/s -j ACCEPT</​code>​ 
  
 ====== Skrypt ====== ====== Skrypt ======
  
-Wydawanie kolejno tych poleceń potrafi być bardzo uciążliwe,​ dlatego umieścimy je w skrypcie powłoki, łącznie z podanymi ​regułkami dodatkowymi:​+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:​
 <​code>#​!/​bin/​sh <​code>#​!/​bin/​sh
 IT=/​usr/​sbin/​iptables IT=/​usr/​sbin/​iptables
Line 64: Line 67:
 $IT -A INPUT -m state --state ESTABLISHED,​RELATED -j ACCEPT $IT -A INPUT -m state --state ESTABLISHED,​RELATED -j ACCEPT
 $IT -A INPUT -p tcp --dport ssh -j ACCEPT $IT -A INPUT -p tcp --dport ssh -j ACCEPT
-$IT -A INPUT -s 192.168.0.0/​24 -j ACCEPT 
  
 # specjalne: ident # specjalne: ident
Line 71: Line 73:
  
 Zapisujemy kod do pliku, nadajemy mu prawo wykonania i już możemy używać skrypt. 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 :
 +<​code>​
 +# poldek -i iptables-init
 +</​code>​
 +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:
 +<​code>​
 +# service iptables save
 +</​code>​
 +Przywrócenie zapisanych reguł (np. po eksperymentach) :
 +<​code>​
 +# service iptables start
 +</​code>​
 +Porzucenie tych reguł :
 +<​code>​
 +# service iptables stop
 +</​code>​
 +
 +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//
pl/przewodniki/prosty-firewall-dla-stacji-roboczej.1194555642.txt.gz · Last modified: 2007/11/08 22:00 by qwiat
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0 Powered by Lighttpd - fly light