stateful ipfw (проблемы с keep-state)

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

stateful ipfw

Сообщение Frank »

имеем:
ipfw show
...
00003 0 0 check-state
...
00007 24950 3572946 allow tcp from 192.168.0.0/24 to any dst-port 22 out via tun0 keep-state
...
65000 10846003 5514119444 allow log logamount 300 ip from any to any
(чтобы всё работало во время ковыряний).

Проблема:
less /var/log/security
...
Feb 4 16:20:31 fire kernel: ipfw: 65000 Accept TCP 64.105.32.83:48031 77.247.29.74:22 in via tun0

т.е. получается, что несмотря на keep-state, как минмум часть обратных пакетов не проходит по динамическим правилам... (ssh не единая проблема, с openvpn например то же самое)
sysctl net.inet.ip.fw.dyn_keepalive
net.inet.ip.fw.dyn_keepalive: 1
Какие предположения?
Изображение
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: stateful ipfw

Сообщение arachnid »

чуток наблюдательности и вопрос можно было бы не задавать :)
в 7 правиле разрешается соединения со 192. на любое, а в логе идет соединение с 64. на 77. 0 - то есть не подпадает под это правило

Frank писал(а):
04.02.2008 19:15
имеем:
ipfw show
...
00003 0 0 check-state
...
00007 24950 3572946 allow tcp from 192.168.0.0/24 to any dst-port 22 out via tun0 keep-state
...
65000 10846003 5514119444 allow log logamount 300 ip from any to any
(чтобы всё работало во время ковыряний).

Проблема:
less /var/log/security
...
Feb 4 16:20:31 fire kernel: ipfw: 65000 Accept TCP 64.105.32.83:48031 77.247.29.74:22 in via tun0

т.е. получается, что несмотря на keep-state, как минмум часть обратных пакетов не проходит по динамическим правилам... (ssh не единая проблема, с openvpn например то же самое)
sysctl net.inet.ip.fw.dyn_keepalive
net.inet.ip.fw.dyn_keepalive: 1
Какие предположения?
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

Re: stateful ipfw

Сообщение Frank »

Хорошо, уточняем обстановку:
ifconfig -a
int: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
...
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
inet 77.247.29.74 --> 192.168.13.1 netmask 0xffffffff
Opened by PID 25410

На интерфейсе tun0 силами pppd делается NAT сетки 192.168.0.0/24
ps 25410
PID TT STAT TIME COMMAND
25410 ?? Ss 65:15.68 /usr/sbin/ppp -quiet -ddial -nat wildpark

Как быть? Есть правило и вида
00007 0 0 allow tcp from me to any dst-port 22 out via tun0 setup keep-state
- как видно по счётчикам, оно не работает совсем. И вообще, проблема не с выпуском исходящих, а с впуском входящих. Не хочу отказываться от stateful модели.
Изображение
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: stateful ipfw

Сообщение arachnid »

вопрос был в чем - почему не подпадает :)

"from me" - а что раньше - поднимаеться файрвол или тунель?

то, что проиходит не означает, что часть попадает под правило 7, а часть нет, а то, что в данном случае под 7ое правило не попадает соединение на тунельном интерфейсе с внешним миром

Frank писал(а):
05.02.2008 11:25
Хорошо, уточняем обстановку:
ifconfig -a
int: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
...
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
inet 77.247.29.74 --> 192.168.13.1 netmask 0xffffffff
Opened by PID 25410

На интерфейсе tun0 силами pppd делается NAT сетки 192.168.0.0/24
ps 25410
PID TT STAT TIME COMMAND
25410 ?? Ss 65:15.68 /usr/sbin/ppp -quiet -ddial -nat wildpark

Как быть? Есть правило и вида
00007 0 0 allow tcp from me to any dst-port 22 out via tun0 setup keep-state
- как видно по счётчикам, оно не работает совсем. И вообще, проблема не с выпуском исходящих, а с впуском входящих. Не хочу отказываться от stateful модели.
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

Re: stateful ipfw

Сообщение Frank »

arachnid писал(а):
05.02.2008 11:34
вопрос был в чем - почему не подпадает :)

"from me" - а что раньше - поднимаеться файрвол или тунель?

Фаерволл думаю, хоть и не факт (т.к. он знает IP ppp-туннеля). В данном случае правило было добавлено руками, далеко после установления ppp. Кроме того, адрес нашего конца ppp туннеля динамический.
По-прежнему жду толкового совета.
Изображение
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: stateful ipfw

Сообщение arachnid »

Frank писал(а):
05.02.2008 12:48
arachnid писал(а):
05.02.2008 11:34
вопрос был в чем - почему не подпадает :)

"from me" - а что раньше - поднимаеться файрвол или тунель?

Фаерволл думаю, хоть и не факт (т.к. он знает IP ppp-туннеля). В данном случае правило было добавлено руками, далеко после установления ppp. Кроме того, адрес нашего конца ppp туннеля динамический.
По-прежнему жду толкового совета.


толкового ответа на какой вопрос? :)

что хочется получить в итоге?
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

Re: stateful ipfw

Сообщение Frank »

Кажется, на меня снисходит (после применения метода тыка). Нужно разрешить входящие от локалки на куда угодно через локальный интерфейс, и разрешить исходящие - от локалки тоже, тоже укуда угодно, через ppp интерфейс. C keep-state. По крайней мере с DNS получилось как надо.
Изображение
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora

Re: stateful ipfw

Сообщение arkhnchul »

Нужно разрешить входящие от локалки на куда угодно через

можт "откуда угодно в локалку"? иил чото не понимаю?
Losing is fun!
Спасибо сказали: