Инструкция: создаем и настраиваем собственный VPN-сервер

# Порт для OpenVPN
port 1194

# Протокол, который использует OpenVPN
;proto tcp
proto udp

# Интерфейс
;dev tap
dev tun

# Ключи

# Сертификат CA
ca /etc/openvpn/certs/ca.crt
# Сертификат сервера
cert /etc/openvpn/certs/server.crt
# Приватный ключ сервера
key /etc/openvpn/certs/server.key #не распространяется и хранится в секрете

# параметры Diffie Hellman
dh /etc/openvpn/certs/dh2048.pem

# Создание виртуальной сети и ее параметры

# IP и маска подсети
server 10.8.0.0 255.255.255.0

# После перезапуска сервера клиенту будет выдан прежний IP
ifconfig-pool-persist /etc/openvpn/ipp.txt

# Установка шлюза по умолчанию
push «redirect–gateway def1 bypass–dhcp»

# Разрешить использовать нескольким клиентами одну и ту же пару ключей
# не рекомендуется использовать, закомментирована
;duplicate–cn

# Пинговать удаленный узел с интервалом в 10 секунд
# Если узел не отвечает в течение 120 секунд, то будет выполнена попытка повторного подключения к клиенту
keepalive 10 120

# Защита от DoS–атак портов UDP с помощью HMAC
remote-cert-tls client
tls-auth /etc/openvpn/certs/ta.key 0 # файл хранится в секрете

# Криптографические шифры
cipher AES-256-CBC #для клиентов нужно указывать такой же

# Сжатие и отправка настроек клиенту
;compress lz4–v2
;push «compress lz4–v2»

# Максимальное число одновременных подключений
;max–clients 100

# Понижение привилегий демона OpenVPN
# после запуска
# Не использовать для Windows
;user nobody
;group nobody

# При падении туннеля не выключать интерфейсы, не перечитывать ключи
persist-key
persist-tun

# Лог текущих соединений
# Каждую минуту обрезается и перезаписываться
status openvpn–status.log

# Логи syslog
# Используется только один. Раскомментировать необходимый

# перезаписывать файл журнала при каждом запуске OpenVPN
;log openvpn.log

# дополнять журнал
;log–append openvpn.log

# Уровень вербальности
#
# 0 тихий, кроме фатальных ошибок
# 4 подходит для обычного использования
# 5 и 6 помогают в отладке при решении проблем с подключением
# 9 крайне вербальный
verb 4

# Предупреждение клиента о перезапуске сервера
explicit-exit-notify 1