Доброго времени суток!
Когда то писал сюда - учился писать фаеры, с тех пор что то узнал, что то стырил и оно работало...
Но на днях выяснилось что у юзеров фтп работает через одно место - если законектится то работает с диалапной скоростью, а чаще не работает никак, рвет соединения. Уверен что я чего то недопонимаю в фаере. Фаервол писал по логике - пропускаем все к юзерам, отпускаем все от юзеров, режем только скорость и разрешаем интернет только определенным айпишникам.
Собсно фаер (только кажется большим, львиную долю строк занимает ввод переменных и конфиг пайп):
###############_PEREMENNIE_################
cmd="/sbin/ipfw"
LanOut="ng0"
IPOut='ifconfig $LanOut | grep "inet" | awk '{print $2}''
LanIn="rl0"
##############_SBROS_######################
route delete default
route add default 10.0.0.1
${cmd} -f flush
${cmd} -f pipe flush
${cmd} -f queue flush
${cmd} -f table 1 flush
${cmd} -f table 2 flush
${cmd} -f table 3 flush
${cmd} -f table 4 flush
#########_USERs_TABLE######################
${cmd} table 1 add 192.168.84.105/32 #FREEBSD_TEST
${cmd} table 1 add 192.168.84.99/32 #ME
${cmd} table 1 add 192.168.84.69/32 #user 3
${cmd} table 1 add 192.168.84.70/32 #user 4
...
...
##########_USER_TARIFS_TABLES_#############
#####################1500##################
${cmd} table 2 add 192.168.84.26/32 #user 3
${cmd} table 2 add 192.168.84.112/32 #user 4
${cmd} table 2 add 192.168.84.28/32 #more users
${cmd} table 2 add 192.168.84.75/32 #more users
#####################2000##################
${cmd} table 3 add 192.168.84.78/32 #more users
${cmd} table 3 add 192.168.84.72/32 #more users
${cmd} table 3 add 192.168.84.80/32 #more users
${cmd} table 3 add 192.168.84.79/32 #more users
#${cmd} table 3 add 192.168.84./32 #more users
#${cmd} table 3 add 192.168.84./32 #more users
#####################5000##################
${cmd} table 4 add 192.168.84.21/32 #more users
${cmd} table 4 add 192.168.84.22/32 #more users
...
...
######_VNUTRI_MOJNO_VSEM_IZ_TABL_USERS#####
${cmd} add 1000 allow ip from table\(1\) to any in recv ${LanIn}
${cmd} add 1010 allow ip from any to table\(1\) out xmit ${LanIn}
###_OSTALNIE_IP_ZAVERNUT_NA_VLETE##########
${cmd} add 1020 deny ip from any to any via ${LanIn}
#############_BOIMS9I_#####################
${cmd} add 1100 deny ip from any to 127.0.0.0/8
${cmd} add 1110 deny ip from 127.0.0.0/8 to any
${cmd} add 1140 deny ip from any to 172.16.0.0/12 in recv ${LanOut}
${cmd} add 1150 deny ip from 172.16.0.0/12 to any in recv ${LanOut}
${cmd} add 1160 deny ip from any to 10.0.0.0/8 in recv ${LanOut}
${cmd} add 1170 deny ip from 10.0.0.0/8 to any in recv ${LanOut}
${cmd} add 1180 deny ip from any to 169.254.0.0/16 in recv ${LanOut}
${cmd} add 1190 deny ip from 169.254.0.0/16 to any in recv ${LanOut}
##############_LOOPBACK_###################
${cmd} add 1099 allow ip from any to any via lo0
##############_CONFIG_PIPES_###############
###############_1500__###################
${cmd} pipe 1 config bw 1800Kbit/s mask src-ip 0xffffffff
${cmd} pipe 11 config bw 1800Kbit/s mask dst-ip 0xffffffff
###############_2Mbit/s_###################
${cmd} pipe 2 config bw 2500Kbit/s mask src-ip 0xffffffff
${cmd} pipe 22 config bw 2500Kbit/s mask dst-ip 0xffffffff
###############_5Mbit/s_#################
${cmd} pipe 3 config bw 5500Kbit/s mask src-ip 0xffffffff
${cmd} pipe 33 config bw 5500Kbit/s mask dst-ip 0xffffffff
...
...
###############_KERN_NAT_CONFIG_###########
${cmd} nat 1 config log if ${LanOut} reset same_ports deny_in /
redirect_port tcp 192.168.84.99:20-21 20-21 /
redirect_port tcp 192.168.84.99:56666-56676 56666-56676 /
redirect_port tcp 192.168.84.99:55555 55555 /
redirect_port tcp 192.168.84.99:50000 50000 /
redirect_port tcp 192.168.84.99:8085 8085 /
redirect_port tcp 192.168.84.12:3389 3389 /
redirect_port udp 192.168.84.12:3389 3389 /
redirect_port tcp 192.168.84.12:15237 15237 /
redirect_port tcp 192.168.84.12:80 8888 /
redirect_port udp 192.168.84.12:80 8888 /
redirect_port tcp 192.168.84.71:5445 5445 /
redirect_port tcp 192.168.84.26:11111 11111 /
redirect_port tcp 192.168.84.78:5446 5446 /
redirect_port tcp 192.168.84.78:5447 5447 /
redirect_port tcp 192.168.84.78:5448 5448 /
redirect_port tcp 192.168.84.74:5589 5589
###_DOSTUP_PO_PORTAM_K_SERVERU_IZVNE_######
${cmd} add 2000 allow ip from any to ${IPOut} 22 in recv ${LanOut}
###_DOSTUP_PO_PORTAM_K_UZERAM_NAT_IZVNE_###
${cmd} add 2500 skipto 3999 ip from any to ${IPOut} 20,21,5589,56666-56676,55555,50000,8085,3389,15237,8888,5445,11111,5446,5447 in recv ${LanOut}
############_PIPES_OUT_####################
${cmd} add 3000 pipe 1 ip from table\(2\) to any out xmit ${LanOut}
${cmd} add 3010 pipe 2 ip from table\(3\) to any out xmit ${LanOut}
${cmd} add 3020 pipe 3 ip from table\(4\) to any out xmit ${LanOut}
${cmd} add 3030 pipe 4 ip from table\(5\) to any out xmit ${LanOut}
${cmd} add 3040 pipe 5 ip from table\(6\) to any out xmit ${LanOut}
${cmd} add 3050 pipe 6 ip from table\(7\) to any out xmit ${LanOut}
${cmd} add 3060 pipe 7 ip from table\(8\) to any out xmit ${LanOut}
###############_NAT_#######################
${cmd} add 4000 nat 1 ip from any to any via ${LanOut}
###########_PIPES_IN_######################
${cmd} add 5000 pipe 11 ip from any to table\(2\) in recv ${LanOut}
${cmd} add 5010 pipe 22 ip from any to table\(3\) in recv ${LanOut}
${cmd} add 5020 pipe 33 ip from any to table\(4\) in recv ${LanOut}
${cmd} add 5030 pipe 44 ip from any to table\(5\) in recv ${LanOut}
${cmd} add 5040 pipe 55 ip from any to table\(6\) in recv ${LanOut}
${cmd} add 5050 pipe 66 ip from any to table\(7\) in recv ${LanOut}
${cmd} add 5060 pipe 77 ip from any to table\(8\) in recv ${LanOut}
###########_EXIT_IZ_FAERA##################
${cmd} add 6000 allow ip from any to any
one_pass=0
Собственно квешн из - почему фтп может так плохо работать?