Правила ipfw срабатывают раньше чем поднимается pppoe

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Graynder
рядовой
Сообщения: 32
Зарегистрирован: 2010-02-20 17:45:38

Правила ipfw срабатывают раньше чем поднимается pppoe

Непрочитанное сообщение Graynder » 2010-02-20 18:15:19

Имеются :
Роутер на FreeBSD 7.3
Интернет по протоколу pppoe
Правила с натом в /usr/local/rc.filewall (ipfw kernel nat)
В /etc/rc.conf прописан автозапуск pppoe и firewall

Ситуация:
Сервер загрузился , а интернета - нет
Пробую пинговать хосты интернета - получаю ping : sendto: permission denied
и это несмотря на то что ядро скомпилено с опцией IPFIREWALL_DEFAULT_TO_ACCEPT
Чтобы все заработало нужно руками запустить скрипт фаервола sh /usr/local/etc/rc.firewall

Мои догадки:
Мне кажется что проблема возникает из-за того , что скрипт фаервола срабатывает раньше чем поднимется pppoe
Как сделать так чтобы сначала поднимался pppoe , а потом только запускались правила ipfw ?

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

Graynder
рядовой
Сообщения: 32
Зарегистрирован: 2010-02-20 17:45:38

Re: Правила ipfw срабатывают раньше чем поднимается pppoe

Непрочитанное сообщение Graynder » 2010-02-20 20:21:52

Еще дополню , что такая ситуация возникает если в rc.firewall есть правила касающиеся tun0 (интерфейса поднимаемого pppoe).
Поэтому пришлось временно перейти на ppp nat . Надеюсь не надолго.

Аватара пользователя
baton4eg
сержант
Сообщения: 274
Зарегистрирован: 2009-10-11 14:36:35
Контактная информация:

Re: Правила ipfw срабатывают раньше чем поднимается pppoe

Непрочитанное сообщение baton4eg » 2010-02-20 20:35:48

Использую mpd в качестве pppoe клиента, а скрипт фаервола ipfw.sh делаю исполняемым и симлинком в /usr/local/etc/rc.d/ipfw.sh всё запускается и работает, нат юзаю pf-nat
Покажите:

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

ifconfig -a
ipfw show
netstat -rn
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих файлов вообще нет!" (c)
"Я ем руками, она вилкой и ножом, я бью вилкой и ножом, она руками" (с)

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

Re: Правила ipfw срабатывают раньше чем поднимается pppoe

Непрочитанное сообщение snorlov » 2010-02-20 21:47:36

Graynder писал(а):Еще дополню , что такая ситуация возникает если в rc.firewall есть правила касающиеся tun0 (интерфейса поднимаемого pppoe).
Поэтому пришлось временно перейти на ppp nat . Надеюсь не надолго.
Маленькая подсказка, у ppp есть скрипты до поднятия и после поднятия соединения... Если используете mpd, то и там они есть

noerus
рядовой
Сообщения: 21
Зарегистрирован: 2010-02-17 3:34:17

Re: Правила ipfw срабатывают раньше чем поднимается pppoe

Непрочитанное сообщение noerus » 2010-02-21 0:30:35

Кроме ipfw show покажите ещё

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

ipfw nat show config
Я пользуюсь NAT из файрвола pf, он корректнее работает, и в настройке проще, и записи nat-таблицы смотреть можно.

Дарагой_Друк
проходил мимо

Re: Правила ipfw срабатывают раньше чем поднимается pppoe

Непрочитанное сообщение Дарагой_Друк » 2010-02-21 21:25:53

Graynder писал(а):Еще дополню , что такая ситуация возникает если в rc.firewall есть правила касающиеся tun0 (интерфейса поднимаемого pppoe).
Поэтому пришлось временно перейти на ppp nat . Надеюсь не надолго.
Э-э-э-ээ... Зачем tun? Да? tun не нужен, tun нафик выбрасить...
Тут же (на сайте) все разжевано вдоль и поперек или действительно так трудно?
Тогда типа мини степ-бай-степа =).
В ядро добавить поддержку mpd и kernel nat, далее ядро пересобрать.
Типа этого:

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

options         NETGRAPH
options         NETGRAPH_BPF
options         NETGRAPH_IFACE
options         NETGRAPH_IPFW
options         NETGRAPH_NAT
options         NETGRAPH_NETFLOW
options         NETGRAPH_NAT
options         NETGRAPH_ONE2MANY
options         NETGRAPH_PIPE
options         NETGRAPH_PPP
options         NETGRAPH_PPPOE
options         NETGRAPH_PPTPGRE

