The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"natd и redirect_port - затык на последнем уровне"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"natd и redirect_port - затык на последнем уровне"
Сообщение от Samos emailИскать по авторуВ закладки on 15-Ноя-02, 13:54  (MSK)
Имеем:
freebsd -> ipfw + natd
внутрренний -> ed0: 192.168.200.5
внешний -> rl0: xxx.xxx.xxx.xxx
все прекрасно работает, интернет, траля-ля...


Задача:
Win-программа, работающая по tcp/udp 5003 порту висит серваком на внутренней машине 192.168.200.54
Надо из интернета работать с это прогрммой.


Решаем:
rc.conf:

ifconfig_rl0="inet xxx.xxx.xxx.xxx netmask 255.255.255.252"
ifconfig_ed0="inet 192.168.200.5 netmask 255.255.255.0"
defaultrouter="bla-bla-bla"
nisdomainname="trulala"
router_flags=""
router="routed"
router_enable="NO"
gateway_enable="YES"
ntpdate_enable="YES"
sshd_enable="YES"
named_enable="YES"
firewall_enable="YES"
firewall_type="open"
ipsec_enable="YES"
natd_enable="YES"
natd_interface="rl0"
natd_flags="-m -s -u -redirect_port 192.168.200.54: 5003 5003 "
portmap_enable="NO"

rc.firewall:
00050 divert 8668 ip from any to any via rl0
00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00500 deny tcp from 192.168.200.0/24 to any 80
00600 divert 8668 ip from 192.168.200.54 to any
00700 divert 8668 ip from any to xxx.xxx.xxx.xxx # здесь rl0
01000 allow tcp from 192.168.200.0/24 to 192.168.200.0/24
01005 allow tcp from 192.168.200.0/24 to xxx.xxx.xxx.xxx
01010 allow tcp from 192.168.200.0/24 to any 20,21,22,25,110,113,9
95,4661,5003,6667
01020 deny tcp from 192.168.200.0/24 to any
01030 allow udp from 192.168.200.0/24 to 192.168.200.0/24
01035 allow udp from 192.168.200.0/24 to xxx.xxx.xxx.xxx
01040 allow udp from 192.168.200.0/24 to any 53
01045 allow udp from 192.168.200.0/24 to any 5003
01050 deny udp from 192.168.200.0/24 to any
01070 allow gre from any to any
65000 allow ip from any to any
65535 deny ip from any to any


Проблема:
Пытаемся извне запросить по udp список баз данных.
Видим на внешнем интерфейсе:
<внешний_ip>:3122 -> xxx.xxx.xxx.xxx:5003

на внутреннем:
<внешний_ip>:3122 -> 192.168.200.54:5003
т.е. NATD отработал входящий запрос. Далее...
192.168.200.54:5003 -> <внешний_ip>:3122
т.е. сервер БД послал ответ.
Всё. На внешнем интерфейсе глухомань полная. Где-то NATD проглотил пакет.
Ведь теоретически на внешнем должно было бы быть:
xxx.xxx.xxx.xxx:5003 -> <внешний_ip>:3122


