В дополнение к статье «Настройка OpenVPN сервера» решил написть о настройке VPN сервера , работающего по протоколу PPTP.

Имеем
# root@vpn:/root # uname -a
FreeBSD vpn.server 9.1-STABLE FreeBSD 9.1-STABLE #0 r249412M: Sat Apr 13 02:34:28 MSK 2013 root@vpn.deathstar.name:/usr/obj/usr/src/sys/GENERIC amd64
Цель – поднять VPN PPTP сервер для выхода в интернет.

1) Настройка NAT

Добавляем в файл /boot/loader.conf такие строки
ipfw_nat_load="YES"
libalias_load="YES"

Создаем правила для IPFW ( например файл /etc/firewall )
root@vpn:/root # ee /etc/firewall
#!/bin/sh
ipfw='/sbin/ipfw -q'
${ipfw} flush
${ipfw} add check-state
${ipfw} table all flush
${ipfw} add drop tcp from 172.17.0.0/24 135,137-139 to 172.17.0.0/24 via rl0
${ipfw} add drop tcp from 172.17.0.0/24 135,137-139 to any via rl0
${ipfw} add drop udp from 172.17.0.0/24 135,137,138,139 to 172.17.0.0/24 via rl0
${ipfw} add drop udp from 172.17.0.0/24 135,137-139 to any via rl0
${ipfw} nat 1 config if re0 reset same_ports
${ipfw} add nat 1 ip from 172.17.0.0/24 to any via re0
${ipfw} add nat 1 ip from any to ВНЕШНИЙ_IP_СЕРВЕРА
${ipfw} add allow all from any to any

и делаем исполняемым
root@vpn:/root # chmod +x /etc/firewall

Для загрузки правил при старте добавляем в /etc/rc.conf
gateway_enable=YES
firewall_enable=YES
firewall_script="/etc/firewall"

и перезапускаем сервер
root@vpn:/root # reboot

2) Установка, настройка и запуск VPN PPTP сервера
root@vpn:/root # make install clean -С /usr/ports/net/mpd5 ( опции оставляем по умолчанию как есть )

Переходим в каталог с конфигами
cd /usr/local/etc/mpd5/

и создаем файл mpd.conf со следующим содержанием
root@vpn:/usr/local/etc/mpd5 # ee mpd.conf

startup:
set user foo bar admin
set user foo1 bar1
set console self 127.0.0.1 5005
set console open
set web self 0.0.0.0 5006
set web open

default:
load pptp_server

pptp_server:

set ippool add pool1 172.17.0.50 172.17.0.99 # Диапазон выдаваемых адресов

create (далее…)