Witam,
Poniżej przedstawiłem moją konfigurację iptables i mam dwa następujące problemy:
1) Niestety na serwerze na którym mam iptables nie mogę otwierać co niektórych stron www (np. twojlimit.pl, poczta o2, chomikuj.pl ) a inne strony się otwierają, choć niepełnie. Komputery, które łączą się z tym serwerem otwierają te strony poprawnie.
2) Często przerywa my szybko sesję SSH i stąd moje pytanie czy iptables może być powodem?
Łączę się z netem za pomocą interfejsu ppp0 i komputery łączą się do serwera z sieci 10.0.0.0/24
Druga sieć po kablu to 192.168.1.0/24
Dodam, że Pinguję bez problemu wszystkie adresy internetu z serwera
---------------------------------------------------------------------------------------------------
#!/bin/bash
# Module to track the state of connections
modprobe ip_conntrack
# Load the iptables active FTP module, requires ip_conntrack i definiujemy dwa $
#modprobe ip_conntrack_ftp ports=21 2121
# Load iptables NAT module when required
modprobe iptable_nat
# Module required for active an FTP server using NAT
modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
case "$1" in
start)
mojeIP=`ifconfig ppp0 | grep "inet addr\\:" | awk '{ print (substr($2,6)) }'`
wan="ppp0"
lan="eth0"
wifi="wlan0"
########################################################## GŁÓWNA CZĘŚĆ #####################################################################################
# Jeżeli nasz komputer ma udostępniać Internet w sieci wewnętrznej to dodajemyregółkę uruchamiającą przekazywanie pakietów i tzw. maskaradę, czyli maskowanie$
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# Pozwalamy pakietom swobodnie biegać po naszym komputerze (odblokowujemu pętlęzwrotną LOOPBACK)
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#################################################### Reguły początkowe ####################################################################################
# Usuwamy poprzednie regóły
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
# Ustawiamy domyślną politykę dla poszczególnych łańcuchów na odrzucającą
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#################################################### Ochrona przed atakami #################################################################################
# Ochrona przed atakiem typu Smurf
/bin/echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Nie aktceptujemy pakietow "source route"
/bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Nie przyjmujemy pakietow ICMP rediect, ktore moga zmienic tablice routingu
/bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Wlaczamy ochrone przed blednymi komunikatami ICMP error
/bin/echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Wlaczenie mechanizmu wykrywania oczywistych falszerstw
# (pakiety znajdujace sie tylko tablicy routingu)
/bin/echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
/bin/echo 1 > /proc/sys/net/ipv4/tcp_timestamps
/bin/echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
/bin/echo 10 > /proc/sys/net/ipv4/ipfrag_time
/bin/echo 65536 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
/bin/echo 36024 > /proc/sys/net/ipv4/tcp_max_syn_backlog
# zwiekszenie rozmaru tablicy ARP
/bin/echo 1024 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
/bin/echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
/bin/echo 8192 > /proc/sys/net/ipv4/neigh/default/gc_thresh3
/bin/echo 1 > /proc/sys/net/ipv4/tcp_rfc1337
/bin/echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
/bin/echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
/bin/echo 60 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait
/bin/echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
/bin/echo 2400 > /proc/sys/net/ipv4/tcp_keepalive_time
/bin/echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
/bin/echo 0 > /proc/sys/net/ipv4/tcp_sack
/bin/echo 20 > /proc/sys/net/ipv4/ipfrag_time
/bin/echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog
# Ochrona przed atakiem typu „Ping of death”
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# Ochrona przed atakiem IDENT i SOCK SCANNING
iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with icmp-port-unreachable
# Blokada przed atakami typu SYN FLOODING
/bin/echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Właczenie proxy arp - dzieki temu serwer nie zdycha po kilku
#/bin/echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
# Zwiekszenie rozmiaru tablic routingu
/bin/echo "18192" > /proc/sys/net/ipv4/route/max_size
# Ochrona przed virusami Saser,Blaster,MyDoom "
iptables -A INPUT -i $wan -p tcp --destination-port 135 -j DROP
iptables -A INPUT -i $wan -p tcp --destination-port 139 -j DROP
iptables -A INPUT -i $wan -p tcp --destination-port 445 -j DROP
iptables -A OUTPUT -o $wan -p tcp --destination-port 135 -j DROP
iptables -A OUTPUT -o $wan -p tcp --destination-port 139 -j DROP
iptables -A OUTPUT -o $wan -p tcp --destination-port 445 -j DROP
iptables -A INPUT -p tcp --dport 1080 -j DROP
iptables -A OUTPUT -p tcp --dport 1080 -j DROP
iptables -A FORWARD -p tcp --dport 1080 -j DROP
############################################## Otwieramy jeszcze drogę docelową/powrotną pakietom ##########################################################
# Otworzenie dostępu FTP
#iptables -A INPUT --protocol tcp --destination-port 21 -j ACCEPT
#iptables -A INPUT --protocol tcp --source-port 21 -j ACCEPT
iptables -A INPUT --protocol udp --destination-port 21 -j ACCEPT
iptables -A INPUT --protocol udp --source-port 21 -j ACCEPT
# Otworzenie dostępu SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT --protocol udp --destination-port 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
#otwieramy jeszcze drogę powrotną pakietom
# Dostęp dla pakietów przychodzących WWW
iptables -A INPUT --protocol tcp --source-port 8080 -j ACCEPT
#Akceptujemy pakiety poczty wychodzącej (smtp)
#iptables -A INPUT -p tcp --sport 25 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --sport 53 -d $mojeIP -j ACCEPT
iptables -A OUTPUT -p tcp -s $mojeIP -d 0/0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -s 0/0 --sport 53 -d $mojeIP -j ACCEPT
iptables -A OUTPUT -p udp -s $mojeIP -d 0/0 --dport 53 -j ACCEPT
############################################## Pingowanie i flagi ###########################################################################################$
# Pozwalamy pingować wszystko w sieci Internet
iptables -A FORWARD -p icmp -s 0/0 -d 0/0 -j ACCEPT
iptables -A FORWARD -p icmp -s 0/0 -d 0/0 -j ACCEPT
# Pozwalamy na pingowanie nas i innych w sieci lokalnej
iptables -A INPUT -p icmp -s 0/0 -d 0/0 -j ACCEPT
iptables -A OUTPUT -p icmp -s 0/0 -d 0/0 -j ACCEPT
# Flagi
#iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DROP # wyłącza dostęp do serwisów
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
################################ Sieć lokalna ################################################################################################
################################ Odblokowanie dostępu do serwerów DNS na portach 53 #######################################3
# Odblokowujemy dostęp do DNS dla komputerów w sieci (dla przykładu DNS TEPSY i Netii)
#dla karty eth0
iptables -A FORWARD -p icmp -s 192.168.1.0/24 -d 194.204.159.1 -j ACCEPT
iptables -A FORWARD -p icmp -s 194.204.159.1 -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -p icmp -s 192.168.1.0/24 -d 213.241.79.37 -j ACCEPT
iptables -A FORWARD -p icmp -s 213.241.79.37 -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -p icmp -s 192.168.1.0/24 -d 83.238.255.76 -j ACCEPT
iptables -A FORWARD -p icmp -s 83.238.255.76 -d 192.168.1.0/24 -j ACCEPT
#dla karty wlan0
iptables -A FORWARD -p icmp -s 10.0.0.0/24 -d 194.204.159.1 -j ACCEPT
iptables -A FORWARD -p icmp -s 194.204.159.1 -d 10.0.0.0/24 -j ACCEPT
iptables -A FORWARD -p icmp -s 10.0.0.0/24 -d 213.241.79.37 -j ACCEPT
iptables -A FORWARD -p icmp -s 213.241.79.37 -d 10.0.0.0/24 -j ACCEPT
iptables -A FORWARD -p icmp -s 10.0.0.0/24 -d 192.168.1.4 -j ACCEPT
iptables -A FORWARD -p icmp -s 192.168.1.4 -d 10.0.0.0/24 -j ACCEPT
iptables -A FORWARD -p icmp -s 10.0.0.0/24 -d 83.238.255.76 -j ACCEPT
iptables -A FORWARD -p icmp -s 83.238.255.76 -d 10.0.0.0/24 -j ACCEPT
###################################### SAMBA ##################################$
iptables -I INPUT -s 10.0.0.0/24 -p udp --destination-port 137 -j ACCEPT
iptables -I INPUT -s 10.0.0.0/24 -p udp --destination-port 138 -j ACCEPT
iptables -I INPUT -s 10.0.0.0/24 -p tcp --destination-port 139 -j ACCEPT
iptables -I INPUT -s 10.0.0.0/24 -p tcp --destination-port 445 -j ACCEPT
# Odblokowujemy przeglądanie WWW dla naszego serwera
iptables -A INPUT -p tcp -s 0/0 --sport 80 -d $mojeIP -j ACCEPT
iptables -A OUTPUT -p tcp -s $mojeIP -d 0/0 --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
##################################### Filtrowanie dostępu komputerów lokalnych po adresach MAC ###############################################
# laptop
iptables -A FORWARD -s 10.0.0.9 -m mac --mac 00:12:F0:88:88:88 -j ACCEPT
iptables -A FORWARD -d 10.0.0.9 -j ACCEPT
################################################### Zablokowane IP-ki ########################################
iptables -I OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
#iptables -A INPUT --protocol tcp --destination-port 700 -j ACCEPT
#iptables -A INPUT --protocol tcp --source-port 700 -j ACCEPT
#iptables -t nat -A PREROUTING -p tcp -s 10.0.0.8 -j REDIRECT --to-port 700
;;
stop)
echo "Czyszczenie tablic"
iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -F -t filter
iptables -X -t filter
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage $0 start|stop|restart"
exit 1
esac
exit 0