Страница 1 из 1

IPFW

Добавлено: 2010-02-09 16:15:38
Spook1680
есть рабочая фряха 7.2 Коллеги нужна ваша помощь.
привожу кусок рабочего конфига
/usr/local/etc/rc.firewall
ournet='192.168.21.0/24'
uprefix='192.168.21'
ifout='sis0'
ifuser='rl0'
ports=pop3,ftp
vse=192.168.21.2
vip2=192.168.21.3
vip=192.168.21.4,192.168.21.5
allowedports="22,25,53,110,143"
natusers="192.168.21.2,192.168.21.3,192.168.21.4,192.168.21.21,192.168.21.101"

icq_users="192.168.21.2,192.168.21.3"
msn_users="192.168.21.2,192.168.21.3"
icq_port="5190,5180,5181"
msn_port="1863,443"
jabber="5222,5223,7777"

allowed_nets="xx.xxx.xx.0/24"


natd -a xx.xxx.xx.xxx -p 8668 -redirect_port 192.168.21.101:7000 7000
ipfw add 50 divert natd all from ${natusers} to any ${allowedports},${jabber},${icq_port},${msn_port} out via sis0
ipfw add 51 divert natd all from ${icq_users} to any ${icq_port} out via sis0
ipfw add 52 divert natd all from ${msn_users} to any ${msn_port} out via sis0
ipfw add 53 divert natd icmp from ${natusers} to any out via sis0
#ipfw add 54 divert natd all from ${natusers} to any ftp,1024-65535 out via sis0
ipfw add 60 divert natd all from any to xx.xxx.xx.xxx in via sis0

ipfw add 70 allow tcp from any to xx.xxx.xx.xxx 7000 in via sis0 setup
ipfw add 80 allow tcp from any to any 7000
ipfw add 90 allow tcp from any 7000 to any


ipfw add divert 8668 ip from any to xx.xxx.xx.xxx in via sis
ipfw add divert 8668 ip from 192.168.21.101 to any out via sis

ipfw add allow ip from any to me 7000
ipfw add allow ip from any to 192.168.21.101 7000
ipfw add allow ip from 192.168.21.101 7000 to any
На серваке крутиться squid доступ по логину и паролю к инету.
Ася и почта идут через натд.
И главное есть прога крутиться на 192.168.21.101:7000 к ней доступ настроен удаленный через сервак.
Фигня в следующем
если коментю эту строку

Код: Выделить всё

#ipfw add 60 divert natd all from any to xx.xxx.xx.xxx in via sis0
где х это внешний ip.
То доступ на прогу через удаленку (инет)) появляется
Если комент снимаю то работае почта и ася но доступа удаленного к серваку и к этой программе уже нет.

:Bravo: Че за фигня.

Re: IPFW

Добавлено: 2010-02-09 17:35:04
Kos
вместо художественных нарезок повторяющихся наборов правил в скрипте показывайте вывод

Код: Выделить всё

#ipfw show

Re: IPFW

Добавлено: 2010-02-09 17:40:30
Spook1680
Kos писал(а):вместо художественных нарезок повторяющихся наборов правил в скрипте показывайте вывод

Код: Выделить всё

#ipfw show

Код: Выделить всё

[root@pcbsd]/usr/local/etc(103)# ipfw show
00050  222   16560 divert 8668 ip from 192.168.21.2,192.168.21.3,192.168.21.4,192.168.21.21,192.168.21.101 to any dst-port 22,25,53,110,143,5222,5223,7777,5190,5180,5181,1863,443 out via sis0
00051    0       0 divert 8668 ip from 192.168.21.2,192.168.21.3 to any dst-port 5190,5180,5181 out via sis0
00052    0       0 divert 8668 ip from 192.168.21.2,192.168.21.3 to any dst-port 1863,443 out via sis0
00053    0       0 divert 8668 icmp from 192.168.21.2,192.168.21.3,192.168.21.4,192.168.21.21,192.168.21.101 to any out via sis0
00060  926  318363 divert 8668 ip from any to 77.108.98.213 in via sis0
00070    0       0 allow tcp from any to 77.108.98.213 dst-port 7000 in via sis0 setup
00080   24    1216 allow tcp from any to any dst-port 7000
00090    0       0 allow tcp from any 7000 to any
00190    0       0 divert 8668 ip from any to 77.108.98.213 in via sis
00290    0       0 divert 8668 ip from 192.168.21.101 to any out via sis
00390    0       0 allow ip from any to me dst-port 7000
00490    0       0 allow ip from any to 192.168.21.101 dst-port 7000
00590    0       0 allow ip from 192.168.21.101 7000 to any
65535 7626 1431885 allow ip from any to any
[root@pcbsd]/usr/local/etc(104)#



Re: IPFW

Добавлено: 2010-02-09 18:18:17
Kos
Spook1680 писал(а):
Kos писал(а):вместо художественных нарезок повторяющихся наборов правил в скрипте показывайте вывод

Код: Выделить всё

#ipfw show

Код: Выделить всё

[root@pcbsd]/usr/local/etc(103)# ipfw show
00050  222   16560 divert 8668 ip from 192.168.21.2,192.168.21.3,192.168.21.4,192.168.21.21,192.168.21.101 to any dst-port 22,25,53,110,143,5222,5223,7777,5190,5180,5181,1863,443 out via sis0
00051    0       0 divert 8668 ip from 192.168.21.2,192.168.21.3 to any dst-port 5190,5180,5181 out via sis0
00052    0       0 divert 8668 ip from 192.168.21.2,192.168.21.3 to any dst-port 1863,443 out via sis0
00053    0       0 divert 8668 icmp from 192.168.21.2,192.168.21.3,192.168.21.4,192.168.21.21,192.168.21.101 to any out via sis0
00060  926  318363 divert 8668 ip from any to 77.108.98.213 in via sis0
00070    0       0 allow tcp from any to 77.108.98.213 dst-port 7000 in via sis0 setup
00080   24    1216 allow tcp from any to any dst-port 7000
00090    0       0 allow tcp from any 7000 to any
00190    0       0 divert 8668 ip from any to 77.108.98.213 in via sis
00290    0       0 divert 8668 ip from 192.168.21.101 to any out via sis
00390    0       0 allow ip from any to me dst-port 7000
00490    0       0 allow ip from any to 192.168.21.101 dst-port 7000
00590    0       0 allow ip from 192.168.21.101 7000 to any
65535 7626 1431885 allow ip from any to any
[root@pcbsd]/usr/local/etc(104)#


в этом списке правило №60 заворачивает в НАТ входящий трафик. Без него не должен работать инет у всех пользователей, которые ходят через НАТ, ну и естественно проброс портов для нужной вам программы.
Назначение правил 190 и 290 - загадка природы :)

Re: IPFW

Добавлено: 2010-02-09 18:30:00
Spook1680
Kos писал(а):
Spook1680 писал(а):
Kos писал(а):вместо художественных нарезок повторяющихся наборов правил в скрипте показывайте вывод

Код: Выделить всё

#ipfw show

Код: Выделить всё

[root@pcbsd]/usr/local/etc(103)# ipfw show
00050  222   16560 divert 8668 ip from 192.168.21.2,192.168.21.3,192.168.21.4,192.168.21.21,192.168.21.101 to any dst-port 22,25,53,110,143,5222,5223,7777,5190,5180,5181,1863,443 out via sis0
00051    0       0 divert 8668 ip from 192.168.21.2,192.168.21.3 to any dst-port 5190,5180,5181 out via sis0
00052    0       0 divert 8668 ip from 192.168.21.2,192.168.21.3 to any dst-port 1863,443 out via sis0
00053    0       0 divert 8668 icmp from 192.168.21.2,192.168.21.3,192.168.21.4,192.168.21.21,192.168.21.101 to any out via sis0
00060  926  318363 divert 8668 ip from any to 77.108.98.213 in via sis0
00070    0       0 allow tcp from any to 77.108.98.213 dst-port 7000 in via sis0 setup
00080   24    1216 allow tcp from any to any dst-port 7000
00090    0       0 allow tcp from any 7000 to any
00190    0       0 divert 8668 ip from any to 77.108.98.213 in via sis
00290    0       0 divert 8668 ip from 192.168.21.101 to any out via sis
00390    0       0 allow ip from any to me dst-port 7000
00490    0       0 allow ip from any to 192.168.21.101 dst-port 7000
00590    0       0 allow ip from 192.168.21.101 7000 to any
65535 7626 1431885 allow ip from any to any
[root@pcbsd]/usr/local/etc(104)#


в этом списке правило №60 заворачивает в НАТ входящий трафик. Без него не должен работать инет у всех пользователей, которые ходят через НАТ, ну и естественно проброс портов для нужной вам программы.
Назначение правил 190 и 290 - загадка природы :)
правило 190 и 290 задействано
с

в файл /etc/services:
прописываем
nashport7000 7000/tcp
в /etc/inetd.conf пишем:
nashport7000 stream tcp nowait root /usr/local/bin/socket socket 192.168.0.1 7000
у меня только таким образом удалось достучаться удаленкой до сервака а он сделал)) редирект порт на нужную прогу

Re: IPFW

Добавлено: 2010-02-09 18:52:54
Kos
эта строчка висит в скрипте, который перезапускает правила ipfw?

Код: Выделить всё

natd -a xx.xxx.xx.xxx -p 8668 -redirect_port 192.168.21.101:7000 7000

Re: IPFW

Добавлено: 2010-02-09 19:01:22
Spook1680
Kos писал(а):эта строчка висит в скрипте, который перезапускает правила ipfw?

Код: Выделить всё

natd -a xx.xxx.xx.xxx -p 8668 -redirect_port 192.168.21.101:7000 7000
эта строка прописана в испольняемом файле
/usr/local/etc/rc.firewall
в файле фаэрвола где прописаны мои правила

Re: IPFW

Добавлено: 2010-02-09 19:13:40
Kos
Spook1680 писал(а):
Kos писал(а):эта строчка висит в скрипте, который перезапускает правила ipfw?

Код: Выделить всё

natd -a xx.xxx.xx.xxx -p 8668 -redirect_port 192.168.21.101:7000 7000
эта строка прописана в испольняемом файле
/usr/local/etc/rc.firewall
в файле фаэрвола где прописаны мои правила
убираем эту строчку.
в файл /etc/rc.conf пишем следующее:

Код: Выделить всё

natd_enable="YES"
natd_interface="sis0"
natd_flags="-f /etc/natd.conf"
в /etc/natd.conf пишем

Код: Выделить всё

redirect_port tcp 192.168.21.101:7000 7000
останавливаем inetd (ну или убрать строку с nashport7000 и перезапустить)

перезапускаем natd:

Код: Выделить всё

#/etc/rc.d/natd restart
пробуем.
Для чистоты эксперимента ещё можно выполнить:

Код: Выделить всё

#ipfw -f flush
#ipfw add divert natd all from any to any via sis0

Re: IPFW

Добавлено: 2010-02-10 8:09:42
Spook1680
Kos писал(а):
Spook1680 писал(а):
Kos писал(а):эта строчка висит в скрипте, который перезапускает правила ipfw?

Код: Выделить всё

natd -a xx.xxx.xx.xxx -p 8668 -redirect_port 192.168.21.101:7000 7000
эта строка прописана в испольняемом файле
/usr/local/etc/rc.firewall
в файле фаэрвола где прописаны мои правила
убираем эту строчку.
в файл /etc/rc.conf пишем следующее:

Код: Выделить всё

natd_enable="YES"
natd_interface="sis0"
natd_flags="-f /etc/natd.conf"
в /etc/natd.conf пишем

Код: Выделить всё

redirect_port tcp 192.168.21.101:7000 7000
останавливаем inetd (ну или убрать строку с nashport7000 и перезапустить)

перезапускаем natd:

Код: Выделить всё

#/etc/rc.d/natd restart
пробуем.
Для чистоты эксперимента ещё можно выполнить:

Код: Выделить всё

#ipfw -f flush
#ipfw add divert natd all from any to any via sis0


Koss А вы уверены что это сработает

в /etc/natd.conf пишем
redirect_port tcp 192.168.21.101:7000 7000
У меня freebsd 7.2 а все что после 7.0 уже не работает по старым правилам. Вы так пробовали делать на седьмой ветке? У меня это правило не работает я уже так проверял!!

Re: IPFW

Добавлено: 2010-02-10 12:28:09
Kos

Код: Выделить всё

# uname -r
7.2-RELEASE
выдержка из man natd:

Код: Выделить всё

     placed into /etc/natd.conf:

           log
           deny_incoming
           verbose

           instance default
           interface sis0
           port 1000
           redirect_port tcp 10.0.0.2:122 122
а вообще в 7-ветке добавился кернел-нат, но к natd он не имеет никакого отношения.

Re: IPFW

Добавлено: 2010-02-10 17:31:44
Spook1680
Kos писал(а):

Код: Выделить всё

# uname -r
7.2-RELEASE
выдержка из man natd:

Код: Выделить всё

     placed into /etc/natd.conf:

           log
           deny_incoming
           verbose

           instance default
           interface sis0
           port 1000
           redirect_port tcp 10.0.0.2:122 122
а вообще в 7-ветке добавился кернел-нат, но к natd он не имеет никакого отношения.



Koss попробовал я как вы сказали сделать из выдержки мана указал параметры что выше и теперь вобще не загружаеться фряха, жалуется на ошибку

natd[768] aliasing to
И что теперь делать? Если уж даете саветы то хотя бы верные. а по поводу того что на семерки 7.2 проблемы с обычным натом это можно легко подтвердить попгуглите и убедитесь. :( если я болбес в этих вопросах то хоть саветов не даю после которых все зависает.

Re: IPFW

Добавлено: 2010-02-10 19:02:57
Spook1680
Kos писал(а):

Код: Выделить всё

# uname -r
7.2-RELEASE
выдержка из man natd:

Код: Выделить всё

     placed into /etc/natd.conf:

           log
           deny_incoming
           verbose

           instance default
           interface sis0
           port 1000
           redirect_port tcp 10.0.0.2:122 122
а вообще в 7-ветке добавился кернел-нат, но к natd он не имеет никакого отношения.

Re: IPFW

Добавлено: 2010-02-10 19:04:40
Spook1680
Kos писал(а):

Код: Выделить всё

# uname -r
7.2-RELEASE
выдержка из man natd:

Код: Выделить всё

     placed into /etc/natd.conf:

           log
           deny_incoming
           verbose

           instance default
           interface sis0
           port 1000
           redirect_port tcp 10.0.0.2:122 122
а вообще в 7-ветке добавился кернел-нат, но к natd он не имеет никакого отношения.

ошибку устранил Ctrl +C Но то что вы говорили неработает обычный натд не пашет.

Re: IPFW

Добавлено: 2010-02-12 23:26:59
Kos
Spook1680 писал(а):
Kos писал(а):

Код: Выделить всё

# uname -r
7.2-RELEASE
выдержка из man natd:

Код: Выделить всё

     placed into /etc/natd.conf:

           log
           deny_incoming
           verbose

           instance default
           interface sis0
           port 1000
           redirect_port tcp 10.0.0.2:122 122
а вообще в 7-ветке добавился кернел-нат, но к natd он не имеет никакого отношения.



Koss попробовал я как вы сказали сделать из выдержки мана указал параметры что выше и теперь вобще не загружаеться фряха, жалуется на ошибку

natd[768] aliasing to
И что теперь делать? Если уж даете саветы то хотя бы верные. а по поводу того что на семерки 7.2 проблемы с обычным натом это можно легко подтвердить попгуглите и убедитесь. :( если я болбес в этих вопросах то хоть саветов не даю после которых все зависает.
Пару дней не заходил, а тут такие страсти. Балбес - это наверное тот, кто тупо копипастит куски мана с форума, а потом жалуется что ничего не работает. Только что специально все перепроверил на машине, вывод uname которой я показывал. Все работает с пол-пинка с теми конфигами, что я приводил (man natd готовым конфигом ниразу не считается). Зачем мне убеждаться в том, что что-то не работает, если у меня оно уже непомню сколько и на скольки машинках работает???