URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 95088
[ Назад ]

Исходное сообщение
"ipfw рестарт интерфейса при изменении правил"

Отправлено jaged , 10-Окт-13 10:01 
Добрый день.
Столкнулся со странным, на мой взгляд, поведением ipfw (FreeBSD 8.4 ядро стандартное),
при изменении правил - добавления, правки, для того чтоб они заработали приходится делать рестарт(ifconfig de0 down/up) интерфейса... это болезнь, глюк или так должно быть?

Содержание

Сообщения в этом обсуждении
"ipfw рестарт интерфейса при изменении правил"
Отправлено Pahanivo , 10-Окт-13 10:06 
> Добрый день.
> Столкнулся со странным, на мой взгляд, поведением ipfw (FreeBSD 8.4 ядро стандартное),
> при изменении правил - добавления, правки, для того чтоб они заработали приходится
> делать рестарт(ifconfig de0 down/up) интерфейса... это болезнь, глюк или так должно
> быть?

так быть недОлжно, пердположу что виноваты ... руки
может для начала написать что и как делается?


"ipfw рестарт интерфейса при изменении правил"
Отправлено jaged , 10-Окт-13 10:24 
>> Добрый день.
>> Столкнулся со странным, на мой взгляд, поведением ipfw (FreeBSD 8.4 ядро стандартное),
>> при изменении правил - добавления, правки, для того чтоб они заработали приходится
>> делать рестарт(ifconfig de0 down/up) интерфейса... это болезнь, глюк или так должно
>> быть?
> так быть недОлжно, пердположу что виноваты ... руки
> может для начала написать что и как делается?

добавляю разрешающие правила (начал с таких тк конкретные не работали, потом методом тыка через рестарт заработали)
правила по умолчанию:
00100  342 115952 allow ip from any to any via lo0
00200    0      0 deny ip from any to 127.0.0.0/8
00300    0      0 deny ip from 127.0.0.0/8 to any
00400    0      0 deny ip from any to ::1
00500    0      0 deny ip from ::1 to any
00600    0      0 allow ipv6-icmp from :: to ff02::/16
00700    0      0 allow ipv6-icmp from fe80::/10 to fe80::/10
00800    0      0 allow ipv6-icmp from fe80::/10 to ff02::/16
00900    0      0 allow ipv6-icmp from any to any ip6 icmp6types 1
01000    0      0 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136

Добавляю
ipfw add 10 allow all from me to any via de0
ipfw add 11 allow all from any to me via de0

хост не доступен, ifconfig down / up и хост доступен.


"ipfw рестарт интерфейса при изменении правил"
Отправлено jaged , 10-Окт-13 10:25 
>[оверквотинг удален]
> 00900    0      0 allow
> ipv6-icmp from any to any ip6 icmp6types 1
> 01000    0      0 allow
> ipv6-icmp from any to any ip6 icmp6types 2,135,136
> Добавляю
>  ipfw add 10 allow all from me to any via
> de0
>  ipfw add 11 allow all from any to me via
> de0
> хост не доступен, ifconfig down / up и хост доступен.


"ipfw рестарт интерфейса при изменении правил"
Отправлено Pahanivo , 10-Окт-13 13:08 
в втудию:
1) ifconfig
2) cat /etc/rc.conf
3) ipfw -a list (до внесения изменений)
4) команды внесения правил
5) ipfw -a list (после внесения изменений)

"ipfw рестарт интерфейса при изменении правил"
Отправлено jaged , 10-Окт-13 14:45 
> в втудию:
> 1) ifconfig
> 2) cat /etc/rc.conf
> 3) ipfw -a list (до внесения изменений)
> 4) команды внесения правил
> 5) ipfw -a list (после внесения изменений)

1- de0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:15:5d:0b:05:04
        inet 192.168.11.6 netmask 0xffffff00 broadcast 192.168.11.255
        media: Ethernet autoselect (100baseTX)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536


2 - ifconfig_de0="inet 192.168.11.6 netmask 255.255.255.0 broadcast 192.168.11.255"
inetd_enable="YES"
keymap="ru.koi8-r"
sshd_enable="YES"
defaultrouter="192.168.11.200"
postfix_enable="YES"
postgresql_enable="YES"
postgresql_data="/usr/local/psql/data"
postgresql_class="psql"
ntpdate_enable="YES"
dovecot_enable="YES"
clamav_clamd_enable="YES"
clamsmtpd_enable="YES"
spamd_enable="YES"
firewall_enable="YES"
firewall_logging="YES"
#firewall_script="/etc/..."
ifconfig_lo0="inet 127.0.0.1 netmask 255.0.0.0 broadcast 127.255.255.255"

3-
00100 128 42274 allow ip from any to any via lo0
00200   0     0 deny ip from any to 127.0.0.0/8
00300   0     0 deny ip from 127.0.0.0/8 to any
00400   0     0 deny ip from any to ::1
00500   0     0 deny ip from ::1 to any
00600   0     0 allow ipv6-icmp from :: to ff02::/16
00700   0     0 allow ipv6-icmp from fe80::/10 to fe80::/10
00800   0     0 allow ipv6-icmp from fe80::/10 to ff02::/16
00900   0     0 allow ipv6-icmp from any to any ip6 icmp6types 1
01000   0     0 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
65535  54  3616 deny ip from any to any

4 -
ipfw add 10 allow all from any to me via de0
ipfw add 11 allow all from me to any via de0

5 -
00010   0     0 allow ip from any to me via de0
00011   0     0 allow ip from me to any via de0
00100 154 50770 allow ip from any to any via lo0
00200   0     0 deny ip from any to 127.0.0.0/8
00300   0     0 deny ip from 127.0.0.0/8 to any
00400   0     0 deny ip from any to ::1
00500   0     0 deny ip from ::1 to any
00600   0     0 allow ipv6-icmp from :: to ff02::/16
00700   0     0 allow ipv6-icmp from fe80::/10 to fe80::/10
00800   0     0 allow ipv6-icmp from fe80::/10 to ff02::/16
00900   0     0 allow ipv6-icmp from any to any ip6 icmp6types 1
01000   0     0 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
65535  54  3616 deny ip from any to any

узел не доступен
++
ifconfig de0 down
ifconfig de0 up
узел доступен


"ipfw рестарт интерфейса при изменении правил"
Отправлено михалыч , 10-Окт-13 15:12 
>[оверквотинг удален]
> 00900   0     0 allow ipv6-icmp from
> any to any ip6 icmp6types 1
> 01000   0     0 allow ipv6-icmp from
> any to any ip6 icmp6types 2,135,136
> 65535  54  3616 deny ip from any to any
> узел не доступен
> ++
> ifconfig de0 down
> ifconfig de0 up
> узел доступен

Ужоснах. Ну, и чему тут удивляться?
У вас косяк на косяке и косяком погоняет!

Мил человек, не страдай х..нёй!

> ifconfig_lo0="inet 127.0.0.1 netmask 255.0.0.0 broadcast 127.255.255.255"

Это ещё зачем? Убрать!

> firewall_enable="YES"
> #firewall_script="/etc/..."

а вот то что реально нужно, почему-то закомменчено
поставьте
firewall_type="OPEN"
и будет вам "щасте"


"ipfw рестарт интерфейса при изменении правил"
Отправлено jaged , 10-Окт-13 15:38 
>[оверквотинг удален]
>> 01000   0     0 allow ipv6-icmp from
>> any to any ip6 icmp6types 2,135,136
>> 65535  54  3616 deny ip from any to any
>> узел не доступен
>> ++
>> ifconfig de0 down
>> ifconfig de0 up
>> узел доступен
> Ужоснах. Ну, и чему тут удивляться?
> У вас косяк на косяке и косяком погоняет!

это базовый конфиг, etc/rc.firewall

> Мил человек, не страдай х..нёй!

и не думал ))
>> ifconfig_lo0="inet 127.0.0.1 netmask 255.0.0.0 broadcast 127.255.255.255"
> Это ещё зачем? Убрать!

загадка этой записи пока не ясно, на этой тестовой машине работает только два человека) ни один из них говорит не добавлял..

>> firewall_enable="YES"
>> #firewall_script="/etc/..."

да пусть закоменчено, к делу это не относится грузится скрипт с установки фряхи
> а вот то что реально нужно, почему-то закоменчено
> поставьте
> firewall_type="OPEN"
> и будет вам "щасте"

для чего? задача стоит не открыть фаер для всего и закрывать от того что не нужно, а наоборот, открыть то что надо..


"ipfw рестарт интерфейса при изменении правил"
Отправлено михалыч , 10-Окт-13 15:49 
> это базовый конфиг, etc/rc.firewall

Не верю!

> загадка этой записи пока не ясно, на этой тестовой машине работает только
> два человека) ни один из них говорит не добавлял..

Не сознаются, партизаны. Пытать пробовал?

> да пусть закоменчено, к делу это не относится грузится скрипт с установки фряхи

относится, ещё как! подумай, а что она грузит и откуда берёт?

> для чего? задача стоит не открыть фаер для всего и закрывать от
> того что не нужно, а наоборот, открыть то что надо..

Да это понятно, для теста просил.
А после этого, советую написать СВОИ правила и грузить их.


"ipfw рестарт интерфейса при изменении правил"
Отправлено Pahanivo , 10-Окт-13 15:43 
>> ifconfig_lo0="inet 127.0.0.1 netmask 255.0.0.0 broadcast 127.255.255.255"

не принципиально

> firewall_type="OPEN"
> и будет вам "щасте"

ну дак это просто выбош шаблона правил в rc.firewall - какая разница подтянуты правила с шаблона или вбиты ручками?


"ipfw рестарт интерфейса при изменении правил"
Отправлено Pahanivo , 10-Окт-13 15:15 
1) смушает что в ifconfig к de0 не привязывается inet6 ....
2) узел недоступен - а в этот момент с консоли ed0 lo0 пингуются?

"ipfw рестарт интерфейса при изменении правил"
Отправлено jaged , 10-Окт-13 15:44 
> 1) смушает что в ifconfig к de0 не привязывается inet6 ....
> 2) узел недоступен - а в этот момент с консоли ed0 lo0
> пингуются?

пингуются )


"ipfw рестарт интерфейса при изменении правил"
Отправлено Pahanivo , 10-Окт-13 15:56 
>> 1) смушает что в ifconfig к de0 не привязывается inet6 ....
>> 2) узел недоступен - а в этот момент с консоли ed0 lo0
>> пингуются?
> пингуются )

хм те сам то интерфейс не подает получается .... антиресно


"ipfw рестарт интерфейса при изменении правил"
Отправлено jaged , 10-Окт-13 16:06 
>>> 1) смушает что в ifconfig к de0 не привязывается inet6 ....
>>> 2) узел недоступен - а в этот момент с консоли ed0 lo0
>>> пингуются?
>> пингуются )
> хм те сам то интерфейс не подает получается .... антиресно

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


"ipfw рестарт интерфейса при изменении правил"
Отправлено Pahanivo , 10-Окт-13 16:18 
>>>> 1) смушает что в ifconfig к de0 не привязывается inet6 ....
>>>> 2) узел недоступен - а в этот момент с консоли ed0 lo0
>>>> пингуются?
>>> пингуются )
>> хм те сам то интерфейс не подает получается .... антиресно
> доступ появляется так же, если после ввода разрешающих правил пингануть что-то либо,
> чтоб пакет вышел с интерфейса, "самопинг" не открывает доступ.

00100 128 42274 allow ip from any to any via lo0
00200   0     0 deny ip from any to 127.0.0.0/8
00300   0     0 deny ip from 127.0.0.0/8 to any
00400   0     0 deny ip from any to ::1
00500   0     0 deny ip from ::1 to any
00600   0     0 allow ipv6-icmp from :: to ff02::/16
00700   0     0 allow ipv6-icmp from fe80::/10 to fe80::/10
00800   0     0 allow ipv6-icmp from fe80::/10 to ff02::/16
00900   0     0 allow ipv6-icmp from any to any ip6 icmp6types 1
01000   0     0 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
65535  54  3616 deny ip from any to any

мне вот тута подумалось - что вы товарисчь "маленько" пизд^W привираете .....
у вас в правилах либо лупбек срабатывает (да и бог с ним), либо дефолтное deny. о каком хождении пакетов вообще речь??? как не ходили так и не ходят )))


"ipfw рестарт интерфейса при изменении правил"
Отправлено михалыч , 10-Окт-13 16:24 
> либо дефолтное deny. о каком хождении пакетов вообще речь??? как не
> ходили так и не ходят )))

Дык, конечно! Об чём и речь!
Он же ж сам и говорит, пока не пнеш (не пинганеш) - не полетит!
Почему я и просил протестить OPEN, ибо по дефолту, без пересборки ядра, тип - "закрытый брандмауэр".


"ipfw рестарт интерфейса при изменении правил"
Отправлено jaged , 10-Окт-13 16:40 
>> либо дефолтное deny. о каком хождении пакетов вообще речь??? как не
>> ходили так и не ходят )))
> Дык, конечно! Об чём и речь!
> Он же ж сам и говорит, пока не пнеш (не пинганеш) -
> не полетит!
> Почему я и просил протестить OPEN, ибо по дефолту, без пересборки ядра,
> тип - "закрытый брандмауэр".

проверил, с ОПЕН все ок, доступен без проблем после ребута.
ввожу запрещающее, конект лост.

а вот если закрытый тип по умолчанию, вводишь разрешающее и толку 0, пока не пинганешь внешнее что либо. :(

конечно вариант решения поставить пинг в конец правил, но это костыль..


"ipfw рестарт интерфейса при изменении правил"
Отправлено jaged , 10-Окт-13 16:37 
>[оверквотинг удален]
> fe80::/10 to ff02::/16
> 00900   0     0 allow ipv6-icmp from
> any to any ip6 icmp6types 1
> 01000   0     0 allow ipv6-icmp from
> any to any ip6 icmp6types 2,135,136
> 65535  54  3616 deny ip from any to any
> мне вот тута подумалось - что вы товарисчь "маленько" пизд^W привираете .....
> у вас в правилах либо лупбек срабатывает (да и бог с ним),
> либо дефолтное deny. о каком хождении пакетов вообще речь??? как не
> ходили так и не ходят )))

привираю в чем, простите?


"ipfw рестарт интерфейса при изменении правил"
Отправлено михалыч , 10-Окт-13 16:44 
Вот смотрите, что происходит:
ядро вы не трогали, следствие => по дефолту последнее правило 65535 deny ip from any to any
в ipfw list правил относящихся к вашему интерфейсу de0 НЕТ!
(Подозреваю, что отсюда растут ноги появления строки с lo0 в rc.conf )
Как и куда пакеты вылетят? В никуда.
Вы добавляете 10 и 11 правила
ipfw add 10 allow all from any to me via de0
ipfw add 11 allow all from me to any via de0

UP/DOWN заставляет систему заново переинициализировать сетевой интерфейс.

ЗЫ Какой пинг добавлять в конце? Вы что?
Я ж вам выше советовал - настрогайте СВОИ правила. И все будет в шоколаде.


"ipfw рестарт интерфейса при изменении правил"
Отправлено jaged , 10-Окт-13 16:54 
> Вот смотрите, что происходит:
> ядро вы не трогали, следствие => по дефолту последнее правило 65535 deny
> ip from any to any
> в ipfw list правил относящихся к вашему интерфейсу de0 НЕТ!
> (Подозреваю, что отсюда растут ноги появления строки с lo0 в rc.conf )
> Как и куда пакеты вылетят? В никуда.
> Вы добавляете 10 и 11 правила
> ipfw add 10 allow all from any to me via de0
> ipfw add 11 allow all from me to any via de0
> UP/DOWN заставляет систему заново переинициализировать сетевой интерфейс.

Хорошо, правил в изначально загруженном списке_правил, относясищхся к de0 нет, есть запрещающее правило для всего.(сюда же должен попасть и запрет для de0)
Но почему для начала работы разрешющих, в которых уже есть интерфейс de0, необходимо переинициализировать интерфейс?
из-за того что нет ни одного разрещающего правила для de0 при старте системы, ввод новых разрешающих, требуется положить и поднять de0  или пнуть с консоли пинг во внешку?


> ЗЫ Какой пинг добавлять в конце? Вы что?

ну эт совсем крайний случай :))
> Я ж вам выше советовал - настрогайте СВОИ правила. И все будет
> в шоколаде.

это сделаю, хотелось бы в корне проблемы разобраться.


"ipfw рестарт интерфейса при изменении правил"
Отправлено михалыч , 10-Окт-13 17:19 
> Но почему для начала работы разрешющих, в которых уже есть интерфейс de0,
> необходимо переинициализировать интерфейс?

А это потому, что система грузанулась без этого сетевого ифейса в фаере!
В файлик /etc/rc.firewall загляните.
Там и ответ.

############
# Define the firewall type in /etc/rc.conf.  Valid values are:
#   open        - will allow anyone in
#   client      - will try to protect just this machine
#   simple      - will try to protect a whole network
#   closed      - totally disables IP services except via lo0 interface
#   workstation - will try to protect just this machine using statefull
#                 firewalling. See below for rc.conf variables used
#   UNKNOWN     - disables the loading of firewall rules.
#   filename    - will load the rules in the given filename (full path required)
#
# For ``client'' and ``simple'' the entries below should be customized
# appropriately.


Определяем тип брандмауэра в /etc/rc.conf. Допустимые значения:
open (открытый) - позволит любому входить
client (клиент) - будет пытаться просто защитить эту машину
simple (простой) - будет пытаться защитить целую сеть
closed (закрытый) - полностью отключает IP-службу, кроме как через интерфейс lo0
рабочая станция (workstation) - будет защищать машину используя брандмауэр с учетом состояния соединения См. ниже переменные, используемые в rc.conf
НЕИЗВЕСТНЫЙ (UNKNOWN) - отключает загрузку правил брандмауэра.
Название файла (filename) - загружает правила из данного файла (полный путь обязателен)

Для "клиент" и "простой" записи ниже, должны быть настроены соответствующим образом.

Поскольку вы закомментировали  #firewall_script="/etc/..."
а тип фаера не указали, то загрузка происходит из /etc/defaults/rc.conf
в котором и указано
firewall_type="UNKNOWN"
см. выше => со всеми вытекающими отсюда.

Короче, в оконцовке, можете поставить себе
firewall_type="CLIENT"


"ipfw рестарт интерфейса при изменении правил"
Отправлено jaged , 10-Окт-13 17:23 
>[оверквотинг удален]
> НЕИЗВЕСТНЫЙ (UNKNOWN) - отключает загрузку правил брандмауэра.
> Название файла (filename) - загружает правила из данного файла (полный путь обязателен)
> Для "клиент" и "простой" записи ниже, должны быть настроены соответствующим образом.
> Поскольку вы закомментировали  #firewall_script="/etc/..."
> а тип фаера не указали, то загрузка происходит из /etc/defaults/rc.conf
> в котором и указано
> firewall_type="UNKNOWN"
> см. выше => со всеми вытекающими отсюда.
> Короче, в оконцовке, можете поставить себе
> firewall_type="CLIENT"

СПАСИБО!


"ipfw рестарт интерфейса при изменении правил"
Отправлено mr_gfd , 10-Окт-13 20:58 
echo 'net.inet.ip.fw.default_to_accept=1' >> /boot/loader.conf && shutdown -r now

"ipfw рестарт интерфейса при изменении правил"
Отправлено Pahanivo , 11-Окт-13 07:43 
> echo 'net.inet.ip.fw.default_to_accept=1' >> /boot/loader.conf && shutdown -r now

это не решит проблемы не понимания и неумения состалять правила


"ipfw рестарт интерфейса при изменении правил"
Отправлено mr_gfd , 11-Окт-13 12:16 
>> echo 'net.inet.ip.fw.default_to_accept=1' >> /boot/loader.conf && shutdown -r now
> это не решит проблемы не понимания и неумения состалять правила

Не могу не согласиться.


"ipfw рестарт интерфейса при изменении правил"
Отправлено jaged , 11-Окт-13 16:14 
>> echo 'net.inet.ip.fw.default_to_accept=1' >> /boot/loader.conf && shutdown -r now
> это не решит проблемы не понимания и неумения состалять правила

понимание и умение есть) но ни в одном файрволе не видел подобной схемы инициализации фаера.


"ipfw рестарт интерфейса при изменении правил"
Отправлено Pahanivo , 14-Окт-13 06:53 
>>> echo 'net.inet.ip.fw.default_to_accept=1' >> /boot/loader.conf && shutdown -r now
>> это не решит проблемы не понимания и неумения состалять правила
> понимание и умение есть)

это утверждение оспорено в постах выше
> но ни в одном файрволе не видел подобной
> схемы инициализации фаера.

нууу тут кагбэ ручки виноваты, а не система ....