The OpenNET Project / Index page

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



"Раздел полезных советов: Трансляция PPTP (GRE) на шлюзе с PF"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
"Раздел полезных советов: Трансляция PPTP (GRE) на шлюзе с PF" +/
Сообщение от auto_tips (ok), 12-Дек-09, 14:24 
Как известно, межсетевой экран PF, портированный в FreeBSD из OpenBSD, не может корректно транслировать (NAT) GRE-протокол и, к примеру, из локальной сети невозможно создать несколько одновременных соединений к внешнему серверу VPN PPTP.

Одним из способов решения проблемы является трансляция PPTP-соединений родным IPFW с "ядерным" NAT. При этом вовсе необязательно компилировать ядро. Все описанные действия проверены в FreeBSD версии 7.2. Но должно работать и в других версиях, где есть поддержка "ядерного" NAT для IPFW.

В /etc/rc.conf добавляем

   #Включаем IPFW
   firewall_enable="YES"
   # Подгружаем модуль ядра ipfw_nat
   firewall_nat_enable="YES"
   # Указываем путь к скрипту загрузки правил
   firewall_script="/etc/ipfw.script"

Создаем файл /etc/ipfw.script

   #!/bin/sh
  
   /sbin/ipfw -q /dev/stdin <<RULES
   flush
   #em0 - внешний интерфейс шлюза
   nat 10 config if em0
   #Правила для трансляции PPTP-соединения
   add 10 nat 10 gre from any to any
   add 11 nat 10 tcp from any to any dst-port pptp
   add 12 nat 10 tcp from any pptp to any
   # Разрешаем весь трафик
   add allow all from any to any
  
   RULES

Делаем скрипт исполняемым

   # chmod +x /etc/ipfw.script

Добавляем в правила PF

   # Запрещаем PF транслировать PPTP-соединения
   no nat on $external_if proto gre all
   no nat on $external_if proto tcp from any to any port = pptp
   no nat on $external_if proto tcp from any port = pptp to any
   ... skip ...
  
   # Пропускаем PPTP-соединения
   pass quick on $external_if inet proto tcp from any to any port 1723
   pass quick on $external_if inet proto tcp from any port 1723 to any
   pass quick on $external_if inet proto gre from any to any

После всех сделанных изменений перезагружаемся.

URL: http://www.propheta.ru/2009/11/pptp-gre-pf.html
Обсуждается: https://www.opennet.ru/tips/info/2245.shtml

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

Оглавление
Раздел полезных советов: Трансляция PPTP (GRE) на шлюзе с PF, auto_tips, 12-Дек-09, 14:24  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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