IPFW: Теория и практика?

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

IPFW: Теория и практика?

Непрочитанное сообщение Larin » 2008-10-13 12:00:55

короче, решил я разобраться в ipfw. взял тестовую машинку и начал играться.
урезал до минимума конфиг из статьи лиса

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

#!/bin/sh

FwCMD="/sbin/ipfw"
LanOut="rl0"
LanIn="rl1"
IpOut="192.168.0.33"
IpIn="192.168.1.50"
NetMask="24"
NetIn="192.168.0.0"
${FwCMD} -f flush
${FwCMD} add check-state
${FwCMD} add allow ip from any to any via lo0

${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any
#а вот тут я вроде бы открыл траф для сервера в инет, но пинги не идут
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}



#тут все норм. в локалке все работает
${FwCMD} add allow tcp from any to any via ${LanIn}
${FwCMD} add allow udp from any to any via ${LanIn}
${FwCMD} add allow icmp from any to any via ${LanIn}


${FwCMD} add deny ip from any to any
до пинга

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

00100   0     0 check-state
00200   0     0 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 allow ip from 192.168.0.33 to any out xmit rl0
00600 125 14820 allow tcp from any to any via rl1
00700   3   234 allow udp from any to any via rl1
00800   0     0 allow icmp from any to any via rl1
00900   0     0 deny ip from any to any
65535  82  6396 allow ip from any to any
после пинга.

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

00100   0     0 check-state
00200   0     0 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  11   924 allow ip from 192.168.0.33 to any out xmit rl0 #пакетики побежали, но пинг не идет.
00600 313 36260 allow tcp from any to any via rl1
00700   9   702 allow udp from any to any via rl1
00800   0     0 allow icmp from any to any via rl1
00900  53  2944 deny ip from any to any
65535  82  6396 allow ip from any to any
пинг

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

ping 193.232.248.2
PING 193.232.248.2 (193.232.248.2): 56 data bytes
^C
--- 193.232.248.2 ping statistics ---
13 packets transmitted, 0 packets received, 100.0% packet loss
нужно просто отрыть доступ в инет серваку, а все остально блочить. не могу понять, что я делаю не так и почему пинг не идет...
Укажите плз на ошибку.
З.Ы. фря 7.0 релиз.

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

Yam
сержант
Сообщения: 226
Зарегистрирован: 2008-10-11 19:19:24
Откуда: 2:5093/41

Re: IPFW: Теория и практика?

Непрочитанное сообщение Yam » 2008-10-13 12:19:23

Так не удивительно, а где правило разрешающее входящие пакеты на rl0 ? Или если хотите stateful firewall построить, а судя по всему хотите, тогда в правиле 500 не хватает keep-state.

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: IPFW: Теория и практика?

Непрочитанное сообщение Larin » 2008-10-13 12:29:54

Yam писал(а):Так не удивительно, а где правило разрешающее входящие пакеты на rl0 ? Или если хотите stateful firewall построить, а судя по всему хотите, тогда в правиле 500 не хватает keep-state.
я пока ничего не хочу:) просто разбираюсь как правильно правила писать.
З.Ы. как я понял у меня правило 500 разрешает траф от сервака, но не обратно, а keep-state разрешает обратный траф по установленному соединению? так?
пойду пробовать.

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: IPFW: Теория и практика?

Непрочитанное сообщение Larin » 2008-10-13 12:32:38

Larin писал(а):
Yam писал(а):Так не удивительно, а где правило разрешающее входящие пакеты на rl0 ? Или если хотите stateful firewall построить, а судя по всему хотите, тогда в правиле 500 не хватает keep-state.
я пока ничего не хочу:) просто разбираюсь как правильно правила писать.
З.Ы. как я понял у меня правило 500 разрешает траф от сервака, но не обратно, а keep-state разрешает обратный траф по установленному соединению? так?
пойду пробовать.
а что лучше юзать keep-state или прописать еще правило разрешающее входящий траф?

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

${FwCMD} add allow ip from any to ${IpOut} in xmit ${LanOut}

Yam
сержант
Сообщения: 226
Зарегистрирован: 2008-10-11 19:19:24
Откуда: 2:5093/41

Re: IPFW: Теория и практика?

Непрочитанное сообщение Yam » 2008-10-13 12:54:04

Зависит от того, какой фаирвол вы хотите построить. Одно только замечание - не мешайтей всё в кучу. Хотите stateful, а хотите stateless. Определитесь как вам проще, так и пишите в одному стиле, а то по прошествии некоторого времени, сами не разберетесь в своих правилах. Самый простой и наглядный - stateless, когда все разрешающие и запрещающие правила задаются явно, stateful менее нагляден, сложнее отлаживать, но более компактен и прост в записи, только нужно хорошо представлять, что вы делаете.

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: IPFW: Теория и практика?

Непрочитанное сообщение Larin » 2008-10-13 13:03:05

Yam писал(а):Зависит от того, какой фаирвол вы хотите построить. Одно только замечание - не мешайтей всё в кучу. Хотите stateful, а хотите stateless. Определитесь как вам проще, так и пишите в одному стиле, а то по прошествии некоторого времени, сами не разберетесь в своих правилах. Самый простой и наглядный - stateless, когда все разрешающие и запрещающие правила задаются явно, stateful менее нагляден, сложнее отлаживать, но более компактен и прост в записи, только нужно хорошо представлять, что вы делаете.
для начала думаю проще stateless? а дальше будет видно...

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: IPFW: Теория и практика?

Непрочитанное сообщение terminus » 2008-10-13 13:18:44

keep-state проще в настройке чем stateless. Тут один раз вбил, что локальной машине можно ходить везде + сделал дырки только на те порты который надо и все. В stateless надо думать какие диапазоны разрешать, что запрещать - опыт нужен и желание.

Пример наипростейщего keep-state

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

add check-state
add allow all from any to any via lo0
add deny all from any to 127.0.0.0/8
add deny all from 127.0.0.0/8 to any
add allow tcp from me to any out via rl0 keep-state
add allow udp from me to any out via rl0 keep-state
add allow icmp from me to any out via rl0 keep-state
add deny all from any to any
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: IPFW: Теория и практика?

Непрочитанное сообщение paradox » 2008-10-13 14:22:07

не ipfw нужно изучать а путь прохождения пакетов через правила

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: IPFW: Теория и практика?

Непрочитанное сообщение Larin » 2008-10-13 14:31:43

paradox писал(а):не ipfw нужно изучать а путь прохождения пакетов через правила
что ты имеешь ввиду?:)
путь как раз таки понятен, трабл в правильном написании правил...

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: IPFW: Теория и практика?

Непрочитанное сообщение paradox » 2008-10-13 14:42:07

если ты думаешь что правила отрабатываються по номерам от меньшего к большему
- то это не всегда так ( не имееться ввиду skip и подобные)

вообще имеллось ввиду путь прохождения пакета к примеру через сервер у которого 2 сетевки
и точки в стеке где ipfw может или нужно ловить пакет
и уже производить действия

а систаксис
ну млин man ipfw - более чем нормально рассписано как правила писать

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: IPFW: Теория и практика?

Непрочитанное сообщение Larin » 2008-10-13 14:46:55

paradox писал(а):если ты думаешь что правила отрабатываються по номерам от меньшего к большему
- то это не всегда так ( не имееться ввиду skip и подобные)
нет не думаю:)))
paradox писал(а): вообще имеллось ввиду путь прохождения пакета к примеру через сервер у которого 2 сетевки
и точки в стеке где ipfw может или нужно ловить пакет
и уже производить действия
думаю, разберусь по ходу дела.
paradox писал(а): а систаксис
ну млин man ipfw - более чем нормально рассписано как правила писать
угу.

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: IPFW: Теория и практика?

Непрочитанное сообщение schizoid » 2008-10-13 16:36:56

ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: IPFW: Теория и практика?

Непрочитанное сообщение Alex Keda » 2008-10-14 9:22:48

paradox писал(а):если ты думаешь что правила отрабатываються по номерам от меньшего к большему
- то это не всегда так ( не имееться ввиду skip и подобные)
э... просвятите отсталого...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: IPFW: Теория и практика?

Непрочитанное сообщение terminus » 2008-10-14 11:06:41

lissyara писал(а):э... просвятите отсталого...
Может paradox имел в виду обработку на pipe/nat правилах, когда при включении net.inet.ip.fw.one_pass=1 после возврашения пакета из pipe обратно в фаервол, пакету сразу дается allow ?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: IPFW: Теория и практика?

Непрочитанное сообщение Larin » 2008-10-21 15:01:59

terminus писал(а):keep-state проще в настройке чем stateless. Тут один раз вбил, что локальной машине можно ходить везде + сделал дырки только на те порты который надо и все. В stateless надо думать какие диапазоны разрешать, что запрещать - опыт нужен и желание.

Пример наипростейщего keep-state

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

add check-state
add allow all from any to any via lo0
add deny all from any to 127.0.0.0/8
add deny all from 127.0.0.0/8 to any
add allow tcp from me to any out via rl0 keep-state
add allow udp from me to any out via rl0 keep-state
add allow icmp from me to any out via rl0 keep-state
add deny all from any to any
хм...короче я сделал так.

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

#!/bin/sh

FwCMD="/sbin/ipfw"
LanOut="rl0"
LanIn="rl1"
IpOut="192.168.0.33"
IpIn="192.168.1.50"
Srv01="192.168.1.33"
NetMask="24"
NetIn="192.168.1.0"

${FwCMD} -f flush
${FwCMD} add check-state
${FwCMD} add allow all from any to any via lo0
${FwCMD} add deny all from any to 127.0.0.0/8
${FwCMD} add deny all from 127.0.0.0/8 to any

${FwCMD} add divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}


${FwCMD} add allow ip from me to any out via ${LanOut} keep-state #разрешил серваку инет:) все заработало
${FwCMD} add allow ip from 192.168.1.106 to not ${NetIn} via ${LanIn} keep-state #разрешил инет одному из компов в сети, но не заработало

${FwCMD} add allow tcp from any to any via ${LanIn}
${FwCMD} add allow udp from any to any via ${LanIn}
${FwCMD} add allow icmp from any to any via ${LanIn}
${FwCMD} add deny all from any to any
странно, но с 192.168.1.106 пинг не пошел, хотя...

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

# ipfw show
00100   0     0 check-state
00200   0     0 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 124  5983 divert 8668 ip from 192.168.1.0/24 to any out via rl0
00600 214 12975 divert 8668 ip from any to 192.168.0.33 in via rl0
00700 291 13410 allow ip from me to any out via rl0 keep-state
00800 238 25688 allow ip from 192.168.1.106 to not 192.168.1.0 via rl1 keep-state
00900 119  5712 allow tcp from any to any via rl1
01000  57  4478 allow udp from any to any via rl1
01100   0     0 allow icmp from any to any via rl1
01200 208 12391 deny ip from any to any
65535  31  3148 allow ip from any to any
# 
З.Ы. пинговал по ИП т.е. трабл не в днс.
походу я опять, что-то криво прописал?

CorpsE83
проходил мимо

Re: IPFW: Теория и практика?

Непрочитанное сообщение CorpsE83 » 2008-10-23 14:46:03

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

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: IPFW: Теория и практика?

Непрочитанное сообщение Larin » 2008-10-23 14:48:17

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

Yam
сержант
Сообщения: 226
Зарегистрирован: 2008-10-11 19:19:24
Откуда: 2:5093/41

Re: IPFW: Теория и практика?

Непрочитанное сообщение Yam » 2008-10-23 15:20:20

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

# ipfw show
00100   0     0 check-state
00200   0     0 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 124  5983 divert 8668 ip from 192.168.1.0/24 to any out via rl0
00600 214 12975 divert 8668 ip from any to 192.168.0.33 in via rl0
00700 291 13410 allow ip from me to any out via rl0 keep-state
00800 238 25688 allow ip from 192.168.1.106 to not 192.168.1.0 via rl1 keep-state
00900 119  5712 allow tcp from any to any via rl1
01000  57  4478 allow udp from any to any via rl1
01100   0     0 allow icmp from any to any via rl1
01200 208 12391 deny ip from any to any
65535  31  3148 allow ip from any to any
#
Если вашей целью было пропинговать произвольный хост в инете, то не удивительно что "не прошел". У вас нет ни одного правила, которое разрешило бы хождение с вашей сети 192.168.1.0/24 в инет. Правило 800 замечатльное, только ему в пару не хватает еще разрешения ходить из 192.168.1.0/24 через rl0. И еще, ошибка здесь:
${FwCMD} add allow ip from 192.168.1.106 to not ${NetIn} via ${LanIn} keep-state
, должно быть
${FwCMD} add allow ip from 192.168.1.106 to not ${NetIn}/${NetMask} via ${LanIn} keep-state

зы зря послушали и начали со stateful, писали бы каждое правило отдельно, ручками многих ошибок избежали бы.

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: IPFW: Теория и практика?

Непрочитанное сообщение Larin » 2008-10-23 16:26:34

Yam писал(а): Если вашей целью было пропинговать произвольный хост в инете, то не удивительно что "не прошел". У вас нет ни одного правила, которое разрешило бы хождение с вашей сети 192.168.1.0/24 в инет.
всю сеть пускать и не надо. только один комп.
Yam писал(а): Правило 800 замечатльное, только ему в пару не хватает еще разрешения ходить из 192.168.1.0/24 через rl0. И еще, ошибка здесь:
зачем?
Yam писал(а): ${FwCMD} add allow ip from 192.168.1.106 to not ${NetIn} via ${LanIn} keep-state
, должно быть
${FwCMD} add allow ip from 192.168.1.106 to not ${NetIn}/${NetMask} via ${LanIn} keep-state
угу. спс. попробую.
Yam писал(а):
Yam писал(а): зы зря послушали и начали со stateful, писали бы каждое правило отдельно, ручками многих ошибок избежали бы.
мейби-мейби. но все же попытаюсь добить stateless:)

Yam
сержант
Сообщения: 226
Зарегистрирован: 2008-10-11 19:19:24
Откуда: 2:5093/41

Re: IPFW: Теория и практика?

Непрочитанное сообщение Yam » 2008-10-23 19:07:18

Рекомендую прочесть вот это: http://nuclight.livejournal.com/124348.html на первый раз может показаться дебрями, но после вдумчивого прочтения многое встанет на свои места. И вооружиться tcpdump`ом.

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: IPFW: Теория и практика?

Непрочитанное сообщение schizoid » 2008-10-24 9:41:19

уже давали данную ссылку
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: IPFW: Теория и практика?

Непрочитанное сообщение Larin » 2008-10-24 9:42:40

Yam писал(а):Рекомендую прочесть вот это: http://nuclight.livejournal.com/124348.html на первый раз может показаться дебрями, но после вдумчивого прочтения многое встанет на свои места. И вооружиться tcpdump`ом.
угу. видел этот пост в ru.unix.bsd
почитаю на досуге.