URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 90805
[ Назад ]

Исходное сообщение
"ipfw не пускает из лок. сети на порты за сервером"

Отправлено ARH665 , 24-Янв-11 22:52 
Добрый день! Все, замучился совсем, решил все-таки написать. Уже покурил маны ipfw, маны sysctl, короче не знаю в какую сторону уже курить, но чувствую косяк в чем-то незначительном...
В общем ситуация такова, есть Firewall, работает, трафик бежит, все прекрасно, но из локальной сети под сервером нельзя пройти по внешнему адресу с портом, а с самого сервера сделать это можно. Где-то какое-то правило скорее всего неправильно настроено или не работает или его вовсе нет, помогите пожалуйста, в чем дело?

вот фаервол:
#!/bin/sh
FwCMD="/sbin/ipfw"
WAN_interface="vr0"
LAN_interface="vr1"

WAN_ip="110.64.143.68"
WAN_net="110.64.143.0/24"
LAN_ip="172.16.0.1"
LAN_net="172.16.0.0/24"
NetMask="255.255.255.0"

#### commands end ####


${FwCMD} -f flush
${FwCMD} -f pipe flush
${FwCMD} -f queue flush

# check dynamic rules
${FwCMD} 00100 add check-state

# allow deny lo0
${FwCMD} 00200 add allow ip from any to any via lo0
${FwCMD} 00300 add deny ip from any to 127.0.0.0/8
${FwCMD} 00400 add deny ip from 127.0.0.0/8 to any

# deny private networks from wan to lan
${FwCMD} 00500 add deny ip from any to 10.0.0.0/8 in via ${WAN_interface}
${FwCMD} 00600 add deny ip from any to 172.16.0.0/12 in via ${WAN_interface}
#${FwCMD} 00700 add deny ip from any to 192.168.0.0/16 in via ${WAN_interface}
${FwCMD} 00800 add deny ip from any to 0.0.0.0/8 in via ${WAN_interface}
${FwCMD} 00900 add deny ip from any to 169.254.0.0/16 in via ${WAN_interface}

# deny icmp rules
${FwCMD} 01000 add deny icmp from any to any frag
${FwCMD} 01100 add deny log icmp from any to 255.255.255.255 in via ${WAN_interface}
${FwCMD} 01200 add deny log icmp from any to 255.255.255.255 out via ${WAN_interface}

${FwCMD} 01300 add divert natd ip4 from any to any via ${WAN_interface}
${FwCMD} 01400 add divert natd ip4 from any to ${WAN_ip} via ${WAN_interface}

${FwCMD} 01500 add deny ip from 10.0.0.0/8 to any out via ${WAN_interface}
${FwCMD} 01600 add deny ip from 172.16.0.0/12 to any out via ${WAN_interface}
#${FwCMD} 01700 add deny ip from 192.168.0.0/16 to any out via ${WAN_interface}
${FwCMD} 01800 add deny ip from 0.0.0.0/8 to any out via ${WAN_interface}
${FwCMD} 01900 add deny ip from 169.254.0.0/16 to any out via ${WAN_interface}
${FwCMD} 02000 add deny ip from 224.0.0.0/4 to any out via ${WAN_interface}
${FwCMD} 02100 add deny ip from 240.0.0.0/4 to any out via ${WAN_interface}

${FwCMD} 02200 add allow tcp from any to any established

${FwCMD} 02300 add allow ip from ${WAN_ip} to any out xmit ${WAN_interface}

# allow dns from wan
${FwCMD} 02400 add allow udp from any 53 to any via ${WAN_interface}

# allow ftp
${FwCMD} 02500 add allow tcp from any to ${WAN_ip} 21 via ${WAN_interface}

# dude
#${FwCMD} 02510 add allow tcp from any 2211 to any via ${LAN_interface}
#${FwCMD} 02520 add allow tcp from any to any via ${LAN_interface}
#${FwCMD}  02530 add allow tcp from any 1000-65535 to ${LAN_net} in via ${WAN_interface}
${FwCMD} 03330 add allow tcp from ${LAN_net} to any 1010 in via ${WAN_interface} setup


# icmp
${FwCMD} 02600 add allow icmp from any to any icmptypes 0,8,11

# Allow icmp to gre or tun
#${FwCMD} 02700 add deny icmp from any to any via ${WAN_interface}

# http port open
${FwCMD} 02800 add allow tcp from any to ${WAN_ip} 80 via ${WAN_interface}

# ssh port open
${FwCMD} 02900 add allow tcp from any to ${WAN_ip} 22 via ${WAN_interface}

# specified rules
# 1. allow all traffic in lan
${FwCMD} 03000 add allow tcp from any to any via ${LAN_interface}

# 2. allow all udp traffic on lan
${FwCMD} 03100 add allow udp from any to any via ${LAN_interface}

# 3. allow all icmp traffic on lan
${FwCMD} 03200 add allow icmp from any to any via ${LAN_interface}

# 4. allow all igmp traffic from wan to lan
${FwCMD} 03300 add allow igmp from any to any via ${WAN_interface}

${FwCMD} 03310 add allow tcp from any to ${LAN_interface} any
${FwCMD} 03320 add allow tcp from ${WAN_interface} any to any


${FwCMD} 65000 add allow ip from any to any


вот ipfw show:
test# ipfw show
00100     0        0 check-state
00200    78     5614 allow ip from any to any via lo0
00300     0        0 deny ip from any to 127.0.0.0/8
00400     0        0 deny ip from 127.0.0.0/8 to any
00500     0        0 deny ip from any to 10.0.0.0/8 in via vr0
00600     0        0 deny ip from any to 172.16.0.0/12 in via vr0
00800     0        0 deny ip from any to 0.0.0.0/8 in via vr0
00900     0        0 deny ip from any to 169.254.0.0/16 in via vr0
01000     0        0 deny icmp from any to any frag
01100     0        0 deny log logamount 100 icmp from any to 255.255.255.255 in via vr0
01200     0        0 deny log logamount 100 icmp from any to 255.255.255.255 out via vr0
01300 15370  7424023 divert 8668 ip4 from any to any via vr0
01400   350    15392 divert 8668 ip4 from any to 109.63.142.67 via vr0
01500     0        0 deny ip from 10.0.0.0/8 to any out via vr0
01600     0        0 deny ip from 172.16.0.0/12 to any out via vr0
01800     0        0 deny ip from 0.0.0.0/8 to any out via vr0
01900     0        0 deny ip from 169.254.0.0/16 to any out via vr0
02000     0        0 deny ip from 224.0.0.0/4 to any out via vr0
02100     0        0 deny ip from 240.0.0.0/4 to any out via vr0
02200 21541 14129686 allow tcp from any to any established
02300     0        0 allow ip from 109.63.142.67 to any out xmit vr0
02400   432    89556 allow udp from any 53 to any via vr0
02500     0        0 allow tcp from any to 109.63.142.67 dst-port 21 via vr0
02530     0        0 allow tcp from any 1000-65535 to 172.16.0.0/24 in via vr0
02600  6744   404640 allow icmp from any to any icmptypes 0,8,11
02800     0        0 allow tcp from any to 109.63.142.67 dst-port 80 via vr0
02900     0        0 allow tcp from any to 109.63.142.67 dst-port 22 via vr0
03000   488    23424 allow tcp from any to any via vr1
03100  1297   164672 allow udp from any to any via vr1
03200    37     4661 allow icmp from any to any via vr1
03300     0        0 allow igmp from any to any via vr0
03330     0        0 allow tcp from 172.16.0.0/24 to any dst-port 1010 in via vr0 setup
65000  1603   131255 allow ip from any to any
65535    17     1345 allow ip from any to any
test#

test# sysctl net.inet.ip.fw.one_pass
net.inet.ip.fw.one_pass: 0


как вы видите в правилах 02510-02530 и 03330 я уже по-всякому пытался пропустить пакеты по этим портам, но молчание. закоментировал правила с пометкой # specified rules, думал может в них косяк, не помогло. Пытался изменять место в конфиге правил 02510-02530, т.е. отправлял их в самый низ, перед ${FwCMD} 65000 add allow ip from any to any, и ничего :( через ipfw show пытался понять где режется, но как-то смутно там, не разобрался точно. единственное сначала, что понял, что у меня резалось по правилу 00700 (адрес внешней сети 192.168.1.1). после любых изменений конфига делал nohup sh /etc/firewall.conf и /etc/netstart. настраивал по инструкциям отсюда:
http://www.lissyara.su/articles/freebsd/tuning/ipfw/
http://www.lissyara.su/articles/freebsd/tuning/dummynet/
http://www.lissyara.su/articles/freebsd/tuning/make_kernel/

опции ядра:
options         IPFIREWALL
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_VERBOSE
options         IPDIVERT
options         IPFIREWALL_FORWARD
options         DUMMYNET
options         HZ=1000
options         NMBCLUSTERS

опции rc.conf:
# Router setup
natd_enable="YES"
natd_interface="vr0"
natd_flags="-m -u"
firewall_enable="YES"
#firewall_type="open"
firewall_script="/etc/firewall.conf"
router_enable="YES"
router="/sbin/routed"
router_flags="-q"
named_enable="YES"
dummynet_enable="YES"


сервер тестовый, я сам пытаюсь разобраться с фаерволом, до этого наспех собрал сервер, который работает вполне нормально с шейпером DUMMYNET. для теста пытался тупо копировать конфиг с того сервера на этот - результат вообще не работает, либо работает, но порты тоже режутся. За корявость конфига прошу не бить сильно, ведь надо с чего-то начинать, а лучше помогите советом, как правильно. спасибо всем заранее!


Содержание

Сообщения в этом обсуждении
"ipfw не пускает из лок. сети на порты за сервером"
Отправлено GD , 25-Янв-11 00:23 
[skip]

> опции rc.conf:
> # Router setup

[skip]
> router_enable="YES"
> router="/sbin/routed"
> router_flags="-q"

[skip]

уберите все упоминания router* из rc.conf
добавте gateway_enable="YES"