options         IPFIREWALL
options         IPFIREWALL_FORWARD
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_NAT
options         IPSTEALTH
options         LIBALIAS
options         IPDIVERT
options         DUMMYNET
На серваке в локальную сеть смотрит em0 с IP 192.168.1.2
Локальная сеть 192.168.1.0/24
Правила фаервола прописываем в отдельном файлеге /etc/ipfw.conf
Вот приблизительное содержание

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

# ------------------- ОЧИЩАЕМ ПЕРЕД ЗАГРУЗКОЙ ВСЕ ПРАВИЛА ------------------ #
-f -q flush

# -------------------------- ЗАПРЕТ X-СКАНИРОВАНИЯ ------------------------- #
add 3 reject log tcp from any to any tcpflags fin,syn,rst,psh,ack,urg

# -------------------------- ЗАПРЕТ N-СКАНИРОВАНИЯ ------------------------- #
add 4 reject log tcp from any to any tcpflags !fin,!syn,!rst,!psh,!ack,!urg

# ------------------------- ЗАПРЕТ FIN-СКАНИРОВАНИЯ ------------------------ #
add 5 reject log tcp from any to any not established tcpflags fin

# --------------------------- ЗАПРЕЩАЕМ СПУФИНГ ---------------------------- #
add 29 deny all from 192.168.1.2/32 to any in via ng0

# ---------------- РУБИМ ЧАСТНЫЕ СЕТИ НА ВНЕШНЕМ ИНТЕРФЕЙСЕ ---------------- #
add 40 deny all from any to 10.0.0.0/8 via ng0
add 41 deny all from any to 172.16.0.0/12 via ng0
add 42 deny all from any to 192.168.0.0/16 via ng0

# -------- РУБИМ АВТОКОНФИГУРИНГ И МУЛЬТИКАСТ НА ВНЕШНЕМ ИНТЕРФЕЙСЕ -------- #
add 43 deny all from any to 0.0.0.0/8 via ng0
add 44 deny all from any to 169.254.0.0/16 via ng0
add 45 deny all from any to 192.0.2.0/24 via ng0
add 46 deny all from any to 224.0.0.0/4 via ng0
add 47 deny all from any to 240.0.0.0/4 via ng0

# ----------------------------- ПЕТЛЕВОЙ ИФЕЙС ----------------------------- #
add 100 allow all from any to any via lo0
add 200 deny all from any to 127.0.0.0/8
add 300 deny all from 127.0.0.0/8 to any

# -------------- РУБИМ К ЧАСТНЫМ СЕТЯМ НА ВНЕШНЕМ ИНТЕРФЕЙСЕ --------------- #
add 400 deny all from 10.0.0.0/8 to any via ng0
add 410 deny all from 172.16.0.0/12 to any via ng0
add 420 deny all from 192.168.0.0/16 to any via ng0

# -------- РУБИМ АВТОКОНФИГУРИНГ И МУЛЬТИКАСТ НА ВНЕШНЕМ ИНТЕРФЕЙСЕ -------- #
add 430 deny all from 0.0.0.0/8 to any via ng0
add 440 deny all from 169.254.0.0/16 to any via ng0
add 450 deny all from 192.0.2.0/24 to any via ng0
add 460 deny all from 224.0.0.0/4 to any via ng0
add 470 deny all from 240.0.0.0/4 to any via ng0

# ------------------ РАЗРЕШАЕМ ПОЛЬЗОВАТЕЛЯМ ВЫХОД В ИНЕТ ------------------ #
add 1000 allow all from 192.168.1.0/24 to any
add 1100 allow all from any to 192.168/1/0/24

# -------------------- ЗАПРЕЩАЕМ И РУБИМ ВСЕ ОСТАЛЬНОЕ --------------------- #
add 65000 deny all from any to any

топаем в порты, собираем и устанавливаем mpd (5.4)
/usr/local/etc/mpd5/mpd.conf

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

startup:

        # configure mpd users
        set user admin foobar admin
        set user foo bar
        # configure the console
        set console self 127.0.0.1 5005
        set console open
        # configure the web server
        set web self 0.0.0.0 5006
        set web open


default:

        load pppoe0

