Укажите пожалуйста где ошибка в правилах.
rl0 - Внешний интерфейс.
rl1 - Внутренний.
#!/bin/sh/sbin/ipfw -f flush
/sbin/ipfw add check-state
/sbin/ipfw add allow ip from any to any via lo0
/sbin/ipfw/add divert natd ip from 192.168.0.1/24 to any out via rl0
/sbin/ipfw add devirt natd ip from any to 195.195.195.195 in via rl0/sbin/ipfw add allow ip from me to any keep-state
/sbin/ipfw add allow ip from any to any via rl1
/sbin/ipfw add deny ip from any to anyНифига не работает.
>Укажите пожалуйста где ошибка в правилах.
>rl0 - Внешний интерфейс.
>rl1 - Внутренний.
>#!/bin/sh
>
>/sbin/ipfw -f flush
>/sbin/ipfw add check-state
>/sbin/ipfw add allow ip from any to any via lo0
>/sbin/ipfw/add divert natd ip from 192.168.0.1/24 to any out via rl0
>/sbin/ipfw add devirt natd ip from any to 195.195.195.195 in via rl0
>
>
>/sbin/ipfw add allow ip from me to any keep-state
>/sbin/ipfw add allow ip from any to any via rl1
>/sbin/ipfw add deny ip from any to any
>
>Нифига не работает.нат поднят?
ipfw divert natd ip from any to any
вместо 3 и 4
natd поднят. Интерфейс внешний указан. divert одной строкой тоже пробовал на пашет.
>natd поднят. Интерфейс внешний указан. divert одной строкой тоже пробовал на пашет.
>
форвард включен?
/etc/rc.conf <- gateway_enable="YES"
>/etc/rc.conf <- gateway_enable="YES"netstat -rn
ipfw -a l
>>/etc/rc.conf <- gateway_enable="YES"
>
>netstat -rn
>ipfw -a l
/sbin/ipfw/add divert natd ip from 192.168.0.1/24 to any out via rl0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Эту строку нафиг, вторую за компанию:
ipfw add divert 8668 ip from any to any via rl0
Блин. Все равно не работает.Работает только так:
/sbin/ipfw add divert ip from ay to any via rl0
/sbin/ipfw add allow ip from any to anyно мне надо пускать на всех юзеров, а некоторых.
#!/bin/sh
/sbin/ipfw -f flush
/sbin/ipfw add check-state
/sbin/ipfw add allow ip from any to any via lo0
/sbin/ipfw/add divert natd ip from 192.168.0.1/24 to any out via rl0
~~~~~~~~~~~~~~ это что такое?
/sbin/ipfw add divert natd ip from any to 195.195.195.195 in via rl0/sbin/ipfw add allow ip from me to any keep-state
~~~~~~~ а это что?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ правило не пойдет, после нат не будет адреса me, если он у тебя внутренний. Ограничения ставь на внутреннем интерфейсе.
В результате не работает потому что нет правил на внешнем интерфейсе, посему при прохождении внешнего интерфейса все пакеты подпадают под последнее правило./sbin/ipfw add allow ip from any to any via rl1
/sbin/ipfw add deny ip from any to any
/sbin/ipfw add allow ip from me to any keep-state
(правило не пойдет, после нат не будет адреса me, если он у тебя внутренний. Ограничения ставь на внутреннем интерфейсе. )Почему. me это же любой адрес машины. Т.е. и 192.168.0.1 и 195.195.195.195. Теоретически после того как мы послали запрос из локалки, он дошел до divert и поменял адрес. потом он пошел заново через правила как пакет с адреса 195.195.195.195 на удаленный хост. правило
/sbin/ipfw add allow ip from me to any keep-state
разрешает ему уходить от себя и создает динамическое правило. Далее пришел ответ от удаленнго хоста проходит через динамическое правило которое ему это разрешает. попадает опять в nat. теперь он идет заново по правилам как пакет с адреса 192.168.0.1 к адресу локальной сети, что собственно тоже разрешено правилом
/sbin/ipfw add allow ip from me to any keep-state
Во какая моя теория, после прочтения манов. Но теория не рабртает. :o(
>/sbin/ipfw add allow ip from me to any keep-state
>(правило не пойдет, после нат не будет адреса me, если он у
>тебя внутренний. Ограничения ставь на внутреннем интерфейсе. )
>
>Почему. me это же любой адрес машины. Т.е. и 192.168.0.1 и 195.195.195.195.я не понял что ты хотел выразить!
как это у тебя переменная me может быть и так и этак?
и где она вообще описана?>Теоретически после того как мы послали запрос из локалки, он дошел
>до divert и поменял адрес. потом он пошел заново через правила
>как пакет с адреса 195.195.195.195 на удаленный хост. правило
>/sbin/ipfw add allow ip from me to any keep-state
>разрешает ему уходить от себя и создает динамическое правило.Вот тут и определись что есть у тебя me.. если это внутренний адрес, то правило работать не будет, о чем сказано раннее.
>Далее пришел ответ
>от удаленнго хоста проходит через динамическое правило которое ему это разрешает.
>попадает опять в nat. теперь он идет заново по правилам как
>пакет с адреса 192.168.0.1 к адресу локальной сети, что собственно тоже
>разрешено правилом
>/sbin/ipfw add allow ip from me to any keep-state
>Во какая моя теория, после прочтения манов. Но теория не рабртает. :o(
>не работает не теория, а не работают правила.
192.168.0.1/24 это что у тебя? ты имел ввиду хост или сеть, или вообще от балды?
>192.168.0.1/24 это что у тебя? ты имел ввиду хост или сеть, или
>вообще от балды?192.168.0.1/24 это локальная сеть которая должна выходить в инет.
А про (me) я читал что это любой локальный адрес машины.
Если указать me, правилу будет соответствовать любой IP-адрес,
сконфигурированный на любом из интерфейсов системы. Эта
проверка требует достаточно много вычислительных ресурсов и ее
надо использовать осторожно.Это из перевода MAN IPFW
хорошо с me понятно, что у тебя это такое
но тогда правило
/sbin/ipfw/add divert natd ip from 192.168.0.1/24 to any out via rl0 неверное
192.168.0.1/24 - если это адрес хоста то 192.168.0.1
если сети - 192.168.0.0/24, ну у тебя сутя по всему это внутренний адрес интерфейса...
вопрос зачем его натить?
может стоит так попробовать
/sbin/ipfw/add divert natd ip from 192.168.0.0/24 to any out via rl0
>Блин. Все равно не работает.
>
>Работает только так:
>/sbin/ipfw add divert ip from ay to any via rl0
>/sbin/ipfw add allow ip from any to any
>
>но мне надо пускать на всех юзеров, а некоторых.
Ну и ?/sbin/ipfw add divert ip from ay to any via rl0
ipfw add allow ip from pupkin to any
ipfw add allow ip from any to pupkinipfw add allow ip from pupkin2 to any
ipfw add allow ip from any to pupkin2Не вижу проблемы. Может проблема в руках и нежелании читать документацию?
>Укажите пожалуйста где ошибка в правилах.
>rl0 - Внешний интерфейс.
>rl1 - Внутренний.
>#!/bin/sh
>
>/sbin/ipfw -f flush
>/sbin/ipfw add check-state
>/sbin/ipfw add allow ip from any to any via lo0
>/sbin/ipfw/add divert natd ip from 192.168.0.1/24 to any out via rl0
>/sbin/ipfw add devirt natd ip from any to 195.195.195.195 in via rl0
>
>
>/sbin/ipfw add allow ip from me to any keep-state
>/sbin/ipfw add allow ip from any to any via rl1
>/sbin/ipfw add deny ip from any to any
>
>Нифига не работает.ipfw add 10 allow ip from 195.195.195.195 to any out via rl0
ipfw add 20 devirt natd ip from any to 195.195.195.195 in via rl0
ipfw add 30 divert natd ip from 192.168.0.0/24 to any out via rl0
ipfw add 40 deny ip from any to any via rl0ipfw add 100 allow ip from any to any via lo0
ipfw add 110 deny ip from any to 127.0.0.0/8
ipfw add 120 deny ip from 127.0.0.0/8 to anyipfw add 200 allow ip from 192.168.0.x to any in via rl1
ipfw add 201 allow ip from any to 192.168.0.x out via rl1
ipfw add 299 deny ip from any to any via rl1ipfw add 65000 deny ip from any to any
Ну наконецто вроде разобрался. Всем большое огромное спасибо за терпение и советы.