Добрый день.
Столкнулся со странным, на мой взгляд, поведением ipfw (FreeBSD 8.4 ядро стандартное),
при изменении правил - добавления, правки, для того чтоб они заработали приходится делать рестарт(ifconfig de0 down/up) интерфейса... это болезнь, глюк или так должно быть?
> Добрый день.
> Столкнулся со странным, на мой взгляд, поведением ipfw (FreeBSD 8.4 ядро стандартное),
> при изменении правил - добавления, правки, для того чтоб они заработали приходится
> делать рестарт(ifconfig de0 down/up) интерфейса... это болезнь, глюк или так должно
> быть?так быть недОлжно, пердположу что виноваты ... руки
может для начала написать что и как делается?
>> Добрый день.
>> Столкнулся со странным, на мой взгляд, поведением 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 и хост доступен.
>[оверквотинг удален]
> 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 и хост доступен.
в втудию:
1) ifconfig
2) cat /etc/rc.conf
3) ipfw -a list (до внесения изменений)
4) команды внесения правил
5) ipfw -a list (после внесения изменений)
> в втудию:
> 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 any4 -
ipfw add 10 allow all from any to me via de0
ipfw add 11 allow all from me to any via de05 -
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
узел доступен
>[оверквотинг удален]
> 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"
и будет вам "щасте"
>[оверквотинг удален]
>> 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"
> и будет вам "щасте"для чего? задача стоит не открыть фаер для всего и закрывать от того что не нужно, а наоборот, открыть то что надо..
> это базовый конфиг, etc/rc.firewallНе верю!
> загадка этой записи пока не ясно, на этой тестовой машине работает только
> два человека) ни один из них говорит не добавлял..Не сознаются, партизаны. Пытать пробовал?
> да пусть закоменчено, к делу это не относится грузится скрипт с установки фряхи
относится, ещё как! подумай, а что она грузит и откуда берёт?
> для чего? задача стоит не открыть фаер для всего и закрывать от
> того что не нужно, а наоборот, открыть то что надо..Да это понятно, для теста просил.
А после этого, советую написать СВОИ правила и грузить их.
>> ifconfig_lo0="inet 127.0.0.1 netmask 255.0.0.0 broadcast 127.255.255.255"не принципиально
> firewall_type="OPEN"
> и будет вам "щасте"ну дак это просто выбош шаблона правил в rc.firewall - какая разница подтянуты правила с шаблона или вбиты ручками?
1) смушает что в ifconfig к de0 не привязывается inet6 ....
2) узел недоступен - а в этот момент с консоли ed0 lo0 пингуются?
> 1) смушает что в ifconfig к de0 не привязывается inet6 ....
> 2) узел недоступен - а в этот момент с консоли ed0 lo0
> пингуются?пингуются )
>> 1) смушает что в ifconfig к de0 не привязывается inet6 ....
>> 2) узел недоступен - а в этот момент с консоли ed0 lo0
>> пингуются?
> пингуются )хм те сам то интерфейс не подает получается .... антиресно
>>> 1) смушает что в ifconfig к de0 не привязывается inet6 ....
>>> 2) узел недоступен - а в этот момент с консоли ed0 lo0
>>> пингуются?
>> пингуются )
> хм те сам то интерфейс не подает получается .... антиреснодоступ появляется так же, если после ввода разрешающих правил пингануть что-то либо, чтоб пакет вышел с интерфейса, "самопинг" не открывает доступ.
>>>> 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. о каком хождении пакетов вообще речь??? как не ходили так и не ходят )))
> либо дефолтное deny. о каком хождении пакетов вообще речь??? как не
> ходили так и не ходят )))Дык, конечно! Об чём и речь!
Он же ж сам и говорит, пока не пнеш (не пинганеш) - не полетит!
Почему я и просил протестить OPEN, ибо по дефолту, без пересборки ядра, тип - "закрытый брандмауэр".
>> либо дефолтное deny. о каком хождении пакетов вообще речь??? как не
>> ходили так и не ходят )))
> Дык, конечно! Об чём и речь!
> Он же ж сам и говорит, пока не пнеш (не пинганеш) -
> не полетит!
> Почему я и просил протестить OPEN, ибо по дефолту, без пересборки ядра,
> тип - "закрытый брандмауэр".проверил, с ОПЕН все ок, доступен без проблем после ребута.
ввожу запрещающее, конект лост.а вот если закрытый тип по умолчанию, вводишь разрешающее и толку 0, пока не пинганешь внешнее что либо. :(
конечно вариант решения поставить пинг в конец правил, но это костыль..
>[оверквотинг удален]
> 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. о каком хождении пакетов вообще речь??? как не
> ходили так и не ходят )))привираю в чем, простите?
Вот смотрите, что происходит:
ядро вы не трогали, следствие => по дефолту последнее правило 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 de0UP/DOWN заставляет систему заново переинициализировать сетевой интерфейс.
ЗЫ Какой пинг добавлять в конце? Вы что?
Я ж вам выше советовал - настрогайте СВОИ правила. И все будет в шоколаде.
> Вот смотрите, что происходит:
> ядро вы не трогали, следствие => по дефолту последнее правило 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 или пнуть с консоли пинг во внешку?
> ЗЫ Какой пинг добавлять в конце? Вы что?ну эт совсем крайний случай :))
> Я ж вам выше советовал - настрогайте СВОИ правила. И все будет
> в шоколаде.это сделаю, хотелось бы в корне проблемы разобраться.
> Но почему для начала работы разрешющих, в которых уже есть интерфейс 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"
>[оверквотинг удален]
> НЕИЗВЕСТНЫЙ (UNKNOWN) - отключает загрузку правил брандмауэра.
> Название файла (filename) - загружает правила из данного файла (полный путь обязателен)
> Для "клиент" и "простой" записи ниже, должны быть настроены соответствующим образом.
> Поскольку вы закомментировали #firewall_script="/etc/..."
> а тип фаера не указали, то загрузка происходит из /etc/defaults/rc.conf
> в котором и указано
> firewall_type="UNKNOWN"
> см. выше => со всеми вытекающими отсюда.
> Короче, в оконцовке, можете поставить себе
> firewall_type="CLIENT"СПАСИБО!
echo 'net.inet.ip.fw.default_to_accept=1' >> /boot/loader.conf && shutdown -r now
> echo 'net.inet.ip.fw.default_to_accept=1' >> /boot/loader.conf && shutdown -r nowэто не решит проблемы не понимания и неумения состалять правила
>> echo 'net.inet.ip.fw.default_to_accept=1' >> /boot/loader.conf && shutdown -r now
> это не решит проблемы не понимания и неумения состалять правилаНе могу не согласиться.
>> echo 'net.inet.ip.fw.default_to_accept=1' >> /boot/loader.conf && shutdown -r now
> это не решит проблемы не понимания и неумения состалять правилапонимание и умение есть) но ни в одном файрволе не видел подобной схемы инициализации фаера.
>>> echo 'net.inet.ip.fw.default_to_accept=1' >> /boot/loader.conf && shutdown -r now
>> это не решит проблемы не понимания и неумения состалять правила
> понимание и умение есть)это утверждение оспорено в постах выше
> но ни в одном файрволе не видел подобной
> схемы инициализации фаера.нууу тут кагбэ ручки виноваты, а не система ....