Настраиваем соединение филиалов с головным офисом через OPENVPN

Задача: Соеденить филиалы с головным офисом посредством openvpn
Тех. характеристики: На всех филиалах в качестве шлюзовой машинки используется freebsd
Решение:

Устанавливаем openvpn

cd /usr/ports/security/openvpn
make install clean
mkdir -p /usr/local/etc/openvpn/{ccd,easy-rsa/keys}
cp /usr/local/share/doc/openvpn/easy-rsa/2.0/* /usr/local/etc/openvpn/easy-rsa/
ln -sf /usr/local/etc/openvpn/easy-rsa/keys /usr/local/etc/openvpn/

Если данный шлюза будет использоваться в качестве сервера то правим под себя
/usr/local/etc/openvpn/easy-rsa/vars
cd /usr/local/etc/openvpn/easy-rsa
sh
chmod +x *
. ./vars

Генерируем ключ сервера
./clean-all && ./build-ca && ./build-dh && ./build-key-server server

создадим файл /usr/local/etc/openvpn/server.conf

mode server
tls-server
daemon
ifconfig 192.168.10.1 255.255.255.0
port 9888
proto tcp-server
dev tap
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/server.crt
key /usr/local/etc/openvpn/keys/server.key
dh /usr/local/etc/openvpn/keys/dh1024.pem
client-config-dir /usr/local/etc/openvpn/ccd
push «route 192.168.10.0 255.255.255.0 192.168.10.1»

# Забегу вперед. Роуты на сети клиентов
route 172.161.250.0 255.255.255.0 192.168.10.101
route 172.161.252.0 255.255.255.0 192.168.10.102
route 192.16.0.0 255.255.255.0 192.168.10.111
#

keepalive 10 120
client-to-client
comp-lzo
persist-key
persist-tun
verb 3
log-append /var/log/openvpn.log

в rc.conf добавим

openvpn_enable=»YES»
openvpn_configfile=»/usr/local/etc/openvpn/server.conf»

Далее нужно подгрузить модуль для работы с tap-интерфейсами:
kldload if_tap

Чтобы модуль автоматически подгружался при загрузке нужно добавить в /boot/loader.conf строку:
if_tap_load=»YES»

Стартуем.
/usr/local/etc/rc.d/openvpn start

Правим PF

if_vpn = «tap0»
net_int = «xxx.xxx.0.0/24»
net_vpn = «192.168.10.0/24»

# Разрешаем исходящий трафик в сторону VPN-сети
pass out quick on $if_vpn from ($if_vpn) to $net_vpn
pass out quick on $if_vpn from $net_int to $net_vpn

# Разрешаем входящий трафик со стороны VPN-сети
pass in quick on $if_vpn from $net_vpn to any keep state

# Разрешаем обращение к нашему VPN-серверу снаружи
pass in quick on $ext_if inet proto tcp from any to ($ext_if) port 9888 flags S/SA keep state

Продолжение следует…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Time limit is exhausted. Please reload the CAPTCHA.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.