Author Topic: Правило в ipfw  (Read 5488 times)

0 Members and 2 Guests are viewing this topic.

Offline -anton-

  • Jr. Member
  • **
  • Posts: 55
  • Karma: +0/-0
    • http://
Правило в ipfw
« 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}
просто проскакивает правило и переходит на другое, подскажите в чем косяк???

Offline -anton-

  • Jr. Member
  • **
  • Posts: 55
  • Karma: +0/-0
    • http://
Правило в ipfw
« Reply #1 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}

Offline Unit

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1263
  • Karma: +9/-1
Правило в ipfw
« Reply #2 on: March 27, 2006, 15:35:52 »
А разве не должно быть вместо pass allow? :blink:

Offline -anton-

  • Jr. Member
  • **
  • Posts: 55
  • Karma: +0/-0
    • http://
Правило в ipfw
« Reply #3 on: March 27, 2006, 15:40:13 »
Quote
А разве не должно быть вместо pass allow? :blink:
[snapback]8427[/snapback]
Я где-то читал, что это "синонимы"

Offline Krueger

  • Full Member
  • ***
  • Posts: 195
  • Karma: +0/-0
    • http://www.zaonsv.ru
Правило в ipfw
« Reply #4 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, потому как указан номер порта.

Offline Krueger

  • Full Member
  • ***
  • Posts: 195
  • Karma: +0/-0
    • http://www.zaonsv.ru
Правило в ipfw
« Reply #5 on: March 28, 2006, 15:05:51 »
ipfw add pass tcp from ${net} to any 80
а в чём проблема? что значит перескакивает? что надо, чтобы выполнялось?
вполне корректное правило.
« Last Edit: March 28, 2006, 15:07:37 by Krueger »

Offline -anton-

  • Jr. Member
  • **
  • Posts: 55
  • Karma: +0/-0
    • http://
Правило в ipfw
« Reply #6 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
если уменьшить длинну строки, то всё проходит нормально. Собственно хочется запихать всю строку. Как быть???

Offline Krueger

  • Full Member
  • ***
  • Posts: 195
  • Karma: +0/-0
    • http://www.zaonsv.ru
Правило в ipfw
« Reply #7 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

Offline -anton-

  • Jr. Member
  • **
  • Posts: 55
  • Karma: +0/-0
    • http://
Правило в ipfw
« Reply #8 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: но дело в том, что собранная конструкция, у меня, не позволяет мне использовать несколько правил подряд, потому-то и встал вопрос, запихать всё в одну строку.

Offline nuclight

  • Full Member
  • ***
  • Posts: 207
  • Karma: +1/-2
    • http://antigreen.org
Правило в ipfw
« Reply #9 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}
WBR, Nuclear Lightning
[FreeBSD][Давить зелёных]

Offline Krueger

  • Full Member
  • ***
  • Posts: 195
  • Karma: +0/-0
    • http://www.zaonsv.ru
Правило в ipfw
« Reply #10 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}