pppoe0:

        create bundle static B1
        set iface up-script "/usr/local/etc/mpd5/ng0_up.sh"
        set iface down-script "/usr/local/etc/mpd5/ng0_down.sh"
        set ipcp ranges 0.0.0.0/0 0.0.0.0/0

        create link static L1 pppoe
        set link action bundle B1
        set auth authname "тут_логин"
        set auth password "тут_пароль"
        set link max-redial 0
        set link mtu 1492
        set link keep-alive 5 15
        set pppoe iface em1
        open
/usr/local/etc/mpd5/ng0_up.sh

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

#!/bin/sh

# КОНФИГУРИМ NAT 1 НА ИНТЕРФЕЙСЕ NG0
/sbin/ipfw -q add 61 nat 1 all from any to any out xmit ng0
/sbin/ipfw -q add 62 nat 1 all from any to $3 in recv ng0

# РАЗРЕШАЕМ ПОЛУЧЕННОМУ IP АДРЕСУ ИНТЕРФЕЙСА NG0 ИНЕТ
/sbin/ipfw -q add 600 allow ip from $3 to any
/sbin/ipfw -q add 610 allow ip from any to $3

# ПРОВЕРЯЕМ МАРШРУТ ПО УМОЛЧАНИЮ
# ЕСЛИ НЕТ - ДОБАВЛЯЕМ, ЕСЛИ ЕСТЬ - МЕНЯЕМ
netstat -nr | grep 'default'
if [ $? != 0 ]
then
        route -q add default $4
else
        route -q change default $4
fi

# ОБЪЯВЛЯЕМ КОНФИГУРАЦИЮ NAT 1 НА ИНТЕРФЕЙСЕ NG0
/sbin/ipfw -q nat 1 config if ng0 reset unreg_only same_ports
/usr/local/etc/mpd5/ng0_down.sh

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

#!/bin/sh

# УДАЛЯЕМ ПРАВИЛА ФАЕРВОЛА ОТНОСЯЩИЕСЯ К ИНТЕРФЕЙСУ NG0
# УДАЛЯЕМ ПРАВИЛА 61 И 62 ДЛЯ NAT 1
# УДАЛЯЕМ ПРАВИЛО 600 И 610 ДЛЯ IP АДРЕСА ИНТЕРФЕЙСА NG0
/sbin/ipfw -q delete 61 62 600 610

# ПРОВЕРЯЕМ МАРШРУТ ПО УМОЛЧАНИЮ
# ЕСЛИ ЕСТЬ - УДАЛЯЕМ
netstat -nr | grep 'default'
if [ $? = 0 ]
then
        route -q delete default
fi

# УДАЛЯЕМ САМ NAT 1
/sbin/ipfw -q nat 1 delete
кароче.. устал писать, слишкам монога букаф получается.. О_о

Graynder
рядовой
Сообщения: 32
Зарегистрирован: 2010-02-20 17:45:38

Re: Правила ipfw срабатывают раньше чем поднимается pppoe

Непрочитанное сообщение Graynder » 2010-02-22 1:11:11

Feb 22 00:55:23 gw mpd: [PPPoE] pausing 6 seconds before open
Feb 22 00:55:23 gw mpd: [PPPoE] device is now in state DOWN
Feb 22 00:55:29 gw mpd: [PPPoE] device: OPEN event in state DOWN
Feb 22 00:55:29 gw mpd: [PPPoE] exec: /sbin/ifconfig sk0 up
Feb 22 00:55:29 gw mpd: [PPPoE] Cannot send a netgraph message: sk0::No such file or directory
Feb 22 00:55:29 gw mpd: [PPPoE] Error in creation ng_pppoe node on sk0:
Feb 22 00:55:29 gw mpd: [PPPoE] can't connect bypass,link0 and sk0:orphans,mpd1421-PPPoE: No such file or directory
Feb 22 00:55:29 gw mpd: [PPPoE] can't remove hook mpd1421-PPPoE from node "sk0:orphans": No such file or directory
Feb 22 00:55:29 gw mpd: [PPPoE] device is now in state OPENING
Feb 22 00:55:29 gw mpd: [PPPoE] device: DOWN event in state OPENING
Feb 22 00:55:29 gw mpd: [PPPoE] device is now in state DOWN
Feb 22 00:55:29 gw mpd: [PPPoE] link: DOWN event
Feb 22 00:55:29 gw mpd: [PPPoE] LCP: Down event
Feb 22 00:55:29 gw mpd: [PPPoE] device: OPEN event in state DOWN
У меня mpd не поднимается, что скажете по логам ?

Дарагой_Друк
проходил мимо

Re: Правила ipfw срабатывают раньше чем поднимается pppoe

Непрочитанное сообщение Дарагой_Друк » 2010-02-22 9:31:28

Мож чего из mpd в ядре не хватает? Я ж так для примера привел.
Ну можно вообще попробовать все из файла /usr/src/sys/conf/NOTES для mpd включить в ядро

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

options         NETGRAPH
options         NETGRAPH_ASYNC
options         NETGRAPH_ATMLLC
options         NETGRAPH_ATM_ATMPIF
options         NETGRAPH_BLUETOOTH
options         NETGRAPH_BLUETOOTH_BT3C
options         NETGRAPH_BLUETOOTH_HCI
options         NETGRAPH_BLUETOOTH_L2CAP
options         NETGRAPH_BLUETOOTH_SOCKET
options         NETGRAPH_BLUETOOTH_UBT
options         NETGRAPH_BLUETOOTH_UBTBCMFW
options         NETGRAPH_BPF
options         NETGRAPH_BRIDGE
options         NETGRAPH_CAR
options         NETGRAPH_CISCO
options         NETGRAPH_DEFLATE
options         NETGRAPH_DEVICE
options         NETGRAPH_ECHO
options         NETGRAPH_EIFACE
options         NETGRAPH_ETHER
options         NETGRAPH_FEC
options         NETGRAPH_FRAME_RELAY
options         NETGRAPH_GIF
options         NETGRAPH_GIF_DEMUX
options         NETGRAPH_HOLE
options         NETGRAPH_IFACE
options         NETGRAPH_IP_INPUT
options         NETGRAPH_IPFW
options         NETGRAPH_KSOCKET
options         NETGRAPH_L2TP
options         NETGRAPH_LMI
#options         NETGRAPH_MPPC_COMPRESSION
options         NETGRAPH_MPPC_ENCRYPTION
options         NETGRAPH_NETFLOW
options         NETGRAPH_NAT
options         NETGRAPH_ONE2MANY
options         NETGRAPH_PIPE
options         NETGRAPH_PPP
options         NETGRAPH_PPPOE
options         NETGRAPH_PPTPGRE
options         NETGRAPH_PRED1
options         NETGRAPH_RFC1490
options         NETGRAPH_SOCKET
options         NETGRAPH_SPLIT
options         NETGRAPH_SPPP
options         NETGRAPH_TAG
options         NETGRAPH_TCPMSS
options         NETGRAPH_TEE
options         NETGRAPH_UI
options         NETGRAPH_VJC
Версия mpd какая?
Чего то он у вас на sk0 ругается. Он точно есть и на прова смотрит? Тогда в конфиге mpd не забудте правильно девайс указать

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

set pppoe iface sk0
Логин и пароль верные? Запустить mpd в консоли и вывод покажите
ну типа
# mpd5 (если ставили пятерку)
mpd всяко лучше и быстрее работает, чем tun ибо mpd на уровне ядра, а tun - это юзерспейс

Graynder
рядовой
Сообщения: 32
Зарегистрирован: 2010-02-20 17:45:38

Re: Правила ipfw срабатывают раньше чем поднимается pppoe

Непрочитанное сообщение Graynder » 2010-02-22 12:08:14

Поставил mpd5. С ним поднимается
Еще поменял ipfw на pf. Помогло , но не сильно.
Так вот , как называется скрипт mpd5 который срабатывает сразу после поднятия pppoe соединения?
Может быть прописать в него команду запуска правил pf ?

Аватара пользователя
kvasik
рядовой
Сообщения: 12
Зарегистрирован: 2010-01-27 17:56:22

Re: Правила ipfw срабатывают раньше чем поднимается pppoe

Непрочитанное сообщение kvasik » 2010-05-31 15:51:24

Дарагой_Друк писал(а): # mpd5 (если ставили пятерку)
mpd всяко лучше и быстрее работает, чем tun ибо mpd на уровне ядра, а tun - это юзерспейс
Или с точностью до наоборот?
Цитата из википедии: "MPD — это основанная на netgraph(4)[1] реализация ppp-протокола мультисвязи для FreeBSD. MPD спроектирован быть быстрым и гибким, обрабатывая конфигурацию и обращения в режиме пользователя, направляя пакеты данных напрямую в ядро."

А вот еще цитатка: "В отличие от pppoed, mpd использует интерфейсы ng. Можно отметить действительно низкую ресурсоемкость."
http://nag.ru/articles/reviews/16706/sc ... --2-2.html