[PLUTO-security] Non riesco a capire...
Piviul
pluto a flanet.org
Gio 13 Gen 2005 11:16:05 CET
Credevo di incominciare a capirci qualcosa in iptables ma vedo che sono
ritornato al palo; vi scrivo nella speranza di trovare un'anima pia che
mi illumini...
Dunque, ho un firewall con due schede di rete che collega due reti private:
- eth0 addr. 192.168.0.2
- eth1 addr. 172.16.0.3
Ora vorrei che un client della rete 172.16.0.x (in particolare il
172.16.0.2) possa accedere al server 192.168.0.100 sulla porta 143
(Connessione IMAP ad un server exchange) dell'altra rete.
Ho inserito nello script del firewall fra le varie regole
> iptables -A FORWARD -i eth1 -p TCP --src 172.16.0.2 --dport 143 -j ACCEPT
> iptables -A FORWARD -i eth1 -p tcp ! --syn -m state --state NEW -j LOG --log-level alert --log-prefix "New not syn: "
Ora ogni volta che il 172.16.0.2 tenta di accedere al 192.168.0.100
trovo nei log innumerevoli righe come questa:
> Jan 13 10:25:47 firewall kernel: New not syn: IN=eth1 OUT=eth0 SRC=172.16.0.2 DST=192.168.0.100 LEN=40 TOS=0x10 PREC=0x00 TTL=63 ID=25132 DF PROTO=TCP SPT=1028 DPT=143 WINDOW=5840 RES=0x00 ACK FIN URGP=0
Non ci capisco nulla: perché iptables blocca il pacchetto con /IN=eth1/
/SRC=172.16.0.2/ /DPT=143/ quando io gli dico esplicitamente di
accettare quei pacchetti?
Poi c'è un altra particolarità: il server imap al 192.168.0.100 è un
server exchange 5.5; se il 172.16.0.2 tenta di accedere invece ad un
server courier-imap all'indirizzo 192.168.0.3 il firewall non blocca i
pacchetti e la connessione va a buon fine... bah! Sono totalmente
sconcertato. Per chi fosse interessato vi allego lo script di
configurazione del firewall.
Grazie ancora
Piviul
-------------- parte successiva --------------
LAN_IFACE=eth0
INET_IFACE=eth1
IP_WEBMAIL=172.16.0.2
iptables -N bad_tcp_packets
iptables -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
iptables -A bad_tcp_packets -i $INET_IFACE -p tcp ! --syn -m state --state NEW -j LOG --log-level alert --log-prefix "New not syn: "
iptables -A bad_tcp_packets -i $LAN_IFACE -p tcp ! --syn -m state --state NEW -j LOG --log-level info --log-prefix "New not syn: "
iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
# default policies
iptables -F INPUT
iptables -P INPUT DROP
iptables -F OUTPUT
iptables -P OUTPUT DROP
iptables -t nat -F PREROUTING
iptables -t nat -P PREROUTING ACCEPT
iptables -F FORWARD
iptables -P FORWARD DROP
iptables -A FORWARD -p TCP -j bad_tcp_packets
iptables -A FORWARD -i $LAN_IFACE -j ACCEPT
iptables -A FORWARD -i $INET_IFACE -p TCP --src $IP_WEBMAIL --dport 143 -j ACCEPT
iptables -A FORWARD -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m limit --limit 3/minute --limit-burst 7 -j LOG --log-level info --log-prefix "IPT FORWARD packet died: "
iptables -A FORWARD -j DROP
iptables -t nat -F POSTROUTING
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
Maggiori informazioni sulla lista
pluto-security