Уважаемые коллеги!Столкнуся с такой проблемой: есть корпоративный веб сервер в моей локальной сети, к нему организован доступ извне. Я хочу ограничивать доступ к нему по 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, но они в обычных правилах не поддерживаются... У кого-нибудь есть идеи?
> ${fwcmd} add 100 allow tcp from ${users} to 192.168.1.50 80
>via rl0 in
>Логично было бы сделать
>через table, но они в обычных правилах не поддерживаются... У кого-нибудь
>есть идеи?А в чём "необычность" данного правила, можно узнать?
Если у вас ipfw именно 2, то table можно использовать везде, где хочется. Что конкретно у вас не получается при использовании таблиц?
>А в чём "необычность" данного правила, можно узнать?
>Если у вас ipfw именно 2, то table можно использовать везде, где
>хочется. Что конкретно у вас не получается при использовании таблиц?Ну я имею в виду где действия accept, pass, drop, deny. Вот как при таких правилах использовать таблицу?
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
Помогло, спасибо большое! А почему надо в правиле table в кавычки ставить? В мане показано без них, поэтому и не ставилась таблица...
>Помогло, спасибо большое! А почему надо в правиле table в кавычки ставить?
>В мане показано без них, поэтому и не ставилась таблица...Можно и без них, достаточно было заэкранировать символы скобок.
Это метасимвол, и shell-оболочка может воспринять его по-своему.