skrypt firewalla - iptables co poprawić?
: 10 kwietnia 2009, 17:06
Witam.
Chciałbym sobie sam napisać prostego firewalla pod mojego laptopa bo coś nie ufam firestarterowi.
Czy mógłby ktoś rzucić okiem co mógłbym poprawić?
Chciałbym sobie sam napisać prostego firewalla pod mojego laptopa bo coś nie ufam firestarterowi.
Czy mógłby ktoś rzucić okiem co mógłbym poprawić?
Kod: Zaznacz cały
#!/bin/sh
#########################################
#sudo chmod 700 firewall.sh #
#sudo cp firewall.sh /etc/init.d/ #
#sudo update-rc.d firewall.sh default #
#########################################
#czyszczenie firewalla
iptables -F
iptables -P FORWARD ACCEPT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo "Konfiguracja firewalla rozpoczeta"
# ustawiamy zmienne potrzebne firewallowi
MOJEIP=`/sbin/ifconfig | grep 'inet addr' | grep Bcast | awk '{print $2}' | awk -F: '{print $2}'`
echo "moje IP: $MOJEIP"
#DNS1=194.204.159.1
#DNS2=194.204.152.34
# czyscimy wszystko
iptables -F -t nat
iptables -X -t nat
iptables -F -t filter
iptables -X -t filter
################
# blokujemy #
################
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
######################
# ustawienia wstepne #
######################
# ochrona przed atakiem typu Smurf
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# nie akceptujemy pakietow "source route" (zmieniaja tablice routingu)
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# nie przyjmujemy pakietow ICMP redirect, ktore moga zmienic nasza tablice routingu
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# wlaczamy ochrone przed blednymi pakietami ICMP error
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# ochrona przed spoofingiem -kazdy interfejs sieciowy bedzie przyjmowal
# tylko te pakiety ktore znajduja sie w tablicy routingu
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# wlacza logowanie dziwnych (spoofed, source routed, redirects) pakietow
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
#Blokada przed atakami typu SYN FLOODING
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#Moduł unclean 6 ma za zadanie wyłapywanie pakietów, które są niepoprawne
#w różny i trudny do sprecyzowania za pomocą standardowych regułek spo-
#sób. Moduł ten przeprowadza przetwarzanym pakiecie szereg testów, badając
#jego zgodność ze standardami, wewnętrzną spójność, poprawność flag i sze-
#reg innych cech. Moduł ten należy umiecśić na początku listy, na przykład
#w postaci poniższych regułek. Pozwoli on wychwycić i zablokować szereg do-
#tychczas znanych ataków związanych z błędną fragmentacją pakietów i fał-
#szywymi flagami, a także nowe ataki lub pakiety uszkodzone na łączach.
iptables -A INPUT -j DROP -m unclean
#### wlaczenie loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
# Dodanie do tablicy INPUT reguł wpuszczających pakiety należące do
#już nawiązanych (ESTABLISHED) połączeń.
iptables -A INPUT -p tcp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p udp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p icmp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p icmp -j ACCEPT -m state --state RELATED
####### strony www i dns
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
#iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
#iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
######## wysokie porty, nikłe zagrożenie
iptables -A INPUT -p tcp --dport 1024:65535 -j ACCEPT
iptables -A INPUT -p udp --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -p tcp --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -p udp --dport 1024:65535 -j ACCEPT
# ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 22 -j ACCEPT
# http i https
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p udp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p udp --dport 443 -j ACCEPT
# ftp
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p udp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p udp --dport 21 -j ACCEPT
# smtp oraz pop3 - oba z ssl
#iptables -A INPUT -p tcp --dport 25 -j ACCEPT
#iptables -A INPUT -p udp --dport 25 -j ACCEPT
#iptables -A INPUT -p tcp --dport 110 -j ACCEPT
#iptables -A INPUT -p udp --dport 110 -j ACCEPT
#iptables -A INPUT -p tcp --dport 465 -j ACCEPT
#iptables -A INPUT -p udp --dport 465 -j ACCEPT
#iptables -A INPUT -p tcp --dport 995 -j ACCEPT
#iptables -A INPUT -p udp --dport 995 -j ACCEPT
#zapisywanie do logow pakietow nie wpuszczonych
iptables -A INPUT -j LOG -m limit --limit 10/hour
echo "Konfiguracja firewalla zakonczona"