В общем настраиваю IPFW на фришке 6.1 в небольшой локальной сети. Интернет идет через адсл модем, внутренняя сеть 192.168.2.0/24, внешняя сеть 192.168.1.0/30. Тип фаервола: что не разрешено, то запрещено.
Столкнулся с такой проблемой: если явно указывать адрес, допустим в правиле 6100, 6200 нужно дать доступ только адресу 192.168.2.10, то правило вступает в силу, но не действует. Работает, только если указать from any to any.
#!/bin/sh -
[Mm][Yy]
## variable
fwcmd="/sbin/ipfw -q"
# internet interface
oif="rl1"
onet="192.168.1.0/30"
oip="192.168.1.2"
# localnet interface
iif="rl0"
inet="192.168.2.0/24"
iip="192.168.2.99"
# drop old rules
${fwcmd} -f flush
# local trafic
${fwcmd} add 50 divert natd ip from any to any via ${oif}
${fwcmd} add 100 pass all from any to any via lo0
${fwcmd} add 200 deny all from any to 127.0.0.0/8
${fwcmd} add 300 deny ip from 127.0.0.0/8 to any
# ICMP
${fwcmd} add 1100 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${fwcmd} add 1200 allow icmp from any to any
# SSH
${fwcmd} add 2100 allow tcp from ${inet} to me 22
${fwcmd} add 2200 allow tcp from me 22 to ${inet}
# DNS
${fwcmd} add 3100 allow udp from any to any 53
${fwcmd} add 3200 allow udp from any 53 to any
${fwcmd} add 3300 allow tcp from any to any 53
${fwcmd} add 3400 allow tcp from any 53 to any
# Web
${fwcmd} add 4100 allow tcp from any to any 80,443
${fwcmd} add 4200 allow tcp from any 80,443 to any
${fwcmd} add 5100 allow tcp from any to any 25,110
${fwcmd} add 5200 allow tcp from any 25,110 to any
# ICQ
${fwcmd} add 6100 allow tcp from any to any 5190
${fwcmd} add 6200 allow tcp from any 5190 to any
>В общем настраиваю IPFW на фришке 6.1 в небольшой локальной сети. Интернет
>идет через адсл модем, внутренняя сеть 192.168.2.0/24, внешняя сеть 192.168.1.0/30. Тип
>фаервола: что не разрешено, то запрещено.
>Столкнулся с такой проблемой: если явно указывать адрес, допустим в правиле 6100,
>6200 нужно дать доступ только адресу 192.168.2.10, то правило вступает в
>силу, но не действует. Работает, только если указать from any to
>any.
># ICQ
>${fwcmd} add 6100 allow tcp from any to any 5190
>${fwcmd} add 6200 allow tcp from any 5190 to anyА клиент ICQ настроен на порт 5190?
${fwcmd} add 6300 deny log ip from any to any
>А клиент ICQ настроен на порт 5190?
>${fwcmd} add 6300 deny log ip from any to anyДа, про асю я для примера сказал, любое правило если 'from any' поменять на конкретный адрес локальной сети не работает, то есть правило есть в ipfw list, но оно не действует
>>А клиент ICQ настроен на порт 5190?
>>${fwcmd} add 6300 deny log ip from any to any
>
>Да, про асю я для примера сказал, любое правило если 'from any'
>поменять на конкретный адрес локальной сети не работает, то есть правило
>есть в ipfw list, но оно не действуетipfw sh
счетчики пакетов увеличиваются для таких правил?
а не пробовали вот так?
${fwcmd} add 55 check-state
...........................
${fwcmd} add 6100 allow tcp from 192.168.2.10 to any 5190 keep-state
правило 6200 при этом не нужно.
>ipfw sh
>счетчики пакетов увеличиваются для таких правил?Проверил счетчик, видно, что запрос идет, но ответа нету
>а не пробовали вот так?
>${fwcmd} add 55 check-state
>...........................
>${fwcmd} add 6100 allow tcp from 192.168.2.10 to any 5190 keep-state
>правило 6200 при этом не нужно.Попробовал, все равно не хочет
... может у меня что-то с адресацией в сети.. незнаю даже что и думать..
>>ipfw sh
>>счетчики пакетов увеличиваются для таких правил?
>
>Проверил счетчик, видно, что запрос идет, но ответа нетуВ самом конце правил ipfw
${fwcmd} add log deny ip from any to any
и смотрите лог.Лучше 50 правило слелать после 300:
${fwcmd} add 400 divert natd ip from any to any via ${oif}
>... может у меня что-то с адресацией в сети.. незнаю даже что
>и думать..:-) . Sorry не телепат.
>[оверквотинг удален]
>oif="rl1"
>onet="192.168.1.0/30"
>oip="192.168.1.2"
># localnet interface
>iif="rl0"
>inet="192.168.2.0/24"
>iip="192.168.2.99"
>${fwcmd} add 50 divert natd ip from any to any via ${oif}
>${fwcmd} add 6100 allow tcp from any to any 5190
>${fwcmd} add 6200 allow tcp from any 5190 to any
А доберется ли пакет с адресом отправителя 192.168.2.х до правила 6100 после правила 50? Или всё-таки отправителем будет уже 192.168.1.2?
>>${fwcmd} add 50 divert natd ip from any to any via ${oif}Торможу - "via" не дочитал... :(
Мысли в слух:
пришёл пакет от 192.168.2.х на iif: правило 50 не срабатывает, правило 6100 сработало - пошёл пакет дальше. Проходит через oif: правило 50 сработало - пошёл дальше пакет, как от 192.168.1.2 и благополучно "продолбил" все правила, вплоть до 65535, там и умер. Не так? Вслух думаю просто...
Простите, может не в тему, но я ищу для своего форума работающий стабильно хостинг.
Вроде Ваш сайт всегда доступен. Если они Вас удовлетворяют, то не дадите ли ссылку на Вашего хостера (мне подойдет и партнерская).
Заранее спасибо