URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 72765
[ Назад ]

Исходное сообщение
"создание правил ipfw"

Отправлено GHopper , 10-Мрт-07 06:11 
Здравствуйте!
FreeBSD6.1 + mpd + natd + ipfw.
Ситуация такая - от провайдера интернет через vpn, клиентам интернет тоже через vpn. Т.е. у меня на шлюзе стоит mpd, который при запуске устанавливает соединение с провайдеровским vpn-сервером (интерфейс ng0) и создает ngX-интерфейсы для подключения пользователей.

На данный момент правила такие
# set these to your outside interface network and netmask and ip
    oif="rl1"
    oip="внешний ип"
    onet="внешняя сеть"
    omask="255.255.255.0"
# set these to your inside interface network and netmask and ip
    iif="rl0"
    iip="внутренний ип"
    inet="внутренняя сеть"
    imask="255.255.255.0"
    
    ipfw add 100 check-state
#    ipfw add 210 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
    ipfw add 300 allow ip from any to any via lo0
    ipfw add 310 allow tcp from me to any keep-state via ${oif}
#    ipfw add 320 allow icmp from any to any
    ipfw add 350 allow ip from me to any
    ipfw add 400 allow tcp from any to me http, https, ssh, ftp
    ipfw add 500 divert natd ip from any to any via ng0
#    ipfw add 1000 allow ip from 192.168.0.2 to any via $iif
#    ipfw add 1010 allow ip from any to 192.168.0.2 via $iif
    ipfw add 1020 allow ip from 192.168.1.1 to any via ng1
    ipfw add 1030 allow ip from any to 192.168.1.1 via ng1
    ipfw add 1900 allow ip from any to any

ng1 создает туннель 192.168.1.1 -> 192.168.0.1.
192.168.0.1 - ip шлюза
192.168.0.2 - ip клиента

Вопрос: почему, если разкомментировать строчку 320, то пинг перестает проходить? При раскомментировании 210 не могу законнектиться по ssh к шлюзу. Почему на правило 1900 попадают пакеты, что мне нужно еще обрабатывать, чтобы до него ничего не доходило (чтобы можно было заменить его на "deny ip from any to any"?
Спасибо!


Содержание

Сообщения в этом обсуждении
"создание правил ipfw"
Отправлено StainlessRat , 10-Мрт-07 18:19 
Попробуйте правило 100 переставить в конец, н-р 1800 кажется всё в "check-state" ;)

"создание правил ipfw"
Отправлено PavelR , 11-Мрт-07 10:17 
>Здравствуйте!
>FreeBSD6.1 + mpd + natd + ipfw.
>Ситуация такая - от провайдера интернет через vpn, клиентам интернет тоже через
>vpn. Т.е. у меня на шлюзе стоит mpd, который при запуске
>устанавливает соединение с провайдеровским vpn-сервером (интерфейс ng0) и создает ngX-интерфейсы для
>подключения пользователей.

>Вопрос: почему, если разкомментировать строчку 320, то пинг перестает проходить? При раскомментировании
>210 не могу законнектиться по ssh к шлюзу. Почему на правило
>1900 попадают пакеты, что мне нужно еще обрабатывать, чтобы до него
>ничего не доходило (чтобы можно было заменить его на "deny ip
>from any to any"?
>Спасибо!

Рекомендую понять как работает natd...
Во фре натилка сделана по-другому чем в iptables...

Разрешив пакетам прохождение  до заворачивания на нат вы все и ломаете.


"создание правил ipfw"
Отправлено GHopper , 26-Мрт-07 06:29 
Ничего не понимаю...

Смыл все, добавил divert и allow ip from any to any. Больше нету ничего. Работает.
Немножко поменял настройки vpn. Теперь хочу добавить правило для клиента 192.168.0.2

ng1: 192.168.1.1(vpn ip-сервера) -> 192.168.1.2(vpn ip-клиента)
rl0: 192.168.0.1(ip-шлюза) -> 192.168.0.2(ip-клиента)

ipfw add 1000 allow ip from 192.168.0.2 to 192.168.0.1
ipfw add 1000 allow ip from 192.168.0.1 to 192.168.0.2
ipfw add 1000 allow ip from 192.168.1.2 to 192.168.1.1
ipfw add 1000 allow ip from 192.168.1.1 to 192.168.1.2

Эти правила идут ПОСЛЕ divert. Получаю трафик через шлюз и смотрю на эти правила. Через инх передано НОЛЬ пакетов! Т.е. после попадания в нат 192.168.0.2(192.168.1.2) меняется на какой-то другой. На какой?

Вообще есть у кого-нибудь правила для vpn-шлюза без ВСЕГО ПРОЧЕГО. Просто голый vpn-шлюз и правила на ipfw заканчивающиеся deny ip from any to any.