падение IPFW

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Kazak
мл. сержант
Сообщения: 99
Зарегистрирован: 2009-07-28 9:46:46

падение IPFW

Непрочитанное сообщение Kazak » 2010-11-10 16:52:04

Доброго времени суток уважаемые форумчане, ipfw2 работал нормально, изменений не вносилось около месяца, перезагрузки были, но во буквально вчера фаервол "сошел с ума", то не пускал никого из клиентов в инет, то даже сам переставал видеть шлюз.

Код: Выделить всё

"Send packet failed  to [gateway] ERRNO=Permission denied"
Трасса до шлюза не шла  [quote] Destination unreacheable...[/quote], сначала с клиентов потом и с самого себя

Код: Выделить всё

FwCMD="/sbin/ipfw"
IfExt="vr0"
IfInt="rl0"
IpExt="[ExtIP]"
IpInt="[IntIP]"

Netmask="24"
Netmask1="30"

NetInt="10.10.10.0/24"

${FwCMD} -f flush
${FwCMD} add  check-state
#${FwCMD} -f pipe flush
#${FwCMD} -f queue flush

    ## Snort tables ##
#ipfw table 1 flush
#ipfw table 1  add 219.233.229.77
#ipfw table 1  add 60.28.27.14
#ipfw table 1  add 112.171.149.223

#ipfw table 2 flush
#ipfw table 2  add 123.124.236.162
#ipfw table 2  add 112.171.149.223


               ## Servers table ##
#ipfw table 3 flush
#ipfw table 3  add 10.10.10.1
#ipfw table 3  add 10.10.10.2
#ipfw table 3  add 10.10.10.65
#ipfw table 3  add 10.10.10.101
#ipfw table 3  add 10.10.10.77
#ipfw table 3  add 10.10.10.78
#ipfw table 3  add 10.10.10.113
#ipfw table 3  add 10.10.10.100
#ipfw table 3  add 10.10.10.119
#ipfw table 3  add 10.10.10.80  # Max notebook
#ipfw table 3  add 10.10.10.99
#ipfw table 3  add 10.10.10.135
               
                ## Ports Ext->In ##

#${FwCMD} add 00200 allow all from [SpecialIP] to me 22 via vr0
#${FwCMD} add 00300 allow all from any to me 22 via rl0
#${FwCMD} add 00310 allow all from any to me 30000-50000 via vr0
#${FwCMD} add 00400 allow all from any to me 21 via vr0
#${FwCMD} add 00500 allow all from any to me 21 via rl0
#${FwCMD} add 00510 allow all from me to any 25 via  vr0 keep-state
#${FwCMD} add 00520 deny  all from 10.10.10.0/24 to any 25 via vr0    #
#${FwCMD} add 00610 allow all from any to me 53 via vr0
#${FwCMD} add 00620 allow all from any  to me 80 via vr0
#${FwCMD} add 00700 allow all from any  to me 3128 via rl0
#${FwCMD} add 00710 deny  all from any  to me 3128 via vr0
#${FwCMD} add 00720 allow all from any  to me 139 via rl0
#${FwCMD} add 00730 deny  all from any  to me 139 via vr0
#${FwCMD} add 00731 deny  all from any  to me 445 via vr0
#${FwCMD} add 00800 allow all from 10.10.10.0/24 to me  via rl0     # from local network to me
#${FwCMD} add 00900 allow all from any to me 25 via vr0              # smtp outside -> me
#${FwCMD} add 01000 allow all from 10.10.10.0/24 to me 25  via rl0  # smtp from local -> me
#${FwCMD} add 01100 allow all from 10.10.10.0/24 to me 110  via rl0 # pop 3 from local -> me
#${FwCMD} add 01110 allow all from 127.0.0.0/8   to me via lo0       # Software to software connections
#${FwCMD} add 01120 allow all from 127.0.0.0/8   to me 389 via lo0
#${FwCMD} add 01200 allow all from me 389   to  any 389 via lo0
#${FwCMD} add 01210 allow all from me to any  via lo0
#${FwCMD} add 01220 allow all from me to 127.0.0.0/8 via lo0
#${FwCMD} add 01230 allow all from 127.0.0.0/8 to me via lo0
#${FwCMD} add 01231 allow all from any to me [Some Port 1] via vr0  # for 10.10.10.1
#${FwCMD} add 01232 allow all from any to me [Some Port 2] via vr0  # for 10.10.10.2
#${FwCMD} add 01233 allow all from any to me [Some Port 3] via vr0  # for 10.10.10.65
#${FwCMD} add 01234 allow all from any to me [Some Port 4] via vr0  # for 10.10.10.119

                       ## NAT Enabling ###
#${FwCMD} -f flush


[quote]${FwCMD} nat 1 config log if vr0 deny_in reset same_ports
${FwCMD}  add nat 1 ip from any to any via vr0
${FwCMD}  add 200   allow all from any to any[/quote]
#${FwCMD} add 01300 allow all from ${NetInt} to me in recv rl0
#${FwCMD} add 01301 allow all from me to ${NetInt} out xmit rl0
#${FwCMD} add 01302 allow all from "table(3)" to any in recv rl0
#${FwCMD} add 01303 allow all from any to "table(3)" out xmit rl0
#${FwCMD} add 01304 deny all from any to any via rl0
#${FwCMD} add 01305 nat 1 all from any to any via vr0
#${FwCMD} add 01306 allow all from any to any
#ipfw     add 01400 allow icmp from "table(3)" to any via  rl0  ## Ping allow
#ipfw     add 01410 allow icmp from "table(3)" to any via  vr0   ##
#ipfw     add 01510 allow icmp from any to any via vr0          ##
# ipfw     add 01600 allow all from me to any via rl0           ##


                                      ## Port Forwarding ##
#ipfw nat 2 config  log if vr0  reset same_ports redirect_port tcp  10.10.10.1:[Some Servvice1] [Some Port1]  #    
#ipfw  add 02200 nat 2 all from 10.10.10.1  to any via vr0
#ipfw nat 3 config  log if vr0  reset same_ports redirect_port tcp  10.10.10.65:[Some Service2] [Some Port2] #    
#ipfw  add 02300 nat 3 all from 10.10.10.2 to any via vr0
#ipfw nat 4 config  log if vr0  reset same_ports redirect_port tcp  10.10.10.2:[Some Service3] [Some Port3]  #  
#ipfw  add 02400 nat 4 all from 10.10.10.65 to any via vr0

## Snort rules ##

#${FwCMD} add 1800 deny ip from any to "table(1)" via vr0
#${FwCMD} add 1900 deny ip from "table(2)" to any  via vr0

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: падение IPFW

Непрочитанное сообщение hizel » 2010-11-10 17:06:43

Код: Выделить всё

ipfw show
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: падение IPFW

Непрочитанное сообщение mediamag » 2010-11-10 17:19:45

если навскидку, попробуйте убрать параметр deny_in в первом нате

Kazak
мл. сержант
Сообщения: 99
Зарегистрирован: 2009-07-28 9:46:46

Re: падение IPFW

Непрочитанное сообщение Kazak » 2010-11-10 17:33:36

hizel писал(а):

Код: Выделить всё

ipfw show
00100 0 0 check-state
00200 16600 8277476 nat 1 ip from any to any via vr0
00200 21157 15647567 allow ip from any to any
65535 9376 551639 deny ip from any to any

Работает только в если разрешить все всем, добавление любого правила, до или после ната...падение инета.

Kazak
мл. сержант
Сообщения: 99
Зарегистрирован: 2009-07-28 9:46:46

Re: падение IPFW

Непрочитанное сообщение Kazak » 2010-11-11 9:52:59

Kazak писал(а):
hizel писал(а):

Код: Выделить всё

ipfw show
00100 0 0 check-state
00200 16600 8277476 nat 1 ip from any to any via vr0
00200 21157 15647567 allow ip from any to any
65535 9376 551639 deny ip from any to any

Работает только в если разрешить все всем, добавление любого правила, до или после ната...падение инета.

А это ipfw show для конфига представленного выше в первом посте:

Код: Выделить всё

00100     0        0 check-state
00200     0        0 allow ip from any to me dst-port 22 via vr0
00300    15      720 allow ip from any to me dst-port 22 via rl0
00400     0        0 allow ip from any to me dst-port 21 via vr0
00500     0        0 allow ip from any to me dst-port 21 via rl0
00510   218    13288 allow icmp from table(3) to any via rl0
00510     0        0 allow ip from me to any dst-port 25 via vr0 keep-state
00520     0        0 allow icmp from table(3) to any via vr0
00520     0        0 deny ip from 10.10.10.0/24 to any dst-port 25 via vr0
00530    15     1260 allow icmp from any to any via vr0
00610     0        0 allow ip from any to me dst-port 53 via vr0
00620     0        0 allow ip from any to me dst-port 80 via vr0
00700   456    22040 allow ip from any to me dst-port 3128 via rl0
00710     0        0 deny ip from any to me dst-port 3128 via vr0
00720     9      456 allow ip from any to me dst-port 139 via rl0
00730     0        0 deny ip from any to me dst-port 139 via vr0
00731     4      200 deny ip from any to me dst-port 445 via vr0
00800  9099   478068 allow ip from 10.10.10.0/24 to me via rl0
00900   192     9248 allow ip from any to me dst-port 25 via vr0
01000     0        0 allow ip from 10.10.10.0/24 to me dst-port 25 via rl0
01100     0        0 allow ip from 10.10.10.0/24 to me dst-port 110 via rl0
01110  2054   209952 allow ip from 127.0.0.0/8 to me via lo0
01120     0        0 allow ip from 127.0.0.0/8 to me dst-port 389 via lo0
01200     0        0 allow ip from me 389 to any dst-port 389 via lo0
01210   168    15568 allow ip from me to any via lo0
01220     0        0 allow ip from me to 127.0.0.0/8 via lo0
01230     0        0 allow ip from 127.0.0.0/8 to me via lo0
01231     0        0 allow ip from any to me dst-port 14155 via vr0
01232     0        0 allow ip from any to me dst-port 14255 via vr0
01233     0        0 allow ip from any to me dst-port 14355 via vr0
01234     0        0 allow ip from any to me dst-port 14555 via vr0
01300     0        0 allow ip from 10.10.10.0/24 to me in recv rl0
01301 36394 48030116 allow ip from me to 10.10.10.0/24 out xmit rl0
01302   914    85235 allow ip from table(3) to any in recv rl0
01303     0        0 allow ip from any to table(3) out xmit rl0
01304  1992   169898 deny ip from any to any via rl0
01305  2034   135479 nat 1 ip from any to any via vr0
01306     0        0 allow ip from any to any
01800     0        0 deny ip from any to table(1) via vr0
01900     0        0 deny ip from table(2) to any via vr0
02200     0        0 nat 2 ip from 10.10.10.1 to any via vr0
02300     0        0 nat 3 ip from 10.10.10.2 to any via vr0
02400     0        0 nat 4 ip from 10.10.10.65 to any via vr0
65535   812    48886 deny ip from any to any
Sysctl:

Код: Выделить всё

net.inet.ip.fw.dyn_keepalive: 1
net.inet.ip.fw.dyn_short_lifetime: 5
net.inet.ip.fw.dyn_udp_lifetime: 10
net.inet.ip.fw.dyn_rst_lifetime: 1
net.inet.ip.fw.dyn_fin_lifetime: 1
net.inet.ip.fw.dyn_syn_lifetime: 20
net.inet.ip.fw.dyn_ack_lifetime: 300
net.inet.ip.fw.static_count: 42
net.inet.ip.fw.dyn_max: 4096
net.inet.ip.fw.dyn_count: 0
net.inet.ip.fw.curr_dyn_buckets: 256
net.inet.ip.fw.dyn_buckets: 256
net.inet.ip.fw.default_to_accept: 0
net.inet.ip.fw.tables_max: 128
net.inet.ip.fw.default_rule: 65535
net.inet.ip.fw.verbose_limit: 0
net.inet.ip.fw.verbose: 0
net.inet.ip.fw.one_pass: 1
net.inet.ip.fw.autoinc_step: 100
net.inet.ip.fw.enable: 1
WTF ? :st: .... Единственное, у сервера большой аптайм ( по моим меркам) - 6 месяцев, а я слышал что во FreeBSD 8 нельзя полноценно перезагрузить фаервол и нат без перезагрузки всей машины, ipfw перезагружался несколько раз..но сама машина только 1 раз перед возникновением проблемы.

Kazak
мл. сержант
Сообщения: 99
Зарегистрирован: 2009-07-28 9:46:46

Re: падение IPFW

Непрочитанное сообщение Kazak » 2010-11-12 15:56:19

Причем перезагрузка фаервола НАТ не роняет..новые правила вступают в силу, а вот после перезагрузки все инета нет у клиентов шлюза да и сам шлюз практически его не имеет...то трасса не идет никуда то пингуются все через раз.

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: падение IPFW

Непрочитанное сообщение mediamag » 2010-11-12 16:57:59

Когда у меня были необьяснимые мне глюки, я делал так: оставил один нат (остальное закоментил), потом поочереди добавлял правила, и на каком затык будет, то и ворочал. Если не помогло, я шел в sysctl и там всё коментил по той же схеме (называется метод научного тыка)))

Аватара пользователя
gekz
мл. сержант
Сообщения: 94
Зарегистрирован: 2010-04-27 10:06:57

Re: падение IPFW

Непрочитанное сообщение gekz » 2010-11-12 19:57:06

чёт не пойму вот это

Код: Выделить всё

01304  1992   169898 deny ip from any to any via rl0
вы запрещаете всё на внутреннем интерфейсе?
зачем столько натов?
напишите одно правило для таблицы №3 и достаточно одного
попробуйте загрузить конфиг фаера сидя физически за серваком
гляньте, возможно ругань на неправильные строки