Ядерный NAT + IPFW проблема с выходом в Интернет.

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Призрак
рядовой
Сообщения: 33
Зарегистрирован: 2012-09-10 10:07:57

Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Призрак » 2012-11-05 19:11:56

Здравствуйте, уважаемые!

Поднял NAT на FreeBSD 8.3, решил настроить его с IPFW. И весь мозг уже себе сломал, но никак не могу заставить заработать Интернет на FreeBSD 8.3 с NAT.

Конфигурация сети:

Интернет провайдер Ростелеком, подключен через роутер D-Link Dir300/NRU IP адреса Ростелеком выдает автоматически при подключении. На самом роутере IP адрес

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

192.168.1.1
Мой компьютер подключен к роутеру и имеет следующие сетевые настройки:

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

IP 192.168.1.2
mask 255.255.255.0
Основной шлюз 192.168.1.1
DNS провайдера 212.120.160.130
FreeBSD развернута на виртуальной машине VirtualBox на моем компьютере, тип подключения сетевой мост.

Настройки сетевых карт FreeBSD следующие: (вторую создавал для NAT чтобы подключать клиентов)

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

em0 (смотрит в Интернет)
IP 192.168.1.4
mask 255.255.255.0

em1 192.168.10.1(смотрит внутрь)
mask 255.255.255.0
DNS для обеих карт установил в

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

212.120.160.130
До пересборки ядра сеть работала прекрасно, все пинговалось, обновлялись порты. Но после пересборки даже при добавлении правил IPFW нет пинга кроме как на собственные адреса (192.168.1.4, 192.168.10.1), Интернета нет вообще. При попытке пинговать DNS провайдера высвечивается надпись no route to host при попытке пинговать мой компьютер (192.168.1.2) и роутер (192.268.1.1) высвечивается надпись host is down. При пробном наборе команды portsnap fetch update в журнале security появляется следующая надпись:

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

ipfw 800 deny UDP 192.468.1.4:(случайный порт типа 44888) 212.120.160.130:53 out via em0 
Опции ядра:

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

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_NAT
options LIBALIAS
options ROUTETABLES=2
options DUMMYNET
options HZ="1000"
options IPSEC
options IPSEC_DEBUG
device crypto
Содержимое rc.conf:

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

gateway_enable="YES"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_script="/etc/rc.ipfw"
ifconfig_em1="inet 192.168.10.1 netmask 255.255.255.0"
ifconfig_em0="inet 192.168.1.4 netmask 255.255.255.0"
defaultrouter="192.168.1.1"
hostname="home.test"
Содержимое rc.ipfw

Тут у меня было 2 варианта - 1 вариант рабочий с сервера без NAT просто я добавлял к нему настройки NAT (выделены пробелами), второй чисто только с NAT

1 вариант:

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

#!/bin/sh
ipfw -q -f flush
inetif="em0"
lanif="em1"
cmd="ipfw -q -add"
ks="keep-state"
$cmd check-state
$cmd deny all from any to any frag
$cmd deny all from any to any established
$cmd allow ip from any to any via $lanif
$cmd allow all from any to any via lo0
$cmd allow icmp from any to any icmptypes 0, 3, 8, 11
$cmd allow tcp from any to any out via $inetif setup $ks
$cmd allow udp from any to any out via $inetif $ks

ipfw nat 1 config log if $inetif reset same_ports
$cmd nat 1 ip from any to 192.168.1.4 via $inetif

$cmd deny ip from any to any not verrevpath in
$cmd deny log ip from any to any
2 вариант:

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

#!/bin/sh
ipfw -q -f flush
inetif="em0"
lanif="em1"
cmd="ipfw -q -add"
ks="keep-state"
ipfw nat 1 config log if $inetif reset same_ports
$cmd nat 1 ip from any to 192.168.1.4 via $inetif
$cmd deny ip from any to any not verrevpath in
$cmd deny log ip from any to any
При обоих вариантах пинг все равно не проходит ни в ту ни в другую сторону, и Интернета нету.

Помогите пожалуйста решить проблему.

Хостинговая компания 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/

Призрак
рядовой
Сообщения: 33
Зарегистрирован: 2012-09-10 10:07:57

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Призрак » 2012-11-05 19:52:14

Ошибся с названием роутера - не D-Link DIR-300/NRU а D-Link DSL-2640/U/BRU/D, приношу свои извинения!


Призрак
рядовой
Сообщения: 33
Зарегистрирован: 2012-09-10 10:07:57

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Призрак » 2012-11-05 20:47:29

шёл_мимо писал(а):/etc/resolv.conf - чего там?

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

domain test
nameserver 212.120.160.130

шёл_мимо
проходил мимо

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение шёл_мимо » 2012-11-05 22:43:27

ipfw nat 1 config log if $inetif reset same_ports
$cmd nat 1 ip from any to 192.168.1.4 via $inetif
заменить на

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

ipfw nat 1 config log ip $inetif reset same_ports
$cmd nat 1 ip from any to any via $inetif

Призрак
рядовой
Сообщения: 33
Зарегистрирован: 2012-09-10 10:07:57

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Призрак » 2012-11-06 5:30:11

шёл_мимо писал(а):
ipfw nat 1 config log if $inetif reset same_ports
$cmd nat 1 ip from any to 192.168.1.4 via $inetif
заменить на

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

ipfw nat 1 config log ip $inetif reset same_ports
$cmd nat 1 ip from any to any via $inetif
Пробовал, с тем же успехом. Кстати, при варианте №1 правил IPFW со строчками

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

$cmd allow log tcp from any to any out via $inetif setup $ks
$cmd allow log udp from any to any out via $inetif $ks
при пробном наборе команды portsnap fetch update в журнале security появляется следующая надпись:

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

ipfw 800 Accept UDP 192.468.1.4:(случайный порт типа 44888) 212.120.160.130:53 out via em0
то есть обращение уже разрешено! Да только все равно нету толку, Интернет отсутствует. Судя по записям в этом логе разрешен и пинг, то есть тоже написано Accept при правиле:

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

$cmd allow log icmp from any to any icmptypes 0, 3, 8, 11
Но к бестолку. Все равно высвечивает при пинге для 192.168.1.1 host is down а для 212.120.160.130 no route to host. Явно я делаю что-то неправильно либо не работает NAT.

Гость
проходил мимо

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Гость » 2012-11-06 9:05:00

Лень все читать, но у меня были и остались проблемы с натом на дир пробовал 655, 320 я тоже новичек не исключаю кривые руки, все же грешу на длинк. Как вариант попробовать напрямую.

Призрак
рядовой
Сообщения: 33
Зарегистрирован: 2012-09-10 10:07:57

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Призрак » 2012-11-06 9:18:21

Гость писал(а):Лень все читать, но у меня были и остались проблемы с натом на дир пробовал 655, 320 я тоже новичек не исключаю кривые руки, все же грешу на длинк. Как вариант попробовать напрямую.
Подумайте, как я могу грешить на оборудование, если до пересборки ядра и включения туда ipfw и nat все работало отлично? Я понимаю что у меня кривые руки, вот и задал вопрос. Между тем, у меня на рабочем сервере ipfw пашет на отлично (без NAT, напрямую к провайдеру), там развернуты FTP и WEB и отлично работают, правила ipfw выполняются. Я даже мента поставил (Fail2Ban) для того, чтобы сбрасывать паразитов в клетку. Справляется на отлично.

snorlov
подполковник
Сообщения: 3716
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение snorlov » 2012-11-06 10:11:13

У меня, правда в другой ситуации, nat и dns не хотели трудится, когда фря в виртуалбоксе крутилась, экспериментировал... Правда потом все заработало, но какие конкретно правила крутил уже не вспомню, а та же конфигурация на живой машине взлетела без танец с бубнами...

Аватара пользователя
Shuba
ст. сержант
Сообщения: 365
Зарегистрирован: 2008-03-25 10:58:21
Откуда: Минск
Контактная информация:

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Shuba » 2012-11-06 10:19:02

Сделай

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

ipfw -t show
и

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

ipfw nat 1 show config
и кинь сюда результат
Сила ночи, сила дня - одинакова фигня!

Аватара пользователя
sadchok
сержант
Сообщения: 271
Зарегистрирован: 2011-10-13 10:40:54
Откуда: Алтайский край

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение sadchok » 2012-11-06 11:06:22

Начни все с начала.
Отключи фаервол, на сервере должен появится инет.
В настройках D-Link пропиши маршрут до подсети 192.168.10.0 , в ней должен появится инет (через NAT на D-Link).
Далее врубай фаервол и добавляй правила, отслеживай как ходят пакеты.
Делай все пошагово, так проще разгребать.
The brain can not be found. Runs the software emulation

Аватара пользователя
sadchok
сержант
Сообщения: 271
Зарегистрирован: 2011-10-13 10:40:54
Откуда: Алтайский край

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение sadchok » 2012-11-06 12:01:07

2 вариант:

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

    #!/bin/sh
    ipfw -q -f flush
    inetif="em0"
    lanif="em1"
    cmd="ipfw -q -add"
    ks="keep-state"
    ipfw nat 1 config log if $inetif reset same_ports
    $cmd nat 1 ip from any to 192.168.1.4 via $inetif
    $cmd deny ip from any to any not verrevpath in
    $cmd deny log ip from any to any
Для интерфейса em1 у вас действует правило deny.
Попробуйте прописать allow ip from any to any via $lanif.
Для NAT заменить nat 1 ip from any to 192.168.1.4 via $inetif на nat 1 ip from any to any via $inetif

Ну и пропустить пакеты для себя.

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

$cmd  check-state
$cmd  allow ip from me to any keep-state 

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

#!/bin/sh
    ipfw -q -f flush
    inetif="em0"
    lanif="em1"
    cmd="ipfw -q -add"
$cmd check-state
$cmd allow ip from me to any keep-state
$cmd allow ip from any to any via $lanif
ipfw nat 1 config log if $inetif reset same_ports
$cmd nat 1 ip from any to any via $inetif
$cmd deny ip from any to any not verrevpath in
$cmd deny log ip from any to any
The brain can not be found. Runs the software emulation

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1284
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение vintovkin » 2012-11-06 16:17:30

tcpdump-ом подебажте, посмотрите где пакеты дропаются ...
Junos OS kernel based on FreeBSD UNIX.

Призрак
рядовой
Сообщения: 33
Зарегистрирован: 2012-09-10 10:07:57

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Призрак » 2012-11-06 17:37:48

Shuba писал(а):Сделай

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

ipfw -t show
и

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

ipfw nat 1 show config
и кинь сюда результат
ipfw -t show.png
Вывод команды ipfw -t show
ipfw -t show.png (11.29 КБ) 1284 просмотра
ipfw nat 1 show config.png
Вывод команды ipfw nat 1 show config
ipfw nat 1 show config.png (2.89 КБ) 1284 просмотра

Призрак
рядовой
Сообщения: 33
Зарегистрирован: 2012-09-10 10:07:57

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Призрак » 2012-11-06 17:53:42

sadchok писал(а):Начни все с начала.
Отключи фаервол, на сервере должен появится инет.
В настройках D-Link пропиши маршрут до подсети 192.168.10.0 , в ней должен появится инет (через NAT на D-Link).
Далее врубай фаервол и добавляй правила, отслеживай как ходят пакеты.
Делай все пошагово, так проще разгребать.
IPFW впаян в ядро, отключить его так невозможно, разве что оттуда выпаивать.

Призрак
рядовой
Сообщения: 33
Зарегистрирован: 2012-09-10 10:07:57

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Призрак » 2012-11-06 18:02:52

sadchok писал(а):2 вариант:

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

    #!/bin/sh
    ipfw -q -f flush
    inetif="em0"
    lanif="em1"
    cmd="ipfw -q -add"
    ks="keep-state"
    ipfw nat 1 config log if $inetif reset same_ports
    $cmd nat 1 ip from any to 192.168.1.4 via $inetif
    $cmd deny ip from any to any not verrevpath in
    $cmd deny log ip from any to any
Для интерфейса em1 у вас действует правило deny.
Попробуйте прописать allow ip from any to any via $lanif.
Для NAT заменить nat 1 ip from any to 192.168.1.4 via $inetif на nat 1 ip from any to any via $inetif

Ну и пропустить пакеты для себя.

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

$cmd  check-state
$cmd  allow ip from me to any keep-state 

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

#!/bin/sh
    ipfw -q -f flush
    inetif="em0"
    lanif="em1"
    cmd="ipfw -q -add"
$cmd check-state
$cmd allow ip from me to any keep-state
$cmd allow ip from any to any via $lanif
ipfw nat 1 config log if $inetif reset same_ports
$cmd nat 1 ip from any to any via $inetif
$cmd deny ip from any to any not verrevpath in
$cmd deny log ip from any to any
Это конечно верно, но все бесполезно. Вот вывод после команды ipfw show:
ipfw show.png
Вывод команды ipfw show
ipfw show.png (5.55 КБ) 1280 просмотров
Тут видно, что разрешается все несомненно, и после набора команды portsnap fetch update, и после команды ping 192.168.1.1, что подтверждается вот этим:
tail var log security.png
Вывод команды tail /var/log/security
Но видно, что NAT мертв...


Призрак
рядовой
Сообщения: 33
Зарегистрирован: 2012-09-10 10:07:57

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Призрак » 2012-11-06 19:26:08

Все перепробовал ничего не помогает. При выводе команды

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

ipfw nat 1 show
высвечивается просто
и никакой информации. Что еще надо я не понимаю вообще. У меня сервер без NAT с IPFW с WEB и FTP пашет только так, а тут хоть тресни, ни в какую не хочет.

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1284
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение vintovkin » 2012-11-06 19:54:19

с точки зрения теории, нат и фаервол это два разных механизма , у лиса куча статей хороших на сайте есть для этого дела, вы там были???
Junos OS kernel based on FreeBSD UNIX.

Призрак
рядовой
Сообщения: 33
Зарегистрирован: 2012-09-10 10:07:57

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Призрак » 2012-11-06 20:42:10

vintovkin писал(а):с точки зрения теории, нат и фаервол это два разных механизма , у лиса куча статей хороших на сайте есть для этого дела, вы там были???
Конечно был, а как же! Кстати, статьи я не сказал бы что полезные, я настраивал и IPFW и WEB сервер и FTP не по этим статьям, хотя конечно кое что и взял. Перепробовал все, что написано в статьях по NAT бесполезно, ничего не работает нормально.

Аватара пользователя
BirdGovorun
лейтенант
Сообщения: 878
Зарегистрирован: 2009-10-20 20:27:13
Откуда: Харьков.

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение BirdGovorun » 2012-11-06 21:15:09

http://www.lissyara.su/articles/freebsd ... /ipfw_nat/ по этой статье за 10 минут
В rc.conf

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

gateway_enable="YES"
defaultrouter="ale0"

firewall_enable="YES"
firewall_nat_enable="YES"
firewall_nat_interface="ale0"
firewall_flags="unreg_only same_ports unregistered_only"
firewall_script="/usr/local/etc/rc.d/ipfw_rules"
ipfw_rules

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

#!/bin/sh

ipfw -q -f flush

ipfw nat 123 config log if ale0
ipfw add nat 123 all from any to any via ale0

ipfw -q add 1100 pass all from any to any 
Раздаю интернет компу жены, через свой, до этого был natd.
Заработало без проблем.
Провайдер выдаёт динамический IP.

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

ale0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c319a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MCAST,WOL_MAGIC,VLAN_HWTSO,LINKSTATE>
        ether 00:1b:fc:fe:8a:9c
        inet 77.120.146.13 netmask 0xfffffe00 broadcast 77.120.147.255
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2009<RXCSUM,VLAN_MTU,WOL_MAGIC>
        ether 00:d0:b7:0b:2e:6f
        inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
        inet6 fe80::2d0:b7ff:fe0b:2e6f%fxp0 prefixlen 64 scopeid 0xc 
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active

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

ipfw show
00100 4095 2200469 nat 123 ip from any to any via ale0
01100 2532 1415017 allow ip from any to any
65535   20    1740 deny ip from any to any

Аватара пользователя
BirdGovorun
лейтенант
Сообщения: 878
Зарегистрирован: 2009-10-20 20:27:13
Откуда: Харьков.

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение BirdGovorun » 2012-11-06 21:21:02

Да вот ещё:

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

ipfw nat 123 show
nat 123: icmp=0, udp=18, tcp=5, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=23

Проходимец
проходил мимо

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Проходимец » 2012-11-07 8:35:02

Влезу в чужую тему, да простит меня автор. Пробовал натом пробросить в интернет опенвпн и вот лог с DIRа

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

DNS relay ALG rejected packet from 10.10.100.2:59210 to 87.253.13.14:53
[INFO]   Mon Oct 22 15:47:15 2012   Dropped packet from 10.10.100.2 to 87.253.13.14 (IP protocol 17) as unable to create new session
Или на Дире надо маршрут прописать. Это я к тому что без ната все работает, посмотрите логи в роутере.

Залётныё
проходил мимо

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Залётныё » 2012-11-07 8:52:33

Проходимец писал(а):Влезу в чужую тему, да простит меня автор. Пробовал натом пробросить в интернет опенвпн и вот лог с DIRа

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

DNS relay ALG rejected packet from 10.10.100.2:59210 to 87.253.13.14:53
[INFO]   Mon Oct 22 15:47:15 2012   Dropped packet from 10.10.100.2 to 87.253.13.14 (IP protocol 17) as unable to create new session
Или на Дире надо маршрут прописать. Это я к тому что без ната все работает, посмотрите логи в роутере.
У ТС НАТ совсем не работает, маршруты это после того, когда заработает.

Проходимец
проходил мимо

Re: Ядерный NAT + IPFW проблема с выходом в Интернет.

Непрочитанное сообщение Проходимец » 2012-11-07 9:17:09

Может поможете с маршрутом?! ИП роутера 192.168.0.1 ип тачки с впн 192.168.0.2 подсеть опенвпн 10.10.100.0/24