Знакомый попросил меня установить и настроить VPN сервер ему.
Покопавшиcь в интернете я понял, что в его случае подойдет OpenVPN server.
У меня был опыт его настройки на linux.
Настройка не сильно сложная.
Приступим.
# cd /usr/ports/security/openvpn && make install clean
Добавим автозагрузку сервера.
# echo "openvpn_enable="YES" " >> /etc/rc.conf # echo "openvpn_configfile="/usr/local/etc/openvpn/server.conf" " >> /etc/rc.cconf
так добавим поддержку загрузки модуля tum.
# echo "if_tun_load="YES" " >> /etc/rc.conf
Что бы не перезагружать наш сервер, выполним команду загрузки модуля.
# kldload if_tun
Теперь скопируем диретокрию easy-rsa
# cd /usr/local/share/doc/openvpn/easy-rsa/
Теперь отредактируем файл vars, редактируем такие переменные:
export KEY_COUNTRY="RU" export KEY_PROVINCE="MSK" export KEY_CITY="MOSCOW" export KEY_ORG="OpenVPN-MY-KOMPANY" export KEY_EMAIL="root@local.locg"
Теперь добавим права на файл.
# chmod +w vars
Запустим файл проверки настроек для генерации скриптов.
. ./vars
Теперь с генерируем ключи для сервера.
./clean-all && ./build-ca && ./build-dh && ./build-key-server VPNserver
Теперь нам нужно отредактировать конфигурационный файл впн сервера.
# nano /usr/local/etc/openvpn/server.conf port 1194 Порт сервера. local 77.221.151.8 proto udp-server Какой протокол использовать. mode server OpenVPN запускаем в режиме сервера. dev tun0 Интерфейс который будет использовать. tls-server Использовать TLS-шифрование. auth MD5 Включаем шифрацию пакетов с использованием алгоритма симметричного шифрования Blowfish. 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 Пути к сертификатам. push "route 10.8.3.1 255.255.255.0 10.8.1.1" маршруты для клиентов. client-config-dir /usr/local/etc/openvpn/ccd Клиентская директория, в корой будут находится конфигарации для клиентов. ifconfig 10.8.3.0 255.255.255.0 Настройка для виртуального интерфейса. push "dhcp-option DNS 10.8.3.1" push "dhcp-option WINS 10.8.3.1" keepalive 10 120 Надстройка для поддержки соединения. client-to-client Разрешим трафик между клиентов. comp-lzo Сжатие. max-clients 35 Укажим тот максимум клиентов , который будут обрабатываться сервером. persist-key Укажим, что бы не перечитывались ключевые файлы при пере-подключении клиентов. persist-tun Запретим пересоздавать виртуальный интерфейс. verb 3 Уровень логирования, рекомендую после настройки выставить в 0. log-append /var/log/openvpn.log Где храним лог.
Теперь создадим нашему стаду сертификаты.
Перейдем в директорию с ключами.
# cd /usr/local/etc/openvpn/easy-rsa
Установим необходимые переменные окружения.
. ./vars
Сгенерим ключ для пользователя ira:
./build-key ira
Добавит конфигурационный файл.
# nano /usr/local/etc/openvpn/ccd/ira ifconfig-push 10.8.3.1 255.255.255.0
Теперь можно запустить сервер openvpn.
# service openvpn start
Осталось только скопировать созданные ранее сертификаты: ca.crt, client.crt, client.key, dh1024.pem, ta.key.