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/

Podobne dokumenty