The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"Правила PF для OpenVPN"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Информационная безопасность (OpenBSD PF / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Правила PF для OpenVPN"  +/
Сообщение от nik03pe (ok) on 04-Ноя-17, 15:27 
Всем Здравствуйте!
Поставил я себе OpenVPN on VPS (FreeBSD11) и начал настраивать NAT средствами PF так-как не хотел ядро пересобирать. Несколько дней потратил на борьбу сначала с тем, что хэндшэйк не проходил, потом пинг обратно не возвращался клиенту. В результате написал и все работает, но (не смейтесь) не пойму почему оно работает и где логика. Если не трудно, то может разъясните и просветите начинающего адепта BSD. Секцию таблицы ввел  для китайцев которые ддосили меня на прошлой конфигурации под линуксом. Включу, когда разберусь.


pf.conf
ext_if = "re0"
int_if = "tun0"
net_int = "10.8.10.0/24"
############## TABLES ##########################
table <badhost> persist
############# GLOBAL POLICY ####################
set block-policy return
set skip on lo
set state-policy floating
scrub in all fragment reassemble
############### NAT ############################
nat on $ext_if inet from $net_int to any -> $ext_if

################ FILTER ########################
block in
pass out
antispoof log quick for $ext_if inet
#################  SSH  #########################
pass in on $ext_if proto tcp from any to $ext_if port 22 flags S/SA modulate state

################ SERVICE ########################
pass out on $ext_if proto udp from $ext_if to any port ntp keep state
#pass out on $ext_if proto { tcp, udp } from $ext_if to any port domain keep state
#pass in on $ext_if proto udp from any to any port domain keep state
pass out inet proto icmp all icmp-type echoreq keep state

pass in on $ext_if proto { tcp, udp, icmp } from $net_int to any keep state
pass in on $ext_if proto udp from any to $ext_if port 1194 keep state
pass quick on $int_if no state

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Правила PF для OpenVPN"  +/
Сообщение от eRIC (ok) on 04-Ноя-17, 21:52 
>В результате написал и все работает, но (не смейтесь)
> не пойму почему оно работает и где логика. Если не трудно,
> то может разъясните и просветите начинающего адепта BSD.

вам расжевать каждое ваше правило?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Правила PF для OpenVPN"  +/
Сообщение от nik03pe (ok) on 05-Ноя-17, 01:26 
> вам расжевать каждое ваше правило?

Извиняюсь за неточность в вопросе. Меня интересуют 3 последние строки. Я сейчас сам пробую на виртуалках разобраться.

>pass quick on $int_if no state

Здесь разрешается все на внутреннем интерфейсе, однако если это правило убрать, то хэндшэйк все-равно происходит, но пинг дальше openvpn сервера не проходит.

>pass in on $ext_if proto udp from any to $ext_if port 1194 keep state

тут более менее ясно - разрешаем трафик udp до внешнего интерфейса.

>pass in on $ext_if proto { tcp, udp, icmp } from $net_int to any keep state

вот почему здесь работает с внешним, а не с внутренним интерфейсом?
и нужна-ли мне вообще переменная $int_if?
Надеюсь посоветуете как можно оптимизировать правила.


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру