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

Исходное сообщение
"FreeBSD 8.2 + IPFW + NAT"

Отправлено Gaidamak , 21-Апр-11 15:56 
Проапгрейдился с 8.1 до 8.2. Из rc.firewall перестали грузиться правила, завязанные на nat. Остальные правила грузятся. Прооверял на дефолтном rc.firewall - та же песня. Изматерился, исплевался, пока не нашел удивительный выход, на месте /etc/rc.firewall оставил заглушку, а настоящий rc.firewall грузится отдельным скриптом из /usr/local/etc/rc.d
Понимаю, что это до безобразия криво, но это работает.  Нет вообще никаких мыслей на тему где ковырять.

Содержание

Сообщения в этом обсуждении
"FreeBSD 8.2 + IPFW + NAT"
Отправлено Сергей , 21-Апр-11 16:27 
rc.conf в студию


"FreeBSD 8.2 + IPFW + NAT"
Отправлено Gaidamak , 22-Апр-11 10:10 
> rc.conf в студию

firewall_enable="YES"
firewall_type="simple"
firewall_quiet="NO"
firewall_logging="YES"

natd_enable="YES"
natd_flags=""
natd_interface="em1"

firewall_simple_oif="em1"
firewall_simple_onet="217.25.xxx.xxx/29"

firewall_simple_iif="em0"
firewall_simple_inet="192.168.10.0/24"


все абсолютно стандартно.

но весь прикол в том, что вот эти правила из rc.firewall

case ${natd_enable} in
        [Yy][Ee][Ss])
         if [ -n "${natd_interface}" ]; then
            ${fwcmd} add divert natd all from 192.168.10.128/25 to any via ${natd_interface}
            ${fwcmd} add divert natd all from any to ${onet} recv ${natd_interface}
                fi
                ;;
esac

не добавляются в процессе загрузки и, наоборот, добавляются, если скрипт выполнить вручную после загрузки.


"FreeBSD 8.2 + IPFW + NAT"
Отправлено gpl77 , 22-Апр-11 10:25 
> но весь прикол в том, что вот эти правила из rc.firewall

..
> не добавляются в процессе загрузки и, наоборот, добавляются, если скрипт выполнить вручную
> после загрузки.

похоже на изменение порядка обработки rc.d скриптов.
может покрутить rcorder


"FreeBSD 8.2 + IPFW + NAT"
Отправлено vityuk , 15-Дек-11 13:19 
>[оверквотинг удален]
> ${fwcmd} add divert natd all from 192.168.10.128/25 to any via ${natd_interface}
>            
> ${fwcmd} add divert natd all from any to ${onet} recv ${natd_interface}
>            
>     fi
>            
>     ;;
> esac
> не добавляются в процессе загрузки и, наоборот, добавляются, если скрипт выполнить вручную
> после загрузки.

У меня похожая ситуация. НО у меня при згрузке стандартного /etc/rc.firewall запускается скрипт, который сбрасывает стандартные правила и добавляет те что мне нужно.
При этом ТОЛЬКО правила divert не добавляет. Перезапускаю скрипт руками - все чудесно добавляется.
Есть варианты?


"FreeBSD 8.2 + IPFW + NAT"
Отправлено uasash2 , 21-Апр-11 23:57 
> Проапгрейдился с 8.1 до 8.2. Из rc.firewall перестали грузиться правила, завязанные на
> nat. Остальные правила грузятся. Прооверял на дефолтном rc.firewall - та же
> песня. Изматерился, исплевался, пока не нашел удивительный выход, на месте /etc/rc.firewall
> оставил заглушку, а настоящий rc.firewall грузится отдельным скриптом из /usr/local/etc/rc.d
> Понимаю, что это до безобразия криво, но это работает.  Нет вообще
> никаких мыслей на тему где ковырять.

в 8.2 начало нормально работать one_pass=1
посмотри sysctl |grep one_pass а так же прочитай про прохождение пакетов в ipfw



"FreeBSD 8.2 + IPFW + NAT"
Отправлено vityuk , 19-Дек-11 18:59 
> Проапгрейдился с 8.1 до 8.2. Из rc.firewall перестали грузиться правила, завязанные на
> nat. Остальные правила грузятся. Прооверял на дефолтном rc.firewall - та же
> песня. Изматерился, исплевался, пока не нашел удивительный выход, на месте /etc/rc.firewall
> оставил заглушку, а настоящий rc.firewall грузится отдельным скриптом из /usr/local/etc/rc.d
> Понимаю, что это до безобразия криво, но это работает.  Нет вообще
> никаких мыслей на тему где ковырять.

Добавь в ядро опцию:
options         IPDIVERT
И пересобери его.
Правила применяются до того как загружаются модули.