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

Исходное сообщение
"Список ip адресов в правилах ipfw2"

Отправлено SKazurov , 12-Фев-08 10:06 
Уважаемые коллеги!

Столкнуся с такой проблемой: есть корпоративный веб сервер в моей локальной сети, к нему организован доступ извне. Я хочу ограничивать доступ к нему по ip адресу конкретного пользователя. Для этого создал список вида
  
  fwcmd="/sbin/ipfw -q"

  users="ip1,ip2,..,ipN"

ну и, соответственно, в фильтрах задаю так:

  ${fwcmd} add 100 allow tcp from ${users} to 192.168.1.50 80 via rl0 in

Вот. А когда число элементов в списке users стало превышать 15, то адреса перестали добавляться с такой ошибкой:

  ipfw: opcode 2 size 33 wrong
  ipfw: getsockopt(IP_FW_ADD): Invalid argument
  ipfw: opcode 2 size 33 wrong
  ipfw: getsockopt(IP_FW_ADD): Invalid argument
  ipfw: opcode 6 size 33 wrong
  ipfw: getsockopt(IP_FW_ADD): Invalid argument
  ipfw: opcode 6 size 33 wrong
  ipfw: getsockopt(IP_FW_ADD): Invalid argument

В чём может быть дело? Почему именно 15? Логично было бы сделать через table, но они в обычных правилах не поддерживаются... У кого-нибудь есть идеи?


Содержание

Сообщения в этом обсуждении
"Список ip адресов в правилах ipfw2"
Отправлено MOV_ah , 12-Фев-08 14:34 
>  ${fwcmd} add 100 allow tcp from ${users} to 192.168.1.50 80
>via rl0 in
>Логично было бы сделать
>через table, но они в обычных правилах не поддерживаются... У кого-нибудь
>есть идеи?

А в чём "необычность" данного правила, можно узнать?
Если у вас ipfw именно 2, то table можно использовать везде, где хочется. Что конкретно у вас не получается при использовании таблиц?


"Список ip адресов в правилах ipfw2"
Отправлено SKazurov , 12-Фев-08 16:30 
>А в чём "необычность" данного правила, можно узнать?
>Если у вас ipfw именно 2, то table можно использовать везде, где
>хочется. Что конкретно у вас не получается при использовании таблиц?

Ну я имею в виду где действия accept, pass, drop, deny. Вот как при таких правилах использовать таблицу?


"Список ip адресов в правилах ipfw2"
Отправлено Wital , 13-Фев-08 01:34 
fwcmd="/sbin/ipfw -q add"
fwcmd1="/sbin/ipfw -q"

# Таблица локальных DNS серверов
${fwcmd1} table 2 flush
${fwcmd1} table 2 add 192.168.0.x
${fwcmd1} table 2 add 192.168.0.x
${fwcmd1} table 2 add 192.168.0.x
${fwcmd1} table 2 add 192.168.0.x

....

${fwcmd} 5950 allow tcp from ${lan_ip} to "table(2)" 53 out via ${lan_if} keep-state


"Список ip адресов в правилах ipfw2"
Отправлено SKazurov , 13-Фев-08 10:34 
Помогло, спасибо большое! А почему надо в правиле table в кавычки ставить? В мане показано без них, поэтому и не ставилась таблица...



"Список ip адресов в правилах ipfw2"
Отправлено MOV_ah , 13-Фев-08 10:39 
>Помогло, спасибо большое! А почему надо в правиле table в кавычки ставить?
>В мане показано без них, поэтому и не ставилась таблица...

Можно и без них, достаточно было заэкранировать символы скобок.
Это метасимвол, и shell-оболочка может воспринять его по-своему.