Приветствую.
Помогите, пожалуйста, разобраться с iptables.
Дано:
router - eth0 (wan), eth1 (lan)
lan - 192.168.1.0/24
wan IP 11.22.33.44
В роутере vsftpd
Требуется: Пускать в роутер на 22 только с 192.168.1.105 Пускать в роутер из инета на vsftpd. Локалку пускать в инет на TCP:21,53,80,443,465,993 UDP:53,123 и на локальные компы (без ограничений) По возможности все лишнее запретить нафиг.
Из разных источников надергал что-то вот такое:
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.1.0/24 -d ! 192.168.1.0/24 -j SNAT --to-source 11.22.33.44
COMMIT
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:eth0-in - [0:0]
:eth0-out - [0:0]
:tcprules - [0:0]
-A INPUT -i eth0 -j eth0-in
-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -d 192.168.1.254 -i eth1 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -d 11.22.33.44 -i eth1 -j ACCEPT
-A INPUT -d 11.22.33.44 -i eth0 -p tcp -m tcp -m multiport --dports 21,53,80,443,465,993 -j ACCEPT
-A INPUT -d 11.22.33.44 -i eth0 -p udp -m udp -m multiport --dports 53,123 -j ACCEPT
-A INPUT -s 192.168.1.105 -p tcp --dport 22 -j ACCEPT
-A INPUT -j tcprules
-A FORWARD -j tcprules
-A OUTPUT -o eth0 -j eth0-out
-A eth0-in -j RETURN
-A eth0-out -j RETURN
-A FORWARD -d 0.0.0.0/8 -j DROP
-A FORWARD -d 127.0.0.0/8 -j DROP
-A FORWARD -d 255.255.255.255 -j DROP
-A FORWARD -d 224.0.0.0/4 -j DROP
-A FORWARD -d 240.0.0.0/5 -j DROP
-A FORWARD -d 239.255.255.0/24 -j DROP
-A FORWARD -p tcp --tcp-flags ALL ALL -j DROP
-A FORWARD -p tcp --tcp-flags ALL NONE -j DROP
-A FORWARD -p icmp -m icmp --icmp-type address-mask-request -j DROP
-A FORWARD -p icmp -m icmp --icmp-type timestamp-request -j DROP
-A FORWARD -p icmp --fragment -j DROP
-A tcprules -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A tcprules -i ! eth0 -m state --state NEW -j ACCEPT
-A tcprules -i eth0 -m state --state INVALID,NEW -j DROP
-A tcprules -i eth0 -j REJECT --reject-with icmp-host-unreachable
COMMIT
Часть того что нужно, пока не делал. А то что сделал, работает не так как нужно. Например, не работает ограничение с 22 портом и 192.168.1.105 Что точно работает, так это выход из локалки в инет. Честно говоря, я уже плохо понимаю что в итоге вышло. Потому как то что я делал сам с нуля (так как мне казалось понятным) не работало. Можете подсказать по тому что получилось? Или может кто покажет удачный вариант того, что мне нужно. Задача вроде бы примитивная. Сначала хочу сделать рабочий минимум, а потом уже допилить. Почему везде дефолтная политика ACCEPT? По идее же надо все перекрыть, а потом то что нужно открыть...
Первый раз ковыряю iptables, так что... :)