Страница 1 из 1

Ipfw - не получается настроить

Добавлено: 2008-08-31 10:51:52
Pez!
Приветствую камрады!

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

Скрипт с правилами:

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

hosting# cat /usr/local/etc/pez.ipfw.rules
#!/bin/sh

fwcmd="/sbin/ipfw"
if_i="rl0"
ks="keep state"

#Flush all rules to default
${fwcmd} -f flush

#Check state rules
${fwcmd} add check-state

#DNS query
${fwcmd} add allow tcp from any to 84.47.161.1 53 out via $if_i setup $ks
${fwcmd} add allow udp from any to 84.47.161.1 53 out via $if_i $ks
${fwcmd} add allow tcp from any to 84.47.161.1 53 in via $if_i setup $ks
${fwcmd} add allow udp from any to 84.47.161.1 53 in via $if_i $ks

#ssh access
${fwcmd} add allow tcp from 10.10.30.85 to me 22 in via $if_i setup $ks
${fwcmd} add allow tcp from 84.47.161.6 to me 22 in via $if_i setup $ks
${fwcmd} add allow tcp from 213.208.187.99 to me 22 in via $if_i setup $ks
${fwcmd} add allow tcp from 84.47.161.26 to me 22 in via $if_i setup $ks

#ping access
${fwcmd} add allow icmp from any to any out icmptype 8
${fwcmd} add allow icmp from any to any in  icmptype 0

#ftp access
${fwcmd} add allow tcp from any to any 20 via $if_i
${fwcmd} add allow tcp from any 20 to any via $if_i
${fwcmd} add allow tcp from any to any 21 via $if_i
${fwcmd} add allow tcp from any 21 to any via $if_i
${fwcmd} add allow tcp from any to me 35500-35600 via $if_i
${fwcmd} add allow tcp from me 35500-35600 to any via $if_i

#Apache access
${fwcmd} add allow tcp from any to any 80 via $if_i
${fwcmd} add allow tcp from any 80 to any via $if_i
${fwcmd} add allow tcp from any to any 443 via $if_i
${fwcmd} add allow tcp from any 443 to any via $if_i

#Allow all
${fwcmd} add allow all from any to any
после загрузки сервера действуют только следующие:

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

hosting# ipfw list
00100 check-state
00200 allow icmp from any to any out icmptypes 8
00300 allow icmp from any to any in icmptypes 0
00400 allow tcp from any to any dst-port 20 via rl0
00500 allow tcp from any 20 to any via rl0
00600 allow tcp from any to any dst-port 21 via rl0
00700 allow tcp from any 21 to any via rl0
00800 allow tcp from any to me dst-port 35500-35600 via rl0
00900 allow tcp from me 35500-35600 to any via rl0
01000 allow tcp from any to any dst-port 80 via rl0
01100 allow tcp from any 80 to any via rl0
01200 allow tcp from any to any dst-port 443 via rl0
01300 allow tcp from any 443 to any via rl0
01400 allow ip from any to any
65535 deny ip from any to any
Подскажите, пожалуйста, где мог ошибиться ?

Re: Ipfw - не получается настроить

Добавлено: 2008-08-31 10:54:27
Alex Keda
руками файрволл нормально грузиться?

Re: Ipfw - не получается настроить

Добавлено: 2008-08-31 11:13:39
dikens3

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

#ssh access
${fwcmd} add allow tcp from 10.10.30.85 to me 22 in via $if_i setup $ks
${fwcmd} add allow tcp from 84.47.161.6 to me 22 in via $if_i setup $ks
${fwcmd} add allow tcp from 213.208.187.99 to me 22 in via $if_i setup $ks
${fwcmd} add allow tcp from 84.47.161.26 to me 22 in via $if_i setup $ks
Правила, которые окончиваются на $ks не загружаются, этого не видно по полученному результату?
keep-state пишется через дефис.

Доступ можно сделать в одну строку:

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

${fwcmd} add allow tcp from 10.10.30.85,84.47.161.6,84.47.161.26,213.208.187.99 to me 22 in via $if_i setup $ks
И порты можно группировать:

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

${fwcmd} add allow tcp from any to any 20,21 via $if_i
Ниже вообще фиг пойми что. Мало того не опитимизировано, так ещё и написано с ошибками и работать абсолютно не будет. (первые 2 правила имею ввиду, которые и не нужны вовсе)

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

#DNS query
${fwcmd} add allow tcp from any to 84.47.161.1 53 out via $if_i setup $ks
${fwcmd} add allow udp from any to 84.47.161.1 53 out via $if_i $ks
${fwcmd} add allow tcp from any to 84.47.161.1 53 in via $if_i setup $ks
${fwcmd} add allow udp from any to 84.47.161.1 53 in via $if_i $ks
P.S. Забудь на время про keep-state(не используй его), и тебе проще понять будет firewall.

Re: Ipfw - не получается настроить

Добавлено: 2008-08-31 12:05:49
Pez!
dikens3, большое спасибо за помощь и разьяснения, буду еще тогда читать

Re: Ipfw - не получается настроить

Добавлено: 2008-08-31 18:06:54
LMik
вот кстати интересно, группировка в одну строку играет роль в скорости прохождения пакетов или нет?
Судя по акселерации при использовании таблиц разница очень велика, а запятые эти чего делают? Шо в коде пишут? :)

Re: Ipfw - не получается настроить

Добавлено: 2008-08-31 20:01:38
dikens3
LMik писал(а):вот кстати интересно, группировка в одну строку играет роль в скорости прохождения пакетов или нет?
Да, чем меньше правил, тем быстрее и самое важное - понятнее самому себе.
LMik писал(а):Судя по акселерации при использовании таблиц разница очень велика, а запятые эти чего делают? Шо в коде пишут? :)
Не понял я про какие запятые идёт речь.

Re: Ipfw - не получается настроить

Добавлено: 2008-08-31 20:12:47
LMik
dikens3 писал(а):Не понял я про какие запятые идёт речь.
Ну при перечислении ипов, портов, ифейсов и т.п в одном правиле.

Re: Ipfw - не получается настроить

Добавлено: 2008-08-31 20:39:29
dikens3
Ну при перечислении ипов, портов, ифейсов и т.п в одном правиле.
Запятые отделяют один IP-Адрес от другого. Тоже и про порты.

Re: Ipfw - не получается настроить

Добавлено: 2008-08-31 20:52:41
LMik
dikens3 писал(а):
Ну при перечислении ипов, портов, ифейсов и т.п в одном правиле.
Запятые отделяют один IP-Адрес от другого. Тоже и про порты.
:D ну так кто спорит?

Я спрашиваю на сколько они быстрее тех же таблиц? обработка портов и ифейсов через запятую аналогично...