Konfiguracja Firewall


Konfiguracja Firewall'a (iptables) w Debianie


Firewall znacząco zwiększa bezpieczeństwo naszego serwera a jego konfiguracja jest jedną z ważniejszych rzeczy wpływających na to. W różnych wersjach kerneli są różne programy do konfiguracji firewall'a, np. ipfwadm (2.0.x), ipchains (2.2.x), iptables(2.4.x). Choć w kernelach 2.4.x jest support dla ipchains polecałbym jednak iptables ze względu na dużo bardziej rozbudowane ich możliwości.
na początek musimy ściągnąć i zainstalować pakiet iptables apt-get install iptables następnie w konfiguracji kernela musimy uwzględnić następujące opcje :

<*> Packet socket
[*] Network packet filtering (replace ipchains)
<*> Unix domain sockets
[*] TCP/IP networking
[*] IP: advanced router
[*] IP: policy routing
[*] IP: use ne
tfilter MARK value as routing key
[*] IP: fast network address translation
[*] IP: use TOS value as routing key

Jedyna opcją której nie powinieneś zaznaczać jest :

[ ] IP: TCP Explicit Congestion Notification support

Jeśli ta opcja jest uaktywniona, twoja maszyna linuxowa nie będzie mogła utrzymać łączności z 8% całego Internetu. Po skonfigurowaniu kernela i zainstalowaniu pakietu iptables jesteśmy gotowi do konfiguracji firewall'a. Na początek jeśli masz sieć lokalną to powinniśmy zastąpić maskarade która dotąd była robiona przez ipchains :

iptables -t nat -A POSTROUTING -o ppp0 -j SNAT -s 192.168.1.0/24 -d ! 192.168.1.0/24 --to 1.2.3.4
1.2.3.4 - nasz IP zewnętrzny
ppp0 - jest naszym interfejsem wyjściowym na świat

Ta linijka załatwi nam maskowanie całej sieci tak jak robiło to ipchains. Musimy pamiętać żeby włączyć forwarding pakietów (tak jak w ipchains) :

echo 1 > /proc/sys/net/ipv4/ip_forward

lub w /etc/network/options ustawiamy ip_forward=yes

i wyłączyć ECN (jeśli nie zrobiliśmy tego w kernelu) :

echo 0 > /proc/sys/net/ipv4/tcp_ecn

Budowanie firewall'a zaczynamy od zablokowania wszystkiego:

iptables -P INPUT DROP

następnie przepuszczamy wszystko co idzie z naszej sieci lokalnej (a raczej wszystko co nie idzie z internetu czyli ppp0):

iptables -A INPUT -i ! ppp0 -j ACCEPT

jesli chcemy aby nasz komputer odpowiadal na ping dodajemy

iptables -A INPUT -i ppp0 -p icmp -j ACCEPT

przepuszczamy połączenia już zestawione ESTABLISHED i RELATED (więcej na ten temat możesz poczytać w Iptables (Netfilter) - Tutorial, do poprawnego działania tej linii jest potrzebne zaznaczenie w kernelu opcji :

<*> Connection state match support

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Teraz przystępujemy do otwierania poszczególnych portów do serwisów uruchomionych na serwerze:

iptables -A INPUT -p tcp --dport XXX -m state --state NEW -j ACCEPT

XXX to numer portu który chcemy otworzyć

robimy tak dla każdej usługi którą chcemy mieć dostępną na serwerze. Najczęściej używane porty to: 21 - ftp, 22 - ssh, 25 - poczta(smtp), 53 - DNS, 80 - www, 113 - auth.
dla DNS konieczne jest także otwarcie portu na UDP czyli:

iptables -A INPUT -p udp --dport XXX -m state --state NEW -j ACCEPT

ponieważ zablokowaliśmy cały ruch przychodzący ze świata nasz komputer nie odpowiada na standardowy "TCP reset" i "ICMP port-unreachable response", w tym wypadku musimy dodać do naszego firewall'a linijki naprawiające ten błąd:

iptables -A INPUT -p tcp -i ppp0 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p udp -i ppp0 -j REJECT --reject-with icmp-port-unreachable

To co opisałem jest podstawową formą firewall'a jeśli chcesz bardziej rozbudować swój firewall sięgnij do:

iptables-HOWTO (Online) - v1.0, 20 maj 2001
Firewalls; IPtables i zasady (Online) - autor David LeCount 13 czerwiec 2001 (Tłumaczenie: 30.09.2001 Tom Breza, Grzegorz Szurkało)
Iptables (Netfilter) - Tutorial (Online) - Autor: Daniel Robbins ( Wersja polska: 16 września 2001 ver.1.0 Tom Breza, Grzegorz Szurkało)
NAT (Online)

Diagram przepływu pakietów przez iptables w Linuxie

0x01 graphic



Wyszukiwarka

Podobne podstrony:
Konfiguracja firewalli
Chemia wyklad I i II (konfiguracja wiÄ…zania Pauling hybrydyzacja wiazania pi i sigma)
O'Reilly How To Build A FreeBSD STABLE Firewall With IPFILTER From The O'Reilly Anthology
07 Konfiguracja
Przenikanie firewalli w tunelach kryptograficznych
Cwiczenie 12 Konfigurowanie i testowanie VPN (PPTP)
Konfiguracja pamięci mikrokontrolera 8051 dla programów napisanych w języku C
1.1.6 Opis i konfiguracja zestawu protokołów TCPIP, 1.1 Nawiązywanie połączenia z Internetem
SK-cw3 2h Konfigurowanie sieci WLAN, Sieci Komputerowe
KONFIGURACJA KROTNICY SDH SPRAWOZDANIE
Konfiguracja napędów optycznych
KONFIGURACJA KROTNICY SDH SPRAWOZDANIE
2009 01 Firewall w Linuksie [Poczatkujacy]
DNS konfiguracja serwera
konfiguracja sieci rejestratory bcs (2)
Konfiguracja serwera Apache, SSL w systemie GNU Linux
Lab04 Konfiguracja DHCP

więcej podobnych podstron