Tomsk Sysadmins Forum

Unix => Администрирование => Topic started by: -anton- on March 27, 2006, 15:23:26

Title: Правило в ipfw
Post by: -anton- on March 27, 2006, 15:23:26
Подскажите плиз, почему не работает следующее правило
net="192.168.0.0/24"

ipfw add pass from ${net} to any 80
ipfw add pass from any 80 to ${net}
просто проскакивает правило и переходит на другое, подскажите в чем косяк???
Title: Правило в ipfw
Post by: -anton- on March 27, 2006, 15:32:38
ошибся ссори вот так:
ipfw add pass tcp from ${net} to any 80
ipfw add pass tcp from any 80 to ${net}
Title: Правило в ipfw
Post by: Unit on March 27, 2006, 15:35:52
А разве не должно быть вместо pass allow? :blink:
Title: Правило в ipfw
Post by: -anton- on March 27, 2006, 15:40:13
Quote
А разве не должно быть вместо pass allow? :blink:
[snapback]8427[/snapback]
Я где-то читал, что это "синонимы"
Title: Правило в ipfw
Post by: Krueger on March 28, 2006, 15:03:50
Quote
Я где-то читал, что это "синонимы"
[snapback]8430[/snapback]
в man pages наверное? :-)
ipfw add pass from ${net} to any 80
после действия (pass(allow), drop(deny), reject) должен быть указан тип протокола (all(ip), tcp, udp, icmp).
в твоём случае либо tcp, либо udp, потому как указан номер порта.
Title: Правило в ipfw
Post by: Krueger on March 28, 2006, 15:05:51
ipfw add pass tcp from ${net} to any 80
а в чём проблема? что значит перескакивает? что надо, чтобы выполнялось?
вполне корректное правило.
Title: Правило в ipfw
Post by: -anton- on March 28, 2006, 15:37:29
Все, проблемма решилась, сам ступил, дело было в том, что сначала завернул все пакеты на natd, а потом пытался взять адрес локальной сети:-(
Теперь появился другой вопросик, а какая длинна строки параметров, вот например:
${fwcmd} add deny all from ${Closed} to not ${nets} in via ${local_if}
если в nets перечислить ну скажем "дохрена" сетей(40), то выдаётся ошибка
getsockopt (IP_FW_ADD):Invalid argument
если уменьшить длинну строки, то всё проходит нормально. Собственно хочется запихать всю строку. Как быть???
Title: Правило в ipfw
Post by: Krueger on March 28, 2006, 15:56:24
Quote
если уменьшить длинну строки, то всё проходит нормально. Собственно хочется запихать всю строку. Как быть???
[snapback]8482[/snapback]
сделать несколько правил и записывать их приблизительно так:

Code: [Select]
nets=`cat /etc/tomsk.net`
for i in $nets
 do
  ${fwcmd} add 105 pass tcp from $i to ${ip}
 done
Title: Правило в ipfw
Post by: -anton- on March 29, 2006, 08:44:40
Quote
сделать несколько правил и записывать их приблизительно так:

Code: [Select]
nets=`cat /etc/tomsk.net`
for i in $nets
 do
  ${fwcmd} add 105 pass tcp from $i to ${ip}
 done
[snapback]8485[/snapback]

Красиво  :rolleyes: но дело в том, что собранная конструкция, у меня, не позволяет мне использовать несколько правил подряд, потому-то и встал вопрос, запихать всё в одну строку.
Title: Правило в ipfw
Post by: nuclight on April 02, 2006, 16:54:26
Quote
Красиво  :rolleyes: но дело в том, что собранная конструкция, у меня, не позволяет мне использовать несколько правил подряд, потому-то и встал вопрос, запихать всё в одну строку.
[snapback]8523[/snapback]

Использовать таблицы - man ipfw /table

Code: [Select]
nets=`cat /etc/tomsk.net`
for i in $nets
do
 ${fwcmd} table 10 add $i
done
${fwcmd} add 105 pass tcp from table(10) to ${ip}
Title: Правило в ipfw
Post by: Krueger on June 20, 2006, 12:32:21
Quote from: nuclight
Code: [Select]
nets=`cat /etc/tomsk.net`
for i in $nets
do
 ${fwcmd} table 10 add $i
done
${fwcmd} add 105 pass tcp from table(10) to ${ip}
Небольшое дополнение: при использовании в скриптах. и в некоторых оболочках может оказаться необходимым экранирование скобочек.
Code: [Select]
${fwcmd} add 105 pass tcp from 'table(10)' to ${ip}