Здравствуйте, решил изучить iptables ну и попробовать собрать файрвол :) Ну как говорится первый раз всегда комом... Вообщем вроде бы всё работает за исключением utorrenta (качать - качает, а вот раздавать не хочет). Я конечно же прописывал PREROUTING для него, но не помогает - где-то, что-то мешает. Собственно прошу помочь найти в чём проблема и вообще направить на путь истинный в плане файрвола ну т.е. что лишнее, а что лучше добавить(чё там я нагородил уже сам даже начинаю путаться).
#iptables -vnL
Chain INPUT (policy DROP 4 packets, 304 bytes)
pkts bytes target prot opt in out source destination
0 0 drop-and-log-it all -- ppp0 * 127.0.0.0/8 0.0.0.0/0
0 0 drop-and-log-it all -- ppp0 * 192.168.0.0/16 0.0.0.0/0
0 0 drop-and-log-it all -- ppp0 * 172.16.0.0/12 0.0.0.0/0
0 0 drop-and-log-it all -- ppp0 * 10.0.0.0/8 0.0.0.0/0
41 4103 drop-and-log-it tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x17/0x02 state NEW
16 896 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 flags:0x17/0x02
467 34562 ACCEPT tcp -- * * 192.168.10.0/24 192.168.10.0/24 multiport dports 22,139,445
3520 156K drop-and-log-it tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02
0 0 drop-and-log-it all -f * * 0.0.0.0/0 0.0.0.0/0
0 0 drop-and-log-it tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x3F
8 480 drop-and-log-it tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x00
3574 261K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
65 9221 ACCEPT all -- eth1 * 192.168.10.0/24 0.0.0.0/0
0 0 drop-and-log-it all -- ppp0 * 192.168.10.0/24 0.0.0.0/0
1811 76730 ACCEPT all -- ppp0 * 0.0.0.0/0 212.3.132.78 state RELATED,ESTABLISHED
1126 111K drop-and-log-it all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
13843 2749K ACCEPT all -- ppp0 eth1 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
18716 2176K ACCEPT all -- eth1 ppp0 0.0.0.0/0 0.0.0.0/0
2267 112K drop-and-log-it all -- * * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
7121 418K ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
74 6176 ACCEPT all -- * eth1 212.3.132.78 192.168.10.0/24
478 73768 ACCEPT all -- * eth1 192.168.10.0/24 192.168.10.0/24
0 0 drop-and-log-it all -- * ppp0 0.0.0.0/0 192.168.10.0/24
5230 400K ACCEPT all -- * ppp0 212.3.132.78 0.0.0.0/0
1 123 drop-and-log-it all -- * * 0.0.0.0/0 0.0.0.0/0
Chain drop-and-log-it (14 references)
pkts bytes target prot opt in out source destination
6963 383K LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 6
6963 383K REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
и собственно сам файрвол:
#!/bin/sh
echo -e "\n\nSETTING UP IPTABLES FIREWALL..."
INTIF="eth1"
INTNET="192.168.10.0/24"
INTIP="192.168.10.1/24"
EXTIF="ppp0"
EXTIP="212.3.132.78"
UNIVERSE="0.0.0.0/0"
echo "Loading required stateful/NAT kernel modules..."
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
echo " Enabling IP forwarding..."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo " External interface: $EXTIF"
echo " External interface IP address is: $EXTIP"
echo " Loading firewall server rules..."
iptables -P INPUT DROP
iptables -F INPUT
iptables -P OUTPUT DROP
iptables -F OUTPUT
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -F -t nat
if [ "`iptables -L | grep drop-and-log-it`" ]; then
iptables -F drop-and-log-it
fi
iptables -X
iptables -Z
iptables -N drop-and-log-it
iptables -A drop-and-log-it -j LOG --log-level info
iptables -A drop-and-log-it -j REJECT
echo -e " - Loading INPUT rulesets"
iptables -A INPUT -p TCP ! --syn -m state --state NEW -j drop-and-log-it
iptables -A INPUT -p tcp --syn --destination-port 80 -j ACCEPT
iptables -A INPUT -s $INTNET -p tcp -d $INTIP -m multiport --dport 22,139,445 -j ACCEPT
iptables -A INPUT -p TCP --syn -j drop-and-log-it
iptables -A INPUT -f -j drop-and-log-it
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j drop-and-log-it
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j drop-and-log-it
iptables -I INPUT -i ppp0 -s 10.0.0.0/8 -j drop-and-log-it
iptables -I INPUT -i ppp0 -s 172.16.0.0/12 -j drop-and-log-it
iptables -I INPUT -i ppp0 -s 192.168.0.0/16 -j drop-and-log-it
iptables -I INPUT -i ppp0 -s 127.0.0.0/8 -j drop-and-log-it
iptables -A INPUT -i lo -s $UNIVERSE -d $UNIVERSE -j ACCEPT
iptables -A INPUT -i $INTIF -s $INTNET -d $UNIVERSE -j ACCEPT
iptables -A INPUT -i $EXTIF -s $INTNET -d $UNIVERSE -j drop-and-log-it
iptables -A INPUT -i $EXTIF -s $UNIVERSE -d $EXTIP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s $UNIVERSE -d $UNIVERSE -j drop-and-log-it
echo -e " - Loading OUTPUT rulesets"
iptables -A OUTPUT -o lo -s $UNIVERSE -d $UNIVERSE -j ACCEPT
iptables -A OUTPUT -o $INTIF -s $EXTIP -d $INTNET -j ACCEPT
iptables -A OUTPUT -o $INTIF -s $INTIP -d $INTNET -j ACCEPT
iptables -A OUTPUT -o $EXTIF -s $UNIVERSE -d $INTNET -j drop-and-log-it
iptables -A OUTPUT -o $EXTIF -s $EXTIP -d $UNIVERSE -j ACCEPT
iptables -A OUTPUT -s $UNIVERSE -d $UNIVERSE -j drop-and-log-it
echo -e " - Loading FORWARD rulesets"
iptables -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
iptables -A FORWARD -j drop-and-log-it
iptables -t nat -A POSTROUTING -o $EXTIF -j SNAT --to $EXTIP
iptables -t nat -A PREROUTING -p TCP --dport 28646 -i $EXTIF -j DNAT --to 192.168.10.2
echo -e " Firewall server rule loading complete\n\n"