Задать вопрос
@tramvay

Как ipfw (FreeBSD 10) назначить правила?

Всем здрасте.
Вот я чето не могу разобраться как заставить ipfw применять правила.
cat /etc/rc.conf

hostname="gate.corp10.un"
ifconfig_em0="DHCP"
ifconfig_em1="10.10.10.1/24"
gateway_enable="YES"
sshd_enable="YES"
moused_enable="YES"
ntpd_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="NO"

#keymap="ru.koi8-r.kbd"
scrnmap="koi8-r.shift"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"

firewall_enable="YES"
#firewall_nat_enable="YES"
firewall_type="/etc/ipfw.conf"
#firewall_logging="YES"
natd_enable="YES"
natd_interface="em0"
natd_flags=""


cat /etc/ipfw.conf
#!/bin/sh

FwCMD=`which ipfw`

#####Config#####

LanOut="em0"
LanIn="em1"

NetMask="24"
NetIn="10.10.10.0"

#####\Config#####

IpOut=`ifconfig ${LanOut} | grep inet | cut -d " " -f 2`
IpIn=`ifconfig ${LanIn} | grep inet | cut -d " " -f 2`



${FwCMD} -f flush

${FwCMD} add check-state

###LAN###
${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}


###LAN### 
${FwCMD} add allow tcp from any to any via ${LanOut}
${FwCMD} add allow udp from any to any via ${LanOut}
${FwCMD} add allow icmp from any to any via ${LanOut}


##deny all packages ##
${FwCMD} add allow ip from any to any


Если запускаю руками #sh /etc/ipfw.conf все OK.
а если система сама загружается то отваливается ssh (все порты закрыты).
  • Вопрос задан
  • 2984 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
RicoX
@RicoX
Ушел на http://ru.stackoverflow.com/
На первый взгляд все правильно, единственное попробуйте в строках
IpOut=`ifconfig ${LanOut} | grep inet | cut -d " " -f 2`
IpIn=`ifconfig ${LanIn} | grep inet | cut -d " " -f 2`

указать полные пути к ifconfig, grep и cut, либо поместите PATH в начале скрипта.
Ответ написан
Комментировать
kekoz
@kekoz
Дорогой трамвай, а с чего ты решил, что файл конфигурации ipfw является sh-скриптом? Сообщаю — он таковым не является. Он является скриптом самого ipfw. Таким образом, в нём могут содержаться только команды ipfw.

Кусочек из /etc/rc.firewall (где твой firewall_type="/etc/ipfw.conf" и "вызывается"):
*)
        if [ -r "${firewall_type}" ]; then
                ${fwcmd} ${firewall_flags} ${firewall_type}
        fi
        ;;
Ответ написан
Комментировать
rad1us
@rad1us
Проблема в этой строке - firewall_type="/etc/ipfw.conf"

Должно быть firewall_script="/etc/ipfw.conf"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы