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

"FreeBSD, nat+firewall"

Добавлено: 2010-10-27 15:41:07
dmitriy10
схема --
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 пингуется, а с ноута - нет
хочется понять почему с ноута ничего не работает

Re: "FreeBSD, nat+firewall"

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

Re: "FreeBSD, nat+firewall"

Добавлено: 2010-10-27 16:20:14
dmitriy01
на циске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 -- это гугловский днс, я его пингую чтоб проверить есть и-нет или нет :)

Re: "FreeBSD, nat+firewall"

Добавлено: 2010-10-27 17:25:09
sch
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 надо будет заменить на требуемый набор разрешений и запретов.

Re: "FreeBSD, nat+firewall"

Добавлено: 2010-10-27 18:41:07
dmitriy01
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
не работает :(

Re: "FreeBSD, nat+firewall"

Добавлено: 2010-10-27 21:58:11
sch
Сейчас получается, что у тебя диверт вообще не работает - счетчик на правилах нулевой... давай проверять версии - или natd не запущен, или у него другой номер сокета.

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

Re: "FreeBSD, nat+firewall"

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

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

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

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

Re: "FreeBSD, nat+firewall"

Добавлено: 2010-10-28 10:40:45
sch
Хорошо, будем проверять все с самого начала.

Адрес, маска и шлюз на ноуте?
Дефолтный маршрут на роутере 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 на тему сообщений о проблемах

Re: "FreeBSD, nat+firewall"

Добавлено: 2010-10-28 12:12:40
dmitriy01
Адрес, маска и шлюз на ноуте?
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

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

Re: "FreeBSD, nat+firewall"

Добавлено: 2010-10-28 12:21:17
dmitriy01
крайне смущают две надписи в /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

Re: "FreeBSD, nat+firewall"

Добавлено: 2010-10-28 12:44:10
dmitriy01
после добавления 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

Re: "FreeBSD, nat+firewall"

Добавлено: 2010-10-28 13:05:15
dmitriy01
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


Re: "FreeBSD, nat+firewall"

Добавлено: 2010-10-28 13:31:04
dmitriy01

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

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 и все взлетело

тему можно закрывать, всем помогавшим - огромное спасибо

Re: "FreeBSD, nat+firewall"

Добавлено: 2010-10-28 19:31:18
sch
выводы сделаешь сам?
надо обязательно подчеркнуть где была проблема - хотя бы для себя любимого

по ходу я в одном месте промахнулся, и в одном месте у тебя не было настроено ;-)

Re: "FreeBSD, nat+firewall"

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

Re: "FreeBSD, nat+firewall"

Добавлено: 2010-10-28 19:34:54
sch
да, gateway_enable это главное, чего не хватало
а я в правиле divert для входящего интернет-трафика указал внутреннюю сеть в качестве адреса назначения, а надо было внешний адрес роутера

Re: "FreeBSD, nat+firewall"

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

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

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

Re: "FreeBSD, nat+firewall"

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

Re: "FreeBSD, nat+firewall"

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

Re: "FreeBSD, nat+firewall"

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

Re: "FreeBSD, nat+firewall"

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

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

Re: "FreeBSD, nat+firewall"

Добавлено: 2010-11-01 15:28:38
sch
ну во первых, авторство хозяина форума не отменяет мое мнение "мануалы в интернете пишут люди разной квалификации и опыта" [подмигиваю в ответ]
а во вторых статься про настройку ipfw и про роутинг там естественно ничего нет :oops:

Re: "FreeBSD, nat+firewall"

Добавлено: 2010-11-18 17:52:21
snorlov
Большинство юзают версии 7 и 8, а ты разбирался с 6.4, слабо богу тебе еще ядерный нат не порекомендовали использовать...