Правила ipfw срабатывают раньше чем поднимается pppoe
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-02-20 17:45:38
Правила ipfw срабатывают раньше чем поднимается pppoe
Имеются :
Роутер на 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 ?
Роутер на 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
Тарифы на хостинг в России, от 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/
Тарифы на виртуальные сервера (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/
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-02-20 17:45:38
Re: Правила ipfw срабатывают раньше чем поднимается pppoe
Еще дополню , что такая ситуация возникает если в rc.firewall есть правила касающиеся tun0 (интерфейса поднимаемого pppoe).
Поэтому пришлось временно перейти на ppp nat . Надеюсь не надолго.
Поэтому пришлось временно перейти на ppp nat . Надеюсь не надолго.
- baton4eg
- сержант
- Сообщения: 274
- Зарегистрирован: 2009-10-11 14:36:35
- Контактная информация:
Re: Правила ipfw срабатывают раньше чем поднимается pppoe
Использую mpd в качестве pppoe клиента, а скрипт фаервола ipfw.sh делаю исполняемым и симлинком в /usr/local/etc/rc.d/ipfw.sh всё запускается и работает, нат юзаю pf-nat
Покажите:
Покажите:
Код: Выделить всё
ifconfig -a
ipfw show
netstat -rn
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих файлов вообще нет!" (c)
"Я ем руками, она вилкой и ножом, я бью вилкой и ножом, она руками" (с)
"Я ем руками, она вилкой и ножом, я бью вилкой и ножом, она руками" (с)
-
- подполковник
- Сообщения: 3924
- Зарегистрирован: 2008-09-04 11:51:25
- Откуда: Санкт-Петербург
Re: Правила ipfw срабатывают раньше чем поднимается pppoe
Маленькая подсказка, у ppp есть скрипты до поднятия и после поднятия соединения... Если используете mpd, то и там они естьGraynder писал(а):Еще дополню , что такая ситуация возникает если в rc.firewall есть правила касающиеся tun0 (интерфейса поднимаемого pppoe).
Поэтому пришлось временно перейти на ppp nat . Надеюсь не надолго.
-
- рядовой
- Сообщения: 21
- Зарегистрирован: 2010-02-17 3:34:17
Re: Правила ipfw срабатывают раньше чем поднимается pppoe
Кроме ipfw show покажите ещё
Я пользуюсь NAT из файрвола pf, он корректнее работает, и в настройке проще, и записи nat-таблицы смотреть можно.
Код: Выделить всё
ipfw nat show config
-
- проходил мимо
Re: Правила ipfw срабатывают раньше чем поднимается pppoe
Э-э-э-ээ... Зачем tun? Да? tun не нужен, tun нафик выбрасить...Graynder писал(а):Еще дополню , что такая ситуация возникает если в rc.firewall есть правила касающиеся tun0 (интерфейса поднимаемого pppoe).
Поэтому пришлось временно перейти на ppp nat . Надеюсь не надолго.
Тут же (на сайте) все разжевано вдоль и поперек или действительно так трудно?
Тогда типа мини степ-бай-степа

В ядро добавить поддержку 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
Локальная сеть 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
/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
Код: Выделить всё
#!/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
Код: Выделить всё
#!/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
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-02-20 17:45:38
Re: Правила ipfw срабатывают раньше чем поднимается pppoe
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 не поднимается, что скажете по логам ?
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
Мож чего из mpd в ядре не хватает? Я ж так для примера привел.
Ну можно вообще попробовать все из файла /usr/src/sys/conf/NOTES для mpd включить в ядро
Версия mpd какая?
Чего то он у вас на sk0 ругается. Он точно есть и на прова смотрит? Тогда в конфиге mpd не забудте правильно девайс указать
Логин и пароль верные? Запустить mpd в консоли и вывод покажите
ну типа
# mpd5 (если ставили пятерку)
mpd всяко лучше и быстрее работает, чем tun ибо mpd на уровне ядра, а tun - это юзерспейс
Ну можно вообще попробовать все из файла /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
Чего то он у вас на sk0 ругается. Он точно есть и на прова смотрит? Тогда в конфиге mpd не забудте правильно девайс указать
Код: Выделить всё
set pppoe iface sk0
ну типа
# mpd5 (если ставили пятерку)
mpd всяко лучше и быстрее работает, чем tun ибо mpd на уровне ядра, а tun - это юзерспейс
-
- рядовой
- Сообщения: 32
- Зарегистрирован: 2010-02-20 17:45:38
Re: Правила ipfw срабатывают раньше чем поднимается pppoe
Поставил mpd5. С ним поднимается
Еще поменял ipfw на pf. Помогло , но не сильно.
Так вот , как называется скрипт mpd5 который срабатывает сразу после поднятия pppoe соединения?
Может быть прописать в него команду запуска правил pf ?
Еще поменял ipfw на pf. Помогло , но не сильно.
Так вот , как называется скрипт mpd5 который срабатывает сразу после поднятия pppoe соединения?
Может быть прописать в него команду запуска правил pf ?
- kvasik
- рядовой
- Сообщения: 12
- Зарегистрирован: 2010-01-27 17:56:22
Re: Правила ipfw срабатывают раньше чем поднимается pppoe
Или с точностью до наоборот?Дарагой_Друк писал(а): # 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