IPFIREWALL_NAT

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
artem-ka
рядовой
Сообщения: 45
Зарегистрирован: 2008-10-30 20:32:03
Откуда: St. Petersburg

IPFIREWALL_NAT

Непрочитанное сообщение artem-ka » 2009-03-03 11:39:16

Доброго времени суток!

Просьба сильно не ругаться, знаю, что эта тема уже неоднократно поднималась... но к сожалению я так и не нашел ответа на свой вопрос, поэтому вынужден был прибегнуть к созданию очередной темы. =)

Ну как Вы наверно уже поняли, речь пойдет о NAT'e, а если быть точным о kernel nat. При организации нового сервера решил опробовать встроенный в ядро NAT. Собрал новое ядро, все прошло благополучно, добавил необходимые строчки в rc.conf:

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

...
firewall_nat_enable="YES"
firewall_nat_interface="xl1"
...
добавил правила в ipfw:

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

...
${fwcmd} add nat 275 ip from ${NET_Int} to any out via ${IF_Ext}
${fwcmd} add nat 275 ip from any to ${IP_Ext} in via ${IF_Ext}

${FwCMD} nat 275 config ip ${IP_Ext} log ${firewall_nat_flags}\
                        redirect_port tcp 192.168.1.59:5900 7559
...
Пытаюсь подключиться по VNC к компьютеру в сети ${IP_Ext}:7559, клиент думает какое-то время, а потом выдает error "Connection timeout"

Если смотреть tcpdump'ом, то редирект вроде как идет до машины в сети... но почему-то ответа нет. :?

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

11:09:31.121858 IP xxx.xxx.xxx.xxx.3619 > 192.168.1.59.5900: S 3498433560:3498433560(0) win 65535 <mss 1460,nop,nop,sackOK>
11:09:34.071148 IP xxx.xxx.xxx.xxx.3619 > 192.168.1.59.5900: S 3498433560:3498433560(0) win 65535 <mss 1460,nop,nop,sackOK>
11:09:40.206275 IP xxx.xxx.xxx.xxx.3619 > 192.168.1.59.5900: S 3498433560:3498433560(0) win 65535 <mss 1460,nop,nop,sackOK>
Не могли бы помочь разобраться... Заранее спасибо.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: IPFIREWALL_NAT

Непрочитанное сообщение paradox » 2009-03-03 11:45:21

ну так тцпдамп на другой интерфейс
и смотри

Аватара пользователя
artem-ka
рядовой
Сообщения: 45
Зарегистрирован: 2008-10-30 20:32:03
Откуда: St. Petersburg

Re: IPFIREWALL_NAT

Непрочитанное сообщение artem-ka » 2009-03-03 12:09:50

paradox писал(а):ну так тцпдамп на другой интерфейс
и смотри
Вот что происходит на интерфейсах при попытке подключения

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

Внешний:
12:01:11.808397 IP 123.456.789.012.2109 > xxx.xxx.xxx.xxx.7559: S 176312708:176312708(0) win 65535 <mss 1460,nop,nop,sackOK>
12:01:14.764365 IP 123.456.789.012.2109 > xxx.xxx.xxx.xxx.7559: S 176312708:176312708(0) win 65535 <mss 1460,nop,nop,sackOK>
12:01:20.780351 IP 123.456.789.012.2109 > xxx.xxx.xxx.xxx.7559: S 176312708:176312708(0) win 65535 <mss 1460,nop,nop,sackOK>

Внутренний:
12:03:19.638099 IP 123.456.789.012.2112 > 192.168.1.59.5900: S 421340541:421340541(0) win 65535 <mss 1460,nop,nop,sackOK>
12:03:22.522260 IP 123.456.789.012.2112 > 192.168.1.59.5900: S 421340541:421340541(0) win 65535 <mss 1460,nop,nop,sackOK>
12:03:28.538249 IP 123.456.789.012.2112 > 192.168.1.59.5900: S 421340541:421340541(0) win 65535 <mss 1460,nop,nop,sackOK>

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: IPFIREWALL_NAT

Непрочитанное сообщение paradox » 2009-03-03 12:14:35

телнетом на локальный порт 7559 того компьютера
может там воообще порт закрыт)))
или закрыт на доступ с каких то айпи

Аватара пользователя
artem-ka
рядовой
Сообщения: 45
Зарегистрирован: 2008-10-30 20:32:03
Откуда: St. Petersburg

Re: IPFIREWALL_NAT

Непрочитанное сообщение artem-ka » 2009-03-03 13:09:25

paradox писал(а):телнетом на локальный порт 7559 того компьютера
может там воообще порт закрыт)))
или закрыт на доступ с каких то айпи
Так соединение на локальный комп уже идет по 5900 порту, на сервере же порт редиректится... а локально все нормально.
Ничего не понимаю (с) %)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: IPFIREWALL_NAT

Непрочитанное сообщение paradox » 2009-03-03 13:20:01

а локально все нормально.
ниверю (с)

telnet 192.168.1.59 5900
с сервара сделай

Аватара пользователя
artem-ka
рядовой
Сообщения: 45
Зарегистрирован: 2008-10-30 20:32:03
Откуда: St. Petersburg

Re: IPFIREWALL_NAT

Непрочитанное сообщение artem-ka » 2009-03-03 13:27:32

paradox писал(а):
а локально все нормально.
ниверю (с)

telnet 192.168.1.59 5900
с сервара сделай
Вот, пожалуйста: =)
gw# telnet 192.168.1.59 5900
Trying 192.168.1.59...
Connected to mac-srazzhigaev.envionsoftware.local.
Escape character is '^]'.
RFB 003.889

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: IPFIREWALL_NAT

Непрочитанное сообщение paradox » 2009-03-03 13:32:49

tcpdump на том же сервере с локального интерфейса сделай

и потом
телнет уже xxx.xxx.xxx.xxx.7559
с того же сервера
и tcpdump с локального интерйейса

Аватара пользователя
artem-ka
рядовой
Сообщения: 45
Зарегистрирован: 2008-10-30 20:32:03
Откуда: St. Petersburg

Re: IPFIREWALL_NAT

Непрочитанное сообщение artem-ka » 2009-03-03 15:24:45

paradox писал(а):tcpdump на том же сервере с локального интерфейса сделай

и потом
телнет уже xxx.xxx.xxx.xxx.7559
с того же сервера
и tcpdump с локального интерйейса
Какая-то ерунда, есть правило на сервере

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

01900 allow tcp from any to me dst-port 7559
но при телнете с сервера на самого себя xxx.xxx.xxx.xxx 7559 пишет "...Connection refused"

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: IPFIREWALL_NAT

Непрочитанное сообщение paradox » 2009-03-03 15:33:27

ну и где ваши тцпдампы?
показывайте как вы снимаете ваши тцп дампы
перепроверте на сервере внц все

Аватара пользователя
artem-ka
рядовой
Сообщения: 45
Зарегистрирован: 2008-10-30 20:32:03
Откуда: St. Petersburg

Re: IPFIREWALL_NAT

Непрочитанное сообщение artem-ka » 2009-03-03 15:42:14

paradox писал(а):ну и где ваши тцпдампы?
показывайте как вы снимаете ваши тцп дампы
перепроверте на сервере внц все
tcpdump:

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

gw# tcpdump -i lo0 -n port 7559
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo0, link-type NULL (BSD loopback), capture size 96 bytes
15:39:34.000978 IP xxx.xxx.xxx.xxx.50867 > xxx.xxx.xxx.xxx.7559: S 1623307630:1623307630(0) win 65535 <mss 16344,nop,wscale 3,sackOK,timestamp 8095418 0>
15:39:34.000995 IP xxx.xxx.xxx.xxx.7559 > xxx.xxx.xxx.xxx.50867: R 0:0(0) ack 1623307631 win 0
^C
2 packets captured
2 packets received by filter
0 packets dropped by kernel
VNC сервер фурычит, в сети напрямую коннектится.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: IPFIREWALL_NAT

Непрочитанное сообщение paradox » 2009-03-03 15:47:55

lo0 вроде локальный интерфейс
я где то говорил что то про локальный интерфейс? :cz2: 8)
ах да
я имел ввиду локальный который в локалку смотрит
мляяяя
и тцпдампЫ <--- как бы множественное число?

Аватара пользователя
artem-ka
рядовой
Сообщения: 45
Зарегистрирован: 2008-10-30 20:32:03
Откуда: St. Petersburg

Re: IPFIREWALL_NAT

Непрочитанное сообщение artem-ka » 2009-03-03 15:57:14

ipfw выглядит таким образом:

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

#!/bin/sh
fwcmd="/sbin/ipfw -q"

IF_Int="xl0"
IP_Int="192.168.1.1"
NET_Int="192.168.1.0/24"

IF_Ext="xl1"
IP_Ext="xxx.xxx.xxx.xxx"
NET_Ext="xxx.xxx.xxx.xxx/28"

IF_pptp="ng0"

# Сбрасываем все правила:
${fwcmd} -f flush

# Проверяем - соответствует ли пакет динамическим правилам:
${fwcmd} add check-state

# Bruteblock
${fwcmd} add deny ip from table\(1\) to any

# Разрешаем весь траффик по внутреннему интерфейсу
${fwcmd} add allow ip from any to any via lo0

# рубим попытки lo0 куда-то лезть и откуда-то лезть на lo0
${fwcmd} add deny ip from any to 127.0.0.0/8
${fwcmd} add deny ip from 127.0.0.0/8 to any

# режем частные сети на внешнем интерфейсе,etc
${fwcmd} add deny ip from any to 10.0.0.0/8 in via ${IF_Ext}
${fwcmd} add deny ip from any to 172.16.0.0/12 in via ${IF_Ext}
${fwcmd} add deny ip from any to 192.168.0.0/16 in via ${IF_Ext}
${fwcmd} add deny ip from any to 0.0.0.0/8 in via ${IF_Ext}
${fwcmd} add deny ip from any to 169.254.0.0/16 in via ${IF_Ext}
${fwcmd} add deny ip from any to 240.0.0.0/4 in via ${IF_Ext}
${fwcmd} add deny icmp from any to any frag
${fwcmd} add deny log icmp from any to 255.255.255.255 in via ${IF_Ext}
${fwcmd} add deny log icmp from any to 255.255.255.255 out via ${IF_Ext}

#squid
${fwcmd} add fwd 127.0.0.1,3128 tcp from ${NET_Int} to any 80 via ${IF_Ext}

${fwcmd} add allow tcp from any to any 7559
##### Запускаем NAT #####
${fwcmd} add nat 67 all from ${NET_Int} to any out via ${IF_Ext}
${fwcmd} add nat 67 all from any to ${IP_Ext} in via ${IF_Ext}
${fwcmd} nat 67 config ip ${IP_Ext} log redirect_port tcp 192.168.1.59:5900 7559

##### VPN-connect - это порт для даемона MPD, на него поступают запросы на авторизацию
${fwcmd} add allow tcp from any to me 1723 keep-state
${fwcmd} add allow gre from any to any via ${IF_Ext}
${fwcmd} add allow ip from any to any via ng0

# рубим траффик к частным сетям через внешний интерфейс, etc.
${fwcmd} add deny ip from 10.0.0.0/8 to any out via ${IF_Ext}
${fwcmd} add deny ip from 172.16.0.0/12 to any out via ${IF_Ext}
${fwcmd} add deny ip from 192.168.0.0/16 to any out via ${IF_Ext}
${fwcmd} add deny ip from 0.0.0.0/8 to any out via ${IF_Ext}
${fwcmd} add deny ip from 169.254.0.0/16 to any out via ${IF_Ext}
${fwcmd} add deny ip from 224.0.0.0/4 to any out via ${IF_Ext}
${fwcmd} add deny ip from 240.0.0.0/4 to any out via ${IF_Ext}

# разрешаем все установленные соединения
${fwcmd} add allow tcp from any to any established

${fwcmd} add allow ip from ${IP_Ext} to any out xmit ${IF_Ext}

#DNS снаружи
${fwcmd} add allow udp from any 53 to any via ${IF_Ext}
# DNS для bind
${fwcmd} add allow udp from any to any 53 via ${IF_Ext}
# разрешаем UDP (для синхронизации времени - 123 порт)
${fwcmd} add allow udp from any to any 123 via ${IF_Ext}

${fwcmd} add allow icmp from any to any icmptypes 0,8,11
# открываем снаружи 25 порт (SMTP)
${fwcmd} add allow tcp from any to ${IP_Ext} 25 via ${IF_Ext}
# открываем снаружи 143 порт (IMAP)
${fwcmd} add allow tcp from any to ${IP_Ext} 143 via ${IF_Ext}
# открываем снаружи 110 порт (POP)
${fwcmd} add allow tcp from any to ${IP_Ext} 110 via ${IF_Ext}

${fwcmd} add allow ip from any to any via ${IF_Int}
${fwcmd} add deny log ip from any to any

Аватара пользователя
artem-ka
рядовой
Сообщения: 45
Зарегистрирован: 2008-10-30 20:32:03
Откуда: St. Petersburg

Re: IPFIREWALL_NAT

Непрочитанное сообщение artem-ka » 2009-03-03 15:59:14

paradox писал(а):lo0 вроде локальный интерфейс
я где то говорил что то про локальный интерфейс? :cz2: 8)
ах да
я имел ввиду локальный который в локалку смотрит
мляяяя
и тцпдампЫ <--- как бы множественное число?
А на нем вообще тишина... :unknown:

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: IPFIREWALL_NAT

Непрочитанное сообщение paradox » 2009-03-03 16:04:06

ну уж простите))
тогда смотрите в фаервол
если у вас с одного интрефейса на другой уже пакеты не доходят...