Где я не прав?
Проблемка срочная, помогите, пожалуйста.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: natd и redirect_port - затык на последнем уровне"
Сообщение от Bart Simpson emailИскать по авторуВ закладки on 15-Ноя-02, 14:08  (MSK)
>Имеем:
>freebsd -> ipfw + natd
>внутрренний -> ed0: 192.168.200.5
>внешний -> rl0: xxx.xxx.xxx.xxx
>все прекрасно работает, интернет, траля-ля...
>
>
>Задача:
>Win-программа, работающая по tcp/udp 5003 порту висит серваком на внутренней машине 192.168.200.54
>
>Надо из интернета работать с это прогрммой.
>
>
>Решаем:
>rc.conf:
>
>ifconfig_rl0="inet xxx.xxx.xxx.xxx netmask 255.255.255.252"
>ifconfig_ed0="inet 192.168.200.5 netmask 255.255.255.0"
>defaultrouter="bla-bla-bla"
>nisdomainname="trulala"
>router_flags=""
>router="routed"
>router_enable="NO"
>gateway_enable="YES"
>ntpdate_enable="YES"
>sshd_enable="YES"
>named_enable="YES"
>firewall_enable="YES"
>firewall_type="open"
>ipsec_enable="YES"
>natd_enable="YES"
>natd_interface="rl0"
>natd_flags="-m -s -u -redirect_port 192.168.200.54: 5003 5003 "
>portmap_enable="NO"
>
>rc.firewall:
>00050 divert 8668 ip from any to any via rl0
>00100 allow ip from any to any via lo0
>00200 deny ip from any to 127.0.0.0/8
>00500 deny tcp from 192.168.200.0/24 to any 80
>00600 divert 8668 ip from 192.168.200.54 to any
>00700 divert 8668 ip from any to xxx.xxx.xxx.xxx # здесь rl0
>01000 allow tcp from 192.168.200.0/24 to 192.168.200.0/24
>01005 allow tcp from 192.168.200.0/24 to xxx.xxx.xxx.xxx
>01010 allow tcp from 192.168.200.0/24 to any 20,21,22,25,110,113,9
>95,4661,5003,6667
>01020 deny tcp from 192.168.200.0/24 to any
>01030 allow udp from 192.168.200.0/24 to 192.168.200.0/24
>01035 allow udp from 192.168.200.0/24 to xxx.xxx.xxx.xxx
>01040 allow udp from 192.168.200.0/24 to any 53
>01045 allow udp from 192.168.200.0/24 to any 5003
>01050 deny udp from 192.168.200.0/24 to any
>01070 allow gre from any to any
>65000 allow ip from any to any
>65535 deny ip from any to any
>
>
>Проблема:
>Пытаемся извне запросить по udp список баз данных.
>Видим на внешнем интерфейсе:
><внешний_ip>:3122 -> xxx.xxx.xxx.xxx:5003
>
>на внутреннем:
><внешний_ip>:3122 -> 192.168.200.54:5003
>т.е. NATD отработал входящий запрос. Далее...
>192.168.200.54:5003 -> <внешний_ip>:3122
>т.е. сервер БД послал ответ.
>Всё. На внешнем интерфейсе глухомань полная. Где-то NATD проглотил пакет.
>Ведь теоретически на внешнем должно было бы быть:
>xxx.xxx.xxx.xxx:5003 -> <внешний_ip>:3122
>
>
>Где я не прав?
>Проблемка срочная, помогите, пожалуйста.


Зачем два раза заворачиваеш, надо один раз на внешнем интерфейсе.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: natd и redirect_port - затык на последнем уровне"
Сообщение от Samos emailИскать по авторуВ закладки on 15-Ноя-02, 14:21  (MSK)

>Зачем два раза заворачиваеш, надо один раз на внешнем интерфейсе.

Т.е. правила 600 и 700 - нафиг, а 50 всё сделает?
У меня тоже мысль была, но думаю, проблемы это не решит...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: natd и redirect_port - затык на последнем уровне"
Сообщение от Bart Simpson emailИскать по авторуВ закладки on 15-Ноя-02, 14:46  (MSK)
>
>>Зачем два раза заворачиваеш, надо один раз на внешнем интерфейсе.
>
>Т.е. правила 600 и 700 - нафиг, а 50 всё сделает?
>У меня тоже мысль была, но думаю, проблемы это не решит...


Блин, так у тебя еще и 50 есть. Попробуй.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: natd и redirect_port - затык на последнем уровне"
Сообщение от Samos emailИскать по авторуВ закладки on 15-Ноя-02, 16:21  (MSK)

>Блин, так у тебя еще и 50 есть. Попробуй.

Убрал правила 600 и 700. Та же байда.
Вот tcpdump
На rl0 (внешн):
16:16:02.504449 212.46.250.221.1405 > xxx.xxx.xxx.xxx.5003:  udp 15
16:16:03.456232 212.46.250.221.1405 > xxx.xxx.xxx.xxx.5003:  udp 15
16:16:04.568504 212.46.250.221.1406 > xxx.xxx.xxx.xxx.5003: S 2792016441:2792016441(0) win 8760 <mss 1460,nop,nop,sackOK> (DF)
16:16:07.384165 212.46.250.221.1406 > xxx.xxx.xxx.xxx.5003: S 2792016441:2792016441(0) win 8760 <mss 1460,nop,nop,sackOK> (DF)

На ed0 (внутр):
16:13:21.320157 212.46.250.221.1400 > 192.168.200.54.5003:  udp 15
16:13:21.321091 192.168.200.54.5003 > 212.46.250.221.1400:  udp 34
16:13:22.305835 212.46.250.221.1400 > 192.168.200.54.5003:  udp 15
16:13:22.306543 192.168.200.54.5003 > 212.46.250.221.1400:  udp 34
16:13:23.491610 212.46.250.221.1401 > 192.168.200.54.5003: S 2751676027:2751676027(0) win 8760 <mss 1460,nop,nop,sackOK> (DF)
16:13:23.492084 192.168.200.54.5003 > 212.46.250.221.1401: S 23050828:23050828(0) ack 2751676028 win 8760 <mss 1460,nop,nop,sackOK> (DF)
16:13:25.976318 212.46.250.221.1401 > 192.168.200.54.5003: S 2751676027:2751676027(0) win 8760 <mss 1460,nop,nop,sackOK> (DF)
16:13:25.976703 192.168.200.54.5003 > 212.46.250.221.1401: . ack 1 win 8760 (DF)
16:13:26.447808 192.168.200.54.5003 > 212.46.250.221.1401: S 23050828:23050828(0) ack 2751676028 win 8760 <mss 1460,nop,nop,sackOK> (DF)
16:13:32.446014 192.168.200.54.5003 > 212.46.250.221.1401: S 23050828:23050828(0) ack 2751676028 win 8760 <mss 1460,nop,nop,sackOK> (DF)
16:13:44.444359 192.168.200.54.5003 > 212.46.250.221.1401: S 23050828:23050828(0) ack 2751676028 win 8760 <mss 1460,nop,nop,sackOK> (DF)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: natd и redirect_port - затык на последнем уровне"
Сообщение от oleg emailИскать по авторуВ закладки on 15-Ноя-02, 17:21  (MSK)
>Имеем:
>freebsd -> ipfw + natd
>внутрренний -> ed0: 192.168.200.5
>внешний -> rl0: xxx.xxx.xxx.xxx
>все прекрасно работает, интернет, траля-ля...
>
>
>Задача:
>Win-программа, работающая по tcp/udp 5003 порту висит серваком на внутренней машине 192.168.200.54
>
>Надо из интернета работать с это прогрммой.
>
>
>Решаем:
>rc.conf:
>
>ifconfig_rl0="inet xxx.xxx.xxx.xxx netmask 255.255.255.252"
>ifconfig_ed0="inet 192.168.200.5 netmask 255.255.255.0"
>defaultrouter="bla-bla-bla"
>nisdomainname="trulala"
>router_flags=""
>router="routed"
>router_enable="NO"
>gateway_enable="YES"
>ntpdate_enable="YES"
>sshd_enable="YES"
>named_enable="YES"
>firewall_enable="YES"
>firewall_type="open"
>ipsec_enable="YES"
>natd_enable="YES"
>natd_interface="rl0"
>natd_flags="-m -s -u -redirect_port 192.168.200.54: 5003 5003 "
>portmap_enable="NO"
>
>rc.firewall:
>00050 divert 8668 ip from any to any via rl0
>00100 allow ip from any to any via lo0
>00200 deny ip from any to 127.0.0.0/8
>00500 deny tcp from 192.168.200.0/24 to any 80
>00600 divert 8668 ip from 192.168.200.54 to any
>00700 divert 8668 ip from any to xxx.xxx.xxx.xxx # здесь rl0
>01000 allow tcp from 192.168.200.0/24 to 192.168.200.0/24
>01005 allow tcp from 192.168.200.0/24 to xxx.xxx.xxx.xxx
>01010 allow tcp from 192.168.200.0/24 to any 20,21,22,25,110,113,9
>95,4661,5003,6667
>01020 deny tcp from 192.168.200.0/24 to any
>01030 allow udp from 192.168.200.0/24 to 192.168.200.0/24
>01035 allow udp from 192.168.200.0/24 to xxx.xxx.xxx.xxx
>01040 allow udp from 192.168.200.0/24 to any 53
>01045 allow udp from 192.168.200.0/24 to any 5003
>01050 deny udp from 192.168.200.0/24 to any
>01070 allow gre from any to any
>65000 allow ip from any to any
>65535 deny ip from any to any
>
>
>Проблема:
>Пытаемся извне запросить по udp список баз данных.
>Видим на внешнем интерфейсе:
><внешний_ip>:3122 -> xxx.xxx.xxx.xxx:5003
>
>на внутреннем:
><внешний_ip>:3122 -> 192.168.200.54:5003
>т.е. NATD отработал входящий запрос. Далее...
>192.168.200.54:5003 -> <внешний_ip>:3122
>т.е. сервер БД послал ответ.
>Всё. На внешнем интерфейсе глухомань полная. Где-то NATD проглотил пакет.
>Ведь теоретически на внешнем должно было бы быть:
>xxx.xxx.xxx.xxx:5003 -> <внешний_ip>:3122
>
>
>Где я не прав?
>Проблемка срочная, помогите, пожалуйста.
Во первых, полезно последнее правило делать deny log ip from any to any
и смотреть какие пакеты не валятся в файрволл.
Во вторых попробуй написать после 700 правила такие слова:
${fwcmd} (или чего там у тебя) add allow ip from any to 192.168.200.54 in  
via rl0
${fwcmd} add allow ip from any to 192.168.200.54 out via ed0.
Не смейся на 2 правила по ,считай, одному пакету. Я настраивал у себя natd с примерно похожей системой правил, так что пришлось неделю сидеть в исходниках, так у меня тоже глаза на лоб вылезли от этого.


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру