Strona 1 z 1

IPTables i dziwne zachowanie serwera

: 26 sierpnia 2009, 19:12
autor: giver

Kod: Zaznacz cały

#########################################       
#sudo chmod 700 firewall.sh        #
#sudo cp firewall.sh /etc/init.d/    #
#sudo update-rc.d firewall.sh default     #
#########################################
echo "Konfiguracja firewalla rozpoczeta"
# czyscimy wszystko
iptables -F 

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

################
# blokujemy #
################
#### wlaczenie loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT

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

# www i DNS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT     
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -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
iptables -A INPUT -p tcp --dport 49152:65534 -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

iptables -A INPUT -p icmp -j ACCEPT


echo "Konfiguracja firewalla zakonczona" 
Problem polega na tym, że serwer po jakimś czasie po odpaleniu regułek głupieje, czytaj nie można z nim nawiązać połączenie przez ssh.
Gdy serwer jeszcze pracuje poprawnie, a wydam mu polecenie:

Kod: Zaznacz cały

iptables -F
nagle przestaje odpowiadać i tylko restart pomaga.
Może to kwestia jakiegoś moduły? Niestety, ale problem dotyczy VPS na OpenVZ, więc o załadowanie ewentualnie jakiegoś dodatkowego modułu będę musiał prosić administratora.

: 26 sierpnia 2009, 19:34
autor: grochu
Co do zachowania po wydaniu komendy:

Kod: Zaznacz cały

iptables -F
to jest ono prawidłowe. Poleceniem tym (w uproszczeniu) czyścisz regułki, ale nie czyścisz polityk, czyli zostaje dla ,,INPUT'' i ,,FORWARD'' polityka ,,DROP''. Gdybyś chciał wyłączyć zupełnie zaporę to wydaj polecenie:

Kod: Zaznacz cały

iptables -P INPUT ACCEPT
oraz:

Kod: Zaznacz cały

iptables -P FORWARD ACCEPT
Jeżeli chodzi o to dziwne zachowanie to co pokazuje nmap, porty są otwarte?

: 26 sierpnia 2009, 19:38
autor: giver
Tak, są te otwarte, dla których jest polityka ,,ACCEPT'' - inaczej niż gdy iptables jest wyłączone (wtedy jest więcej otwartych portów), więc teoretycznie iptables spełnia swoje zadanie, a jednak coś się krzaczy po jakimś czasie.

Kod: Zaznacz cały

sudo iptables -L  
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            state ESTABLISHED 
ACCEPT     udp  --  anywhere             anywhere            state ESTABLISHED 
ACCEPT     icmp --  anywhere             anywhere            state ESTABLISHED 
ACCEPT     icmp --  anywhere             anywhere            state RELATED 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:domain 
ACCEPT     udp  --  anywhere             anywhere            udp dpt:domain 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh 
ACCEPT     udp  --  anywhere             anywhere            udp dpt:ssh 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www 
ACCEPT     udp  --  anywhere             anywhere            udp dpt:www 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp-data 
ACCEPT     udp  --  anywhere             anywhere            udp dpt:20 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp 
ACCEPT     udp  --  anywhere             anywhere            udp dpt:fsp 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpts:49152:65534 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:1050 
ACCEPT     udp  --  anywhere             anywhere            udp dpt:1050 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtp 
ACCEPT     udp  --  anywhere             anywhere            udp dpt:25 
Nmap przed dodaniem reguł:

Kod: Zaznacz cały

21/tcp   open     ftp
22/tcp   open     ssh
25/tcp   open     smtp
53/tcp   open     domain
80/tcp   open     http
6662/tcp filtered radmind
6665/tcp filtered irc
6666/tcp filtered irc
6667/tcp filtered irc
6668/tcp filtered irc
6669/tcp filtered irc
i po dodaniu reguł:

Kod: Zaznacz cały

20/tcp    closed ftp-data
21/tcp    open   ftp
22/tcp    open   ssh
25/tcp    open   smtp
53/tcp    open   domain
80/tcp    open   http
1050/tcp  closed java-or-OTGfileshare
49400/tcp closed compaqdiag
50000/tcp closed iiimsf
50002/tcp closed iiimsf
54320/tcp closed bo2k
61439/tcp closed netprowler-manager
61440/tcp closed netprowler-manager2
61441/tcp closed netprowler-sensor
65301/tcp closed pcanywhere


[Dodano: 2009-08-26, 20:30]
Przy okazji znalazłem jeszcze jeden problem z iptables. Nie mogę się połączyć przez EKG, na którym są dodane reguły. Myślałem, że pomyliłem porty, więc na chwilę otworzyłem wszystkie porty powyżej 1024 dla TCP i nic.
To samo gdy ustawię politykę na ,,ACCEPT'' dla ,,INPUT'' i usunę wszystkie reguły.

Kod: Zaznacz cały

Iptables -L
pokazuje, że nie ma dodanych żadnych reguł, tak samo jak po restarcie, a wtedy mimo to EKG się łączy poprawnie.