проблемы с IPFW

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
zeliboba
проходил мимо
Сообщения: 7
Зарегистрирован: 2010-08-03 7:32:01

проблемы с IPFW

Непрочитанное сообщение zeliboba » 2010-08-03 8:13:46

FreeBSD 8 ядро пересобрано с поддержкой NAT и IPFW
На клиентских машинах некоторые сайты не хотят открываться. например mail.ru открывается, но не прикрепляеюся файлы (долго-долго грузит и в итоге Ошибка!)
Если отключить IPFW (allow all any to any) то все летает.
Я грешу на неправильную настройку файлов hosts и resolv.conf и на две строки в IPFW, отвечающие за DNS:
${FwCMD} add 2755 allow udp from any to any 53 via ${LanOut}
${FwCMD} add 2756 allow udp from any 53 to any via ${LanOut}
или же где то пропустил какое то разрешающее правило.

вот еще:
f8# nslookup mail.ru
Server: 88.147.129.15
Address: 88.147.129.15#53

Non-authoritative answer:
Name: mail.ru
Address: 217.69.128.41
Name: mail.ru
Address: 217.69.128.42
Name: mail.ru
Address: 217.69.128.43
Name: mail.ru
Address: 217.69.128.44


Даже вот щас нажал кнопку "Отправить" и ждал 3 минуты и ничего. Отключил IPFW и сразу сообщение добавилось в форум!

IPFW:

#!/bin/sh
FwCMD="/sbin/ipfw -q"
LanOut="em1" #внешний интерфейс
LanIn="em0" #внутренний
IpOut="192.168.33.8" #внешний ИП
IpIn="192.168.0.123" #внутренний
NetMask="24" #маска
NetIn="192.168.0.0" #внутренняя сеть

${FwCMD} flush
${FwCMD} add 5 allow all from any to any
${FwCMD} add 100 check-state
# пропускаем траффик через трансляцию сетевых адресов (NAT)
${FwCMD} add 110 divert natd all from ${NetIn}/${NetMask} to any out via ${LanOu
${FwCMD} add 120 divert natd all from any to ${IpOut} in via ${LanOut}
${FwCMD} add 200 allow ip from any to any via lo0 #разрешаем трафив через петлю
${FwCMD} add 300 deny ip from any to 127.0.0.0/8 # рубит lo0.
${FwCMD} add 400 deny ip from 127.0.0.0/8 to any #.
#запрещают вход и выход по нетбиосу
${FwCMD} add 405 deny tcp from any to any 135-139 via em1
${FwCMD} add 407 deny tcp from any 135-139 to any
#Вводим запреты, рубим частные сeти
${FwCMD} add 500 deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add 600 deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add 800 deny ip from any to 0.0.0.0/8 in via ${LanOut}
#Рубим автоконфигуренную частную сеть
${FwCMD} add 900 deny ip from any to 169.254.0.0/16 in via ${LanOut}
#рубаем мультикастовые рассылки
${FwCMD} add 1000 deny ip from any to 240.0.0.0/4 in via ${LanOut}
#рубим фрагментированные icmp
${FwCMD} add 1100 deny icmp from any to any frag
#рубим широковещательные icmp на внешнем интерфейсе
${FwCMD} add 1200 deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add 1300 deny log icmp from any to 255.255.255.255 out via ${LanOut}
#а тут собственно файрволл и начался:
#рубим траффик к частным сетям через внешний интерфейс
#заметтьте - эти правила отличаются от тех что были выше!
${FwCMD} add 1800 deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add 1900 deny ip from 172.16.0.0/12 to any out via ${LanOut}
${FwCMD} add 2000 deny ip from 192.168.0.0/16 to any out via ${LanOut}
${FwCMD} add 2100 deny ip from 0.0.0.0/8 to any out via ${LanOut}
#рубим автоконфигуреную частную сеть
${FwCMD} add 2200 deny ip from 169.254.0.0/16 to any out via ${LanOut}
#рубаем мультикастовые рассылки
${FwCMD} add 2400 deny ip from 240.0.0.0/4 to any out via ${LanOut}
#разрешаем все установленные соединения (если они установились -.
#значит по каким-то правилам они проходили.)
${FwCMD} add 2500 allow tcp from any to any established
#разрешаем весь исходящий траффик (серверу-то в инет можно? )
${FwCMD} add 2600 allow ip from ${IpOut} to any out xmit ${LanOut}
# разрешаем DNS снаружи (нам же надо узнавать IP по именам машин?)
${FwCMD} add 2755 allow udp from any to any 53 via ${LanOut}
${FwCMD} add 2756 allow udp from any 53 to any via ${LanOut}
# эхо-ответ и время жизни пакета истекло
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
# разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add 3100 allow tcp from any to any via ${LanIn}
# разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add 3200 allow udp from any to any via ${LanIn}
# разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add 3300 allow icmp from any to any via ${LanIn}
${FwCMD} add 3475 allow tcp from any to any out via ${LanOut} setup keep-state

Хостинговая компания 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/

Аватара пользователя
vadim64
майор
Сообщения: 2101
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: проблемы с IPFW

Непрочитанное сообщение vadim64 » 2010-08-03 8:25:03

Оформите нормально сообщение, пожалейте модеров
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

zeliboba
проходил мимо
Сообщения: 7
Зарегистрирован: 2010-08-03 7:32:01

Re: проблемы с IPFW

Непрочитанное сообщение zeliboba » 2010-08-03 9:06:59

Редактирование почему то не доступно
FreeBSD 8 ядро пересобрано с поддержкой NAT и IPFW
На клиентских машинах некоторые сайты не хотят открываться. например mail.ru открывается, но не прикрепляеюся файлы (долго-долго грузит и в итоге Ошибка!)
Если отключить IPFW (allow all any to any) то все летает.
Я грешу на неправильную настройку файлов hosts и resolv.conf и на две строки в IPFW, отвечающие за DNS:

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

${FwCMD} add 2755 allow udp from any to any 53 via ${LanOut}
${FwCMD} add 2756 allow udp from any 53 to any via ${LanOut}
или же где то пропустил какое то разрешающее правило.
вот еще:

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

f8# nslookup mail.ru
Server: 88.147.129.15
Address: 88.147.129.15#53

Non-authoritative answer:
Name: mail.ru
Address: 217.69.128.41
Name: mail.ru
Address: 217.69.128.42
Name: mail.ru
Address: 217.69.128.43
Name: mail.ru
Address: 217.69.128.44
Даже вот щас нажал кнопку "Отправить" и ждал 3 минуты и ничего. Отключил IPFW и сразу сообщение добавилось в форум!

IPFW:

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

#!/bin/sh
FwCMD="/sbin/ipfw -q"
LanOut="em1" #внешний интерфейс
LanIn="em0" #внутренний
IpOut="192.168.33.8" #внешний ИП
IpIn="192.168.0.123" #внутренний
NetMask="24" #маска
NetIn="192.168.0.0" #внутренняя сеть

${FwCMD} flush
${FwCMD} add 5 allow all from any to any
${FwCMD} add 100 check-state
# пропускаем траффик через трансляцию сетевых адресов (NAT)
${FwCMD} add 110 divert natd all from ${NetIn}/${NetMask} to any out via ${LanOu
${FwCMD} add 120 divert natd all from any to ${IpOut} in via ${LanOut}
${FwCMD} add 200 allow ip from any to any via lo0 #разрешаем трафив через петлю
${FwCMD} add 300 deny ip from any to 127.0.0.0/8 # рубит lo0.
${FwCMD} add 400 deny ip from 127.0.0.0/8 to any #.
#запрещают вход и выход по нетбиосу
${FwCMD} add 405 deny tcp from any to any 135-139 via em1
${FwCMD} add 407 deny tcp from any 135-139 to any
#Вводим запреты, рубим частные сeти
${FwCMD} add 500 deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add 600 deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add 800 deny ip from any to 0.0.0.0/8 in via ${LanOut}
#Рубим автоконфигуренную частную сеть
${FwCMD} add 900 deny ip from any to 169.254.0.0/16 in via ${LanOut}
#рубаем мультикастовые рассылки
${FwCMD} add 1000 deny ip from any to 240.0.0.0/4 in via ${LanOut}
#рубим фрагментированные icmp
${FwCMD} add 1100 deny icmp from any to any frag
#рубим широковещательные icmp на внешнем интерфейсе
${FwCMD} add 1200 deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add 1300 deny log icmp from any to 255.255.255.255 out via ${LanOut}
#а тут собственно файрволл и начался:
#рубим траффик к частным сетям через внешний интерфейс
#заметтьте - эти правила отличаются от тех что были выше!
${FwCMD} add 1800 deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add 1900 deny ip from 172.16.0.0/12 to any out via ${LanOut}
${FwCMD} add 2000 deny ip from 192.168.0.0/16 to any out via ${LanOut}
${FwCMD} add 2100 deny ip from 0.0.0.0/8 to any out via ${LanOut}
#рубим автоконфигуреную частную сеть
${FwCMD} add 2200 deny ip from 169.254.0.0/16 to any out via ${LanOut}
#рубаем мультикастовые рассылки
${FwCMD} add 2400 deny ip from 240.0.0.0/4 to any out via ${LanOut}
#разрешаем все установленные соединения (если они установились -.
#значит по каким-то правилам они проходили.)
${FwCMD} add 2500 allow tcp from any to any established
#разрешаем весь исходящий траффик (серверу-то в инет можно? )
${FwCMD} add 2600 allow ip from ${IpOut} to any out xmit ${LanOut}
# разрешаем DNS снаружи (нам же надо узнавать IP по именам машин?)
${FwCMD} add 2755 allow udp from any to any 53 via ${LanOut}
${FwCMD} add 2756 allow udp from any 53 to any via ${LanOut}
# эхо-ответ и время жизни пакета истекло
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
# разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add 3100 allow tcp from any to any via ${LanIn}
# разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add 3200 allow udp from any to any via ${LanIn}
# разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add 3300 allow icmp from any to any via ${LanIn}
${FwCMD} add 3475 allow tcp from any to any out via ${LanOut} setup keep-state

Аватара пользователя
server801
ст. лейтенант
Сообщения: 1421
Зарегистрирован: 2008-09-27 21:15:16
Откуда: Саратов
Контактная информация:

Re: проблемы с IPFW

Непрочитанное сообщение server801 » 2010-08-03 20:21:03

В саратове примари сервер является 88.147.128.17 . пинги во внутреннюю сеть идут?

Аватара пользователя
BirdGovorun
лейтенант
Сообщения: 878
Зарегистрирован: 2009-10-20 20:27:13
Откуда: Харьков.

Re: проблемы с IPFW

Непрочитанное сообщение BirdGovorun » 2010-08-03 22:57:13

замени эти два

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

${FwCMD} add 110 divert natd all from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add 120 divert natd all from any to ${IpOut} in via ${LanOut}
на это одно

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

${FwCMD} add 110  divert natd all from any to any out via ${LanOut}
Это

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

${FwCMD} add 5 allow all from any to any
заменить на это:

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

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

Гость
проходил мимо

Re: проблемы с IPFW

Непрочитанное сообщение Гость » 2010-08-04 7:25:49

Пинги идут. Разрешающее правило ставил и в начале и в конце, разницы нет.

zeliboba
проходил мимо
Сообщения: 7
Зарегистрирован: 2010-08-03 7:32:01

Re: проблемы с IPFW

Непрочитанное сообщение zeliboba » 2010-08-04 10:01:06

Последним правилом стоит ${FwCMD} add 5000 allow log all from any to any
и вот что в логах:

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

Aug  4 10:40:00 f8 kernel: ipfw: 5000 Accept UDP 192.168.0.19:1376 84.19.165.194:12000 out via em1
Aug  4 10:40:00 f8 kernel: ipfw: 5000 Accept UDP 192.168.0.220:1528 84.19.165.194:12000 out via em1
Aug  4 10:40:01 f8 kernel: ipfw: 5000 Accept UDP 192.168.0.7:1368 84.19.165.194:12000 out via em1
Aug  4 10:40:02 f8 kernel: ipfw: 5000 Accept UDP 192.168.33.157:137 67.228.112.196:137 out via em1
Aug  4 10:40:05 f8 last message repeated 2 times
Aug  4 10:40:06 f8 kernel: ipfw: 5000 Accept UDP 192.168.0.67:1745 84.19.165.194:12000 out via em1
Aug  4 10:40:12 f8 kernel: ipfw: 5000 Accept P:2 192.168.1.177 224.0.0.1 in via em0
Aug  4 10:40:18 f8 kernel: ipfw: 5000 Accept UDP 192.168.0.159:1448 84.19.165.194:12000 out via em1
Aug  4 10:40:24 f8 kernel: ipfw: 5000 Accept P:2 192.168.1.177 224.0.0.1 in via em0
Aug  4 10:40:24 f8 kernel: ipfw: limit 10 reached on entry 5000 

Аватара пользователя
BirdGovorun
лейтенант
Сообщения: 878
Зарегистрирован: 2009-10-20 20:27:13
Откуда: Харьков.

Re: проблемы с IPFW

Непрочитанное сообщение BirdGovorun » 2010-08-04 16:41:17

Покажите вывод:

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

#ipfw show

zeliboba
проходил мимо
Сообщения: 7
Зарегистрирован: 2010-08-03 7:32:01

Re: проблемы с IPFW

Непрочитанное сообщение zeliboba » 2010-08-05 7:37:24

Добавил строку: ${FwCMD} add 3305 allow icmp from any to any via ${LanOut} и все пошло нормально. Подскажите - не опасно так открыть пинг?
ipfw show

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

00100       0         0 check-state
00123 1014032 703053217 allow tcp from any to any established
00200     378     22680 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
00405       0         0 deny tcp from any to any dst-port 135-139 via em1
00407       0         0 deny tcp from any 135-139 to any
00410       0         0 deny log logamount 100000 ip from 192.168.0.0/24 to any in via em1
00420    3289    282058 deny log logamount 100000 ip from 192.168.33.0/24 to any in via em0
00500       0         0 deny ip from any to 10.0.0.0/8 in via em1
00600       0         0 deny ip from any to 172.16.0.0/12 in via em1
00700       1        36 deny ip from any to 224.0.0.0/4 in via em1
00800       0         0 deny ip from any to 0.0.0.0/8 in via em1
00900       0         0 deny ip from any to 169.254.0.0/16 in via em1
01000       0         0 deny ip from any to 240.0.0.0/4 in via em1
01100       0         0 deny icmp from any to any frag
01200       0         0 deny log logamount 10 icmp from any to 255.255.255.255 in via em1
01300       0         0 deny log logamount 10 icmp from any to 255.255.255.255 out via em1
01800       0         0 deny ip from 10.0.0.0/8 to any out via em1
01900       0         0 deny ip from 172.16.0.0/12 to any out via em1
02100       0         0 deny ip from 0.0.0.0/8 to any out via em1
02200       0         0 deny ip from 169.254.0.0/16 to any out via em1
02300       0         0 deny ip from 224.0.0.0/4 to any out via em1
02400       0         0 deny ip from 240.0.0.0/4 to any out via em1
02600   17738   1068911 allow ip from 192.168.33.8 to any out xmit em1
02755   90213   6217540 allow udp from any to any dst-port 53 via em1
02756    3037    703678 allow udp from any 53 to any via em1
02856   29711   1901504 allow icmp from any to any icmptypes 0,8,11
03100   12441    614616 allow tcp from any to any via em0
03200  120953   9052803 allow udp from any to any via em0
03300       3       168 allow icmp from any to any via em0
03305      37     16352 allow icmp from any to any via em1
03475      91      4368 allow tcp from any to any out via em1 setup keep-state
03500    1952     95745 deny log logamount 100000 ip from any to any
65535       4       198 deny ip from any to any

Аватара пользователя
BirdGovorun
лейтенант
Сообщения: 878
Зарегистрирован: 2009-10-20 20:27:13
Откуда: Харьков.

Re: проблемы с IPFW

Непрочитанное сообщение BirdGovorun » 2010-08-05 9:49:34

У вас "закрытый" фаервол, последнее правило 65535 запрещает всё, что не разрешено до него.
Нету смысла в правилах с 300 по 2400 и 3500
Подскажите - не опасно так открыть пинг?
Я никогда не закрывал и проблем не было.

Аватара пользователя
vadim64
майор
Сообщения: 2101
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: проблемы с IPFW

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

BirdGovorun писал(а):У вас "закрытый" фаервол, последнее правило 65535 запрещает всё, что не разрешено до него.
Нету смысла в правилах с 300 по 2400 и 3500
3500 - это у него чтоб логировать всё что порезалос :-D . Я тоже так делал раньше)))
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.