The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Правила PF для OpenVPN, !*! nik03pe, 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

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

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

    • Правила PF для OpenVPN, !*! nik03pe, 01:26 , 05-Ноя-17 (2)
      > вам расжевать каждое ваше правило?

      Извиняюсь за неточность в вопросе. Меня интересуют 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?
      Надеюсь посоветуете как можно оптимизировать правила.





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

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