"FreeBSD, nat+firewall"

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

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

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
dmitriy10
проходил мимо

"FreeBSD, nat+firewall"

Непрочитанное сообщение dmitriy10 » 2010-10-27 15:41:07

схема --
http://img716.imageshack.us/img716/5584/sxema1.gif
как понять - что именно мешает ноуту выходить в и-нет?
какой еще информации не хватает на схеме? :)

с фрибсд раньше не работал вообще, все делаю по мануалам, в результате ужал фаерволл вот до того что на схеме - результата все равно нет.

p.s.
# uname -a
FreeBSD mail2 6.4-RELEASE FreeBSD 6.4-RELEASE #0: Wed Nov 26 12:11:1
6 UTC 2008 root@dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/SMP i386

p.p.s.
с сервера 8.8.8.8 пингуется, а с ноута - нет
хочется понять почему с ноута ничего не работает

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

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

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение snorlov » 2010-10-27 15:55:59

dmitriy10 писал(а):схема --
http://img716.imageshack.us/img716/5584/sxema1.gif
как понять - что именно мешает ноуту выходить в и-нет?
какой еще информации не хватает на схеме? :)
Ничего не понятно, у вас что, 2-е vlan'ы, которые выпускаете через каталист, причем в одной vlan1 висит фря и циска, а в другой vlan2 фря и нотик, и вы хотите чтобы чтобы vlan2 у вас пускалась в инет через nat на vlan1. Правильно я понял или же нет, но тогда причем здесь сервер 8.8.8.8?

dmitriy01
рядовой
Сообщения: 42
Зарегистрирован: 2010-10-27 15:38:45

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение dmitriy01 » 2010-10-27 16:20:14

на циске2811 поднят влан119. подсеть х.х.х.16/28 (айпишник циски х.х.х.17)
на физическом интерфейсе сервера (em0) поднятно два саб-интерфейса, алиасы, как угодно их можно назвать, эти интерфейсы называются "vlan119" и "vlan401", потому что они в виланах 119 и 401ом.

на интерфейсе сервера "vlan119" - ip x.x.x.19
на интерфейсе сервера "vlan401" - ip 10.0.1.254
на интерфейсе сервера em0 - ip x.x.x.30

я хочу чтоб сервер раздавал и-нет, который он получает от циски, ноутбуку, который силит в 401 вилане и имеет адрес из диапазона 10.0.1.0 /24

правила фаервола разрешают все вообще всем
в файле конфигурации ядра написано вроде бы то что нужно
роутинговая таблица тоже, вроде бы, в порядке.

по уму надо бы циску отрезать вообще и обозвать этот конец как ISP и все.
но хотелось деталей больше указать на схеме :)



сервер 8.8.8.8 -- это гугловский днс, я его пингую чтоб проверить есть и-нет или нет :)

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение sch » 2010-10-27 17:25:09

1. что указано в rc.conf для natd_interface? должен быть vlan119

2. Я правильно понял, что физический интерфейс em0 вообще в работе сети не участвует? Судя по схеме: реальная подсеть x.x.x.16/28 доступна через vlan119, внутренняя сеть 10.0.1.0/24 доступна через vlan401.

3. Предполагая, что мои предположения верны - должен работать набор правил:

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

allow ip from any to any via lo0
deny ip from any to 127.0.0.0/8
deny ip from 127.0.0.0/8 to any

allow all from 10.0.1.0/24 to 10.0.1.0/24 via vlan401

deny ip from any to 0.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.0.0/16,192.0.2.0/24 out via vlan119
deny ip from 0.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.0.0/16,192.0.2.0/24 to any in via vlan119

deny ip from any to 224.0.0.0/4,240.0.0.0/4 out via vlan119
deny ip from 224.0.0.0/4,240.0.0.0/4 to any in via vlan119

divert 8668 all from 10.0.1.0/24 to any out via vlan119
divert 8668 all from any to 10.0.1.0/24 in recv vlan119
allow all from any to any
если заработает - то последнее правило allow all from any to any надо будет заменить на требуемый набор разрешений и запретов.

dmitriy01
рядовой
Сообщения: 42
Зарегистрирован: 2010-10-27 15:38:45

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение dmitriy01 » 2010-10-27 18:41:07

1. что указано в rc.conf для natd_interface? должен быть vlan119
было em0
2. Я правильно понял, что физический интерфейс em0 вообще в работе сети не участвует? Судя по схеме: реальная подсеть x.x.x.16/28 доступна через vlan119, внутренняя сеть 10.0.1.0/24 доступна через vlan401.
да, все совершенно верно. em0 был присвоен адрес для удобства управления.
если заработает - то последнее правило allow all from any to any надо будет заменить на требуемый набор разрешений и запретов.

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

# ipfw show
00100   0     0 check-state
00200   0     0 allow ip from any to any via lo0
00300   0     0 deny ip from any to 127.0.0.0/8
00400   0     0 deny ip from 127.0.0.0/8 to any
00500  10   708 allow ip from 10.0.1.0/24 to 10.0.1.0/24 via vlan401
00600   0     0 deny ip from any to 0.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.0.0/16,192.0.2.0/24 out via vlan119
00700   0     0 deny ip from 0.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.0.0/16,192.0.2.0/24 to any in via vlan119
00800   0     0 deny ip from any to 224.0.0.0/4,240.0.0.0/4 out via vlan119
00900   0     0 deny ip from 224.0.0.0/4,240.0.0.0/4 to any in via vlan119
01000   0     0 divert 8668 ip from 10.0.1.0/24 to any out via vlan119
01100   0     0 divert 8668 ip from any to 10.0.1.0/24 in recv vlan119
01200 233 27122 allow ip from any to any
01300   0     0 deny ip from any to any
65535   0     0 deny ip from any to any
не работает :(

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение sch » 2010-10-27 21:58:11

Сейчас получается, что у тебя диверт вообще не работает - счетчик на правилах нулевой... давай проверять версии - или natd не запущен, или у него другой номер сокета.

проверь через команду sockstat | grep natd

dmitriy01
рядовой
Сообщения: 42
Зарегистрирован: 2010-10-27 15:38:45

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение dmitriy01 » 2010-10-28 9:19:29

sch писал(а):Сейчас получается, что у тебя диверт вообще не работает - счетчик на правилах нулевой... давай проверять версии - или natd не запущен, или у него другой номер сокета.

проверь через команду sockstat | grep natd

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

# sockstat | grep natd
root     natd       1726  3  div4   *:8668                *:*
root     natd       1726  4  dgram  -> /var/run/logpriv

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение sch » 2010-10-28 10:40:45

Хорошо, будем проверять все с самого начала.

Адрес, маска и шлюз на ноуте?
Дефолтный маршрут на роутере freebsd должен работать через vlan119, а не em0. Чтобы это получить - убери адрес реальной сети с интерфейса em0 и добавь руками дефолтный маршрут

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

ifconfig em0 -alias x.x.x.30
route add default x.x.x.17
Проверь, что на роутере freebsd значение sysctl net.inet.ip.forwarding равно "1"
Выполни "/etc/rc.d/natd restart" и посмотри /var/log/messages на тему сообщений о проблемах

dmitriy01
рядовой
Сообщения: 42
Зарегистрирован: 2010-10-27 15:38:45

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение dmitriy01 » 2010-10-28 12:12:40

Адрес, маска и шлюз на ноуте?
10.0.1.2
255.255.255.0
10.0.1.254
Дефолтный маршрут на роутере freebsd должен работать через vlan119, а не em0. Чтобы это получить - убери адрес реальной сети с интерфейса em0 и добавь руками дефолтный маршрут

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

# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            xxx.xx.xxx.17      UGS         0     3027 vlan11
10.0.1/24          link#4             UC          0        0 vlan40
10.0.1.2           00:22:15:7a:e4:17  UHLW        1      970 vlan40    833
127.0.0.1          127.0.0.1          UH          0       97    lo0
xx.xx.xxx.16/28   link#3             UC          0        0 vlan11
xxx.xx.xxx.17      00:1c:58:f6:e7:79  UHLW        2        0 vlan11   1178

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

2# ifconfig
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=1b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING>
        ether 00:13:20:e9:29:b7
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
vlan119: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet xxx.xx.xxx.19 netmask 0xfffffff0 broadcast xxx.xx.xxx.31
        ether 00:13:20:e9:29:b7
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 119 parent interface: em0
vlan401: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 10.0.1.254 netmask 0xffffff00 broadcast 10.0.1.255
        ether 00:13:20:e9:29:b7
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 401 parent interface: em0

Проверь, что на роутере freebsd значение sysctl net.inet.ip.forwarding равно "1"
в sysctl.conf было только net.inet.ip.fw.enable: 1
добавил net.inet.ip.fw.forwarding: 1
Выполни "/etc/rc.d/natd restart" и посмотри /var/log/messages на тему сообщений о проблемах

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

# /etc/rc.d/natd restart
Stopping natd.
Waiting for PIDS: 599, 599, 599, 599, 599.
Starting natd.
единственное сообщение с WARNING там --
root: /etc/rc.d/sysctl: WARNING: sysctl net.inet.ip.fw.enable: does not exist.

тем не менее в sysctl.conf есть строчка net.inet.ip.fw.enable: 1

результат тот же --
с сервера доступ в инет есть, с ноута - нет.

dmitriy01
рядовой
Сообщения: 42
Зарегистрирован: 2010-10-27 15:38:45

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение dmitriy01 » 2010-10-28 12:21:17

крайне смущают две надписи в /var/log/messages
freebsd root: /etc/rc.d/sysctl: WARNING: sysctl net.inet.ip.fw.enable: does not exist
freebsd root: /etc/rc.d/sysctl: WARNING: sysctl net.inet.ip.fw.forwarding: does not exist

dmitriy01
рядовой
Сообщения: 42
Зарегистрирован: 2010-10-27 15:38:45

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение dmitriy01 » 2010-10-28 12:44:10

после добавления gateway_enable="YES" в rc.conf
ipfw show выдало следующеe

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

# ipfw show
00100   0     0 check-state
00200  82  8832 allow ip from any to any via lo0
00300   0     0 deny ip from any to 127.0.0.0/8
00400   0     0 deny ip from 127.0.0.0/8 to any
00500   6   360 divert 8668 ip from 10.0.1.0/24 to any out via vlan119
00600   0     0 divert 8668 ip from any to *.*.*.17 in via vlan119
00700 257 25317 allow ip from any to any
65535   0     0 deny ip from any to any

dmitriy01
рядовой
Сообщения: 42
Зарегистрирован: 2010-10-27 15:38:45

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение dmitriy01 » 2010-10-28 13:05:15

tcpdump -i vlan119 icmp

ping www.ru с сервера и ping 8.8.8.8 с ноута

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


# tcpdump -i vlan119 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vlan119, link-type EN10MB (Ethernet), capture size 96 bytes
13:56:34.530661 IP x.x.x.19 > google-public-dns-a.google.com: ICMP echo request, id 512, seq 58137, length 40
13:56:34.583213 IP google-public-dns-a.google.com > x.x.x.19: ICMP echo reply, id 512, seq 58137, length 40
13:56:40.031885 IP x.x.x.19 > google-public-dns-a.google.com: ICMP echo request, id 512, seq 59929, length 40
13:56:40.085184 IP google-public-dns-a.google.com > x.x.x.19: ICMP echo reply, id 512, seq 59929, length 40

# tcpdump -i vlan119 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vlan119, link-type EN10MB (Ethernet), capture size 96 bytes
13:58:11.454822 IP x.x.x.19 > www.ru: ICMP echo request, id 58371, seq 8, length 64
13:58:11.464784 IP www.ru > x.x.x.19: ICMP echo reply, id 58371, seq 8, length 64
13:58:12.457865 IP x.x.x.19 > www.ru: ICMP echo request, id 58371, seq 9, length 64
13:58:13.460911 IP x.x.x.19 > www.ru: ICMP echo request, id 58371, seq 10, length 64
13:58:13.470770 IP www.ru > x.x.x.19: ICMP echo reply, id 58371, seq 10, length 64
13:58:14.463992 IP x.x.x.19 > www.ru: ICMP echo request, id 58371, seq 11, length 64


dmitriy01
рядовой
Сообщения: 42
Зарегистрирован: 2010-10-27 15:38:45

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение dmitriy01 » 2010-10-28 13:31:04

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

00500   6   360 divert 8668 ip from 10.0.1.0/24 to any out via vlan119
00600   0     0 divert 8668 ip from any to *.*.*.17 in via vlan119
поменял на *.19 и все взлетело

тему можно закрывать, всем помогавшим - огромное спасибо
Последний раз редактировалось Alex Keda 2010-10-28 20:18:11, всего редактировалось 1 раз.
Причина: Товарищщи, цените чужое время, юзайте кнопочку [code]...

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение sch » 2010-10-28 19:31:18

выводы сделаешь сам?
надо обязательно подчеркнуть где была проблема - хотя бы для себя любимого

по ходу я в одном месте промахнулся, и в одном месте у тебя не было настроено ;-)
Последний раз редактировалось sch 2010-10-28 19:33:18, всего редактировалось 1 раз.

dmitriy01
рядовой
Сообщения: 42
Зарегистрирован: 2010-10-27 15:38:45

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение dmitriy01 » 2010-10-28 19:32:39

sch писал(а):выводы сделаешь сам?
надо обязательно подчеркнуть где была проблема - хотя бы для себя любимого
вывод -- где блин в мануале по настройке была фраза про gateway_enable="YES" в rc.conf ????
я штук пять нашел - ни в одном не было
видимо не те читал

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение sch » 2010-10-28 19:34:54

да, gateway_enable это главное, чего не хватало
а я в правиле divert для входящего интернет-трафика указал внутреннюю сеть в качестве адреса назначения, а надо было внешний адрес роутера

dmitriy01
рядовой
Сообщения: 42
Зарегистрирован: 2010-10-27 15:38:45

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение dmitriy01 » 2010-10-29 9:11:16

sch писал(а):да, gateway_enable это главное, чего не хватало
а я в правиле divert для входящего интернет-трафика указал внутреннюю сеть в качестве адреса назначения, а надо было внешний адрес роутера
а в мануалах этого не было потому что
gateway_enable="YES"
то же самое что и
в файл /etc/sysctl.conf добавить строчку: net.inet.ip.forwarding=1

но у меня там есть эта строчка

вот бы теперь понять почему не работала она

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение sch » 2010-10-29 9:21:15

Разработчики системы в своей работе предполагают, что настройка ОС производится через параметры в /etc/rc.conf
Напрямую в /etc/sysctl.conf параметры устанавливаются редко.
Если ты только начинаешь с FreeBSD, то обязательно потрать время на чтение /etc/defaults/rc.conf и man rc

dmitriy01
рядовой
Сообщения: 42
Зарегистрирован: 2010-10-27 15:38:45

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение dmitriy01 » 2010-10-29 9:26:07

sch писал(а):Разработчики системы в своей работе предполагают, что настройка ОС производится через параметры в /etc/rc.conf
Напрямую в /etc/sysctl.conf параметры устанавливаются редко.
писатели мануалов предполагают иначе! :)
sch писал(а): Если ты только начинаешь с FreeBSD, то обязательно потрать время на чтение /etc/defaults/rc.conf и man rc
спасибо, обязательно почитаю.
время где бы взять на все это, объемы документации про freebsd нагоняют тоску! мне, к счастью, от нее нужен только роутинг, в основном. (ну и ведение логов всяких)

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение sch » 2010-10-31 11:06:17

вот как раз в /etc/defaults/rc.conf ты найдешь массу переменных, управляющих значением sysctl без прямого редактирования /etc/sysctl.conf
а мануалы в интернете пишут люди разной квалификации и опыта - и по большей части как раз с небольшим опытом, только что-то получилось, так на радостях в порыве эйфории пишется how-to "как мне удалось чудом настроить роутинг, хотя я сам не понял, как это получилось!!!" :shock:

dmitriy01
рядовой
Сообщения: 42
Зарегистрирован: 2010-10-27 15:38:45

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение dmitriy01 » 2010-11-01 13:27:12

sch писал(а):а мануалы в интернете пишут люди разной квалификации и опыта
[подмигивает]
мануал брал вот этот
http://www.lissyara.su/articles/freebsd/tuning/ipfw/

p.s. ловко я отцитировал! :)

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение sch » 2010-11-01 15:28:38

ну во первых, авторство хозяина форума не отменяет мое мнение "мануалы в интернете пишут люди разной квалификации и опыта" [подмигиваю в ответ]
а во вторых статься про настройку ipfw и про роутинг там естественно ничего нет :oops:

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

Re: "FreeBSD, nat+firewall"

Непрочитанное сообщение snorlov » 2010-11-18 17:52:21

Большинство юзают версии 7 и 8, а ты разбирался с 6.4, слабо богу тебе еще ядерный нат не порекомендовали использовать...