Помощь в разделении трафика в ipfw

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Помощь в разделении трафика в ipfw

Непрочитанное сообщение mediamag » 2011-02-04 12:56:08

Есть у меня правила, в основе которых эта статья http://www.lissyara.su/articles/freebsd/tuning/ipfw/ +допиливание под себя. Вот они: (убрал все ненужные блокировки, оставил только то что нужно спросить)

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

#----allow all lo0 traffic----------------------

$fwcmd add 1000 allow ip from any to any via lo0

#----Kernell NAT----------------------------------------------

ipfw nat 1 config log ip $extip reset same_ports redirect_port tcp 10.0.0.9:8888 8888
$fwcmd add 2800 nat 1 ip from "table(7)" to any out via $extif
$fwcmd add 2900 nat 1 ip from any to $extip in via $extif

#---check-state------------

$fwcmd add 3900 check-state

#---allow all LAN traffic----------------------------------

$fwcmd add 4200 allow ip from any to $intnet in via $intif
$fwcmd add 4300 allow ip from $intnet to any out via $intif

#----allow all established tcp connections-----------

$fwcmd add 4400 allow tcp from any to any established

#----allow DNS requests on extiface (53 port)----------------------------

$fwcmd add 4500 allow udp from any to $extip 53 in via $extif
$fwcmd add 4600 allow udp from $extip 53 to any out via $extif keep-state
$fwcmd add 4700 allow udp from any 53 to $extip in via $extif
$fwcmd add 4800 allow udp from $extip to any 53 out via $extif keep-state

#----block other established tcp connections-------------------

$fwcmd add 6600 deny tcp from any to $extip in via $extif setup

#----allow established tcp connections from ext IP to ext interface---------

$fwcmd add 6700 allow tcp from $extip to any out via $extif setup keep-state
$fwcmd add 6800 allow tcp from any to $extip in via $intif setup

#----FULL TCP INET Table 1--------------------------------------------------------------------------

$fwcmd add 6900 allow tcp from "table(1)" to not $intnet in via $intif setup limit src-addr 500
Не нравится мне в правилах вот что: allow tcp from any to any established. Если я правильно понял, то это правило разрешает установленные соединения по tcp для тех правил, у которых в конце параметр setup Так? Тогда можно ли в принципе переписать правило, чтобы не эни ту эни, а вписать только те айпи который натится? Если я правильно понимаю принцип работы ipfw мне вместо одного необходимо написать четыре правила?

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

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение hranitel_y2k » 2011-02-04 15:40:12

http://www.lissyara.su/doc/docs/handbook_-_ipfw/
А вот это читали? Тут "established" вообще блокируется.

Кстати, "check-state", вроде должен идти до нат, или даже в самом начале.
Все гениальное - просто!

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

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение mediamag » 2011-02-04 15:56:48

Видел примеры по разному...в данном случае правило

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

allow tcp from any to any established
разрешает уже установленные соединения, а правило

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

deny tcp from any to $extip in via $extif setup
замыкает и запрещает все установленные соединения. Если я запрещу established то не смогу делать limit src-addr я прав?

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение hranitel_y2k » 2011-02-04 16:04:40

mediamag писал(а): замыкает и запрещает все установленные соединения. Если я запрещу established то не смогу делать limit src-addr я прав?
Нет. limit не зависит от estabilished.

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

Dynamic rules will be checked at the first check-state,keep-state or limit occurrence, and the action performed upon a match will be the same as in the parent rule.
Все гениальное - просто!

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

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение mediamag » 2011-02-04 16:45:21

По поводу check-state. Если ставлю выше ната, то интернета вообще нет, но пинги в мир ходят и по всем правилам пакеты бегают....может check-state и established не уживаются вместе? или нужно в определенных местах прописать keep-state

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение hranitel_y2k » 2011-02-04 17:12:35

mediamag писал(а):По поводу check-state. Если ставлю выше ната, то интернета вообще нет, но пинги в мир ходят и по всем правилам пакеты бегают....может check-state и established не уживаются вместе? или нужно в определенных местах прописать keep-state
Врятли они не уживаются. Check-state это всего лишь заставляет фаир делать поиск по динамическим правилам и все.
Другое дело, что established, возможно,лучше не использовать при наличии динамических правил. Сейчас ищу в доках этот момент.

Вот тут интересный пример:

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

  DYNAMIC RULES
     In order to protect a site from flood attacks involving fake TCP packets,
     it is safer to use dynamic rules:

	   ipfw add check-state
	   ipfw add deny tcp from any to any established
	   ipfw add allow tcp from my-net to any setup keep-state

     This will let the firewall install dynamic rules only for those connec-
     tion which start with a regular SYN packet coming from the inside of our
     network.  Dynamic rules are checked when encountering the first
     check-state or keep-state rule.  A check-state rule should usually be
     placed near the beginning of the ruleset to minimize the amount of work
     scanning the ruleset.  Your mileage may vary.
А проблемы могут быть здесь:

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


#----block other established tcp connections-------------------

$fwcmd add 6600 deny tcp from any to $extip in via $extif setup

#----allow established tcp connections from ext IP to ext interface---------

$fwcmd add 6700 allow tcp from $extip to any out via $extif setup keep-state
$fwcmd add 6800 allow tcp from any to $extip in via $intif setup
Все гениальное - просто!

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

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение mediamag » 2011-02-04 17:46:27

А как вообще лучше? блокировать established или разрешать? В моем случае шлюз я строю для раздачи интернета юзерам (мелкий провайдер)+ чтоб защищен был получше.

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение hranitel_y2k » 2011-02-04 22:53:04

mediamag писал(а):А как вообще лучше? блокировать established или разрешать? В моем случае шлюз я строю для раздачи интернета юзерам (мелкий провайдер)+ чтоб защищен был получше.
После долгого гугления и анализа разных конф, пришел к выводу что estabilished разрешается, когда не используются динамические правила.
Хотя может я и ошибаюсь :unknown:
Все гениальное - просто!

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

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение hizel » 2011-02-04 23:02:51

о господи, вы о чем?
вы доку ipfw и принципы работы tcp раскуривали? :-|
какого негатива вы к established прицепились!?
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

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

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение mediamag » 2011-02-04 23:23:09

так в чем же разница??? на просторах инета люди и блокируют его и наоборот разрешают

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

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение hizel » 2011-02-04 23:30:19

established пакеты tcp с установленными соотвестующими флагами после рукопожатия
а stateful создают свою таблицу установленных соединений которая хранится у вас на роутере :-|

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

ipfw add check-state
ipfw add deny tcp from any to any established
ipfw add allow tcp from my-net to any setup keep-state
если вы про этот кусочек например, то тут элементарно, то что не в табличке stateful правил то нафиг отбрасывается :-)

запрещают\разрешают, это не серьезно, не забывайте что тупо deny tcp from any to any established не сообщает о том что что-то полностью запрещено, пакет проходит через ipfw несколько раз и т.д. и т.п. бла бла :-(
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение hranitel_y2k » 2011-02-05 0:11:34

hizel писал(а):established пакеты tcp с установленными соотвестующими флагами после рукопожатия
а stateful создают свою таблицу установленных соединений которая хранится у вас на роутере :-|

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

ipfw add check-state
ipfw add deny tcp from any to any established
ipfw add allow tcp from my-net to any setup keep-state
если вы про этот кусочек например, то тут элементарно, то что не в табличке stateful правил то нафиг отбрасывается :-)

запрещают\разрешают, это не серьезно, не забывайте что тупо deny tcp from any to any established не сообщает о том что что-то полностью запрещено, пакет проходит через ipfw несколько раз и т.д. и т.п. бла бла :-(
Значит все и сводится к этому: estabilished лучше использовать, когда не используются динамические правила. Вот и ответ.

Вопрос же был не только в запрещении\ разрешении, а еще в правильности использования этого правила.
Мы же "не волшебники, мы только учимся" :smile:
Все гениальное - просто!

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

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение hizel » 2011-02-05 0:20:11

можно вообще не использовать ни то ни другое, что я и делаю ;-)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

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

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение mediamag » 2011-02-07 12:48:58

Помогите понять, как мне переделать правила, с учетом ваших выводов?? . check-state я поставил на самый верх, написал правило deny tcp from any to any established но интернета нет..наверное нужно изменить правила доступа из локалки

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

$fwcmd add 6900 allow tcp from "table(1)" to not $intnet in via $intif setup limit src-addr 500
...но как именно?

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение hranitel_y2k » 2011-02-07 14:31:39

mediamag писал(а):Помогите понять, как мне переделать правила, с учетом ваших выводов?? . check-state я поставил на самый верх, написал правило deny tcp from any to any established но интернета нет..наверное нужно изменить правила доступа из локалки

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

$fwcmd add 6900 allow tcp from "table(1)" to not $intnet in via $intif setup limit src-addr 500
...но как именно?
Интернета нет на сервере,а из локалки пинг должен идти!
Чтобы инет появился нужно разрешить пакетам с сервера выход в инет. К примеру так:

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

ipfw add allow ip from me to any via ${extif} keep-state
И покажите, пожалуйста, окончательный вариант правил, для того чтобы было ясно в какое место добавлять правила.
Все гениальное - просто!

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

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение mediamag » 2011-02-07 14:57:28

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

#---check-state------------

$fwcmd add 100 check-state

#----allow all lo0 traffic----------------------

$fwcmd add 1000 allow ip from any to any via lo0

#----Kernell NAT----------------------------------------------

ipfw nat 1 config log ip $extip reset same_ports redirect_port tcp 10.0.0.9:8888 8888
$fwcmd add 2800 nat 1 ip from "table(7)" to any out via $extif
$fwcmd add 2900 nat 1 ip from any to $extip in via $extif

#---allow all LAN traffic----------------------------------

$fwcmd add 4200 allow ip from any to $intnet in via $intif
$fwcmd add 4300 allow ip from $intnet to any out via $intif

#----allow all established tcp connections-----------

$fwcmd add 4400 deny tcp from any to any established

#----allow DNS requests on extiface (53 port)----------------------------

$fwcmd add 4500 allow udp from any to $extip 53 in via $extif
$fwcmd add 4600 allow udp from $extip 53 to any out via $extif keep-state
$fwcmd add 4700 allow udp from any 53 to $extip in via $extif
$fwcmd add 4800 allow udp from $extip to any 53 out via $extif keep-state

#----FULL TCP INET Table 1--------------------------------------------------------------------------

$fwcmd add 6900 allow tcp from "table(1)" to not $intnet in via $intif setup limit src-addr 500

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение hranitel_y2k » 2011-02-07 21:47:14

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

$fwcmd add 1100 check-state
...
$fwcmd add 4450 allow ip from me to any out via $extif keep-state
Все гениальное - просто!

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

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение mediamag » 2011-02-07 23:35:13

тоесть такая конструкция, а именно второе правило, пустит весь исходящий трафик с внешнего интерфейса в мир...а что именно подразумевает me? Хотелось бы четко прописать что именно я выпускаю в мир Внешний айпи или внутрений?

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение hranitel_y2k » 2011-02-08 0:28:29

mediamag писал(а):тоесть такая конструкция, а именно второе правило, пустит весь исходящий трафик с внешнего интерфейса в мир...а что именно подразумевает me? Хотелось бы четко прописать что именно я выпускаю в мир Внешний айпи или внутрений?

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

me - matches any IP address configured on an interface in the system.
Можете написать вместо "me" ваш "внешний ip", ничего не измениться и все будет работать.
Все гениальное - просто!

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

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение mediamag » 2011-02-08 1:11:29

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

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение rmn » 2011-02-08 1:37:03

hizel писал(а):можно вообще не использовать ни то ни другое, что я и делаю ;-)
+1

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

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение mediamag » 2011-02-08 11:22:59

Не заработал интернет при такой конструкции правил...пытаюсь разобраться (у меня нагруженый сервак и не так просто туда сюда отрубать его от инета)

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение hranitel_y2k » 2011-02-08 11:45:29

mediamag писал(а):Не заработал интернет при такой конструкции правил...пытаюсь разобраться (у меня нагруженый сервак и не так просто туда сюда отрубать его от инета)
Уточню на всякий случай:
На самом сервере даже пинги в инет не работают? Если из локалки проверяете, то ip вашего компа точно находиться в таблице 7? Можно увидеть вывод "ipfw show"?
Все гениальное - просто!

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

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение mediamag » 2011-02-08 16:44:38

1. Пинги с сервака в мир идут
2. с локалки пинги в мир идут.
3. ipfw show показывает, что пакеты бегают по правилу 4450.
4. Но вот по правилу

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

$fwcmd add 6900 allow ip from "table(1)" to not $intnet in via $intif setup limit src-addr 500
пакетов проходит очень мало и мне кажется что в нем и весь затык...но может я и ошибаюсь

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Помощь в разделении трафика в ipfw

Непрочитанное сообщение hranitel_y2k » 2011-02-08 18:06:23

mediamag писал(а):1. Пинги с сервака в мир идут
2. с локалки пинги в мир идут.
3. ipfw show показывает, что пакеты бегают по правилу 4450.
4. Но вот по правилу

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

$fwcmd add 6900 allow ip from "table(1)" to not $intnet in via $intif setup limit src-addr 500
пакетов проходит очень мало и мне кажется что в нем и весь затык...но может я и ошибаюсь
1)раз пинг идет - инет на серваке есть
2) пинг идет - нат работает и в сетке инет тоже есть
3) Должно показывать, инет то есть
4) Что вы хотели получить, когда писали это правило?

Исходя из всего выше перечисленного, почему вы говорите,что у вас нет инета? Прокси есть?
Все гениальное - просто!