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

Исходное сообщение
"IPFW + natd (Покажите ошибку)"

Отправлено woodmin , 29-Апр-05 16:47 
Укажите пожалуйста где ошибка в правилах.
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 + natd (Покажите ошибку)"
Отправлено denn , 29-Апр-05 18:08 
>Укажите пожалуйста где ошибка в правилах.
>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


"IPFW + natd (Покажите ошибку)"
Отправлено woodmin , 29-Апр-05 19:49 
natd поднят. Интерфейс внешний указан. divert одной строкой тоже пробовал на пашет.

"IPFW + natd (Покажите ошибку)"
Отправлено denn , 29-Апр-05 19:54 
>natd поднят. Интерфейс внешний указан. divert одной строкой тоже пробовал на пашет.
>
форвард включен?

"IPFW + natd (Покажите ошибку)"
Отправлено woodmin , 29-Апр-05 20:00 
/etc/rc.conf <- gateway_enable="YES"

"IPFW + natd (Покажите ошибку)"
Отправлено denn , 29-Апр-05 21:31 
>/etc/rc.conf <- gateway_enable="YES"

netstat -rn
ipfw -a l


"IPFW + natd (Покажите ошибку)"
Отправлено Skif , 30-Апр-05 02:10 
>>/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


"IPFW + natd (Покажите ошибку)"
Отправлено woodmin , 30-Апр-05 10:28 
Блин. Все равно не работает.

Работает только так:
/sbin/ipfw add divert ip from ay to any via rl0
/sbin/ipfw add allow ip from any to any

но мне надо пускать на всех юзеров, а некоторых.


"IPFW + natd (Покажите ошибку)"
Отправлено A Clockwork Orange , 30-Апр-05 12:51 
#!/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


"IPFW + natd (Покажите ошибку)"
Отправлено woodmin , 30-Апр-05 13:27 
/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(


"IPFW + natd (Покажите ошибку)"
Отправлено A Clockwork Orange , 30-Апр-05 13:41 
>/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 это что у тебя? ты имел ввиду хост или сеть, или вообще от балды?


"IPFW + natd (Покажите ошибку)"
Отправлено woodmin , 30-Апр-05 13:56 
>192.168.0.1/24 это что у тебя? ты имел ввиду хост или сеть, или
>вообще от балды?

192.168.0.1/24 это локальная сеть которая должна выходить в инет.
А про (me) я читал что это любой локальный адрес машины.


"IPFW + natd (Покажите ошибку)"
Отправлено woodmin , 30-Апр-05 14:23 
Если указать me, правилу будет соответствовать любой IP-адрес,
сконфигурированный на любом из интерфейсов системы. Эта
проверка требует достаточно много вычислительных ресурсов и ее
надо использовать осторожно.

Это из перевода MAN IPFW


"IPFW + natd (Покажите ошибку)"
Отправлено A Clockwork Orange , 30-Апр-05 14:36 
хорошо с 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

"IPFW + natd (Покажите ошибку)"
Отправлено Skif , 30-Апр-05 15:09 
>Блин. Все равно не работает.
>
>Работает только так:
>/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 pupkin

ipfw add allow ip from pupkin2 to any
ipfw add allow ip from any to pupkin2

Не вижу проблемы. Может проблема в руках и нежелании читать документацию?


"IPFW + natd (Покажите ошибку)"
Отправлено jr , 30-Апр-05 14:53 
>Укажите пожалуйста где ошибка в правилах.
>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 rl0

ipfw 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 any

ipfw 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 rl1

ipfw add 65000 deny ip from any to any


"IPFW + natd (Покажите ошибку)"
Отправлено woodmin , 30-Апр-05 15:21 
Ну наконецто вроде разобрался. Всем большое огромное спасибо за терпение и советы.