Основные параметры соединения:

port 1194
proto udp
dev tun
user openvpn
group openvpn
cd /etc/openvpn
persist-key
persist-tun
tls-server
tls-timeout 120
dh /etc/openvpn/dh.pem
ca /etc/openvpn/ca.crt
cert /etc/openvpn/vpn-server.crt
key /etc/openvpn/server.key
crl-verify /etc/openvpn/crl.pem
tls-auth /etc/openvpn/ta.key 0
server 10.10.0.0 255.255.255.0
client-config-dir /etc/openvpn/ccd
client-to-client
topology subnet
max-clients 5
push "dhcp-option DNS 10.15.0.1"
route 10.10.0.0 255.255.255.0
comp-lzo
keepalive 10 120
status /var/log/openvpn/openvpn-status.log 1
status-version 3
log-append /var/log/openvpn/openvpn-server.log
verb 3
mute 20
  • port 1194: Указывает порт, на котором OpenVPN будет прослушивать входящие соединения. 1194 – стандартный порт для OpenVPN, но его можно изменить.
  • proto udp: Определяет протокол, используемый для VPN-соединения. UDP (User Datagram Protocol) обычно быстрее и легче, чем TCP (Transmission Control Protocol), но менее надежен.
  • dev tun: Указывает тип виртуального сетевого интерфейса, который будет использоваться. tun создает IP-туннель, который позволяет пересылать IP-пакеты через VPN-соединение.

Параметры пользователя и группы:

  • user openvpn: Указывает пользователя, от имени которого будет запущен процесс OpenVPN. Это важно для безопасности.
  • group openvpn: Указывает группу, к которой принадлежит пользователь, под которым запущен OpenVPN. Как и для пользователя, это необходимо для безопасности и контроля доступа.

Параметры сертификатов и безопасности TLS:

  • persist-key: Сохраняет ключ шифрования между переподключениями, что ускоряет повторное подключение.
  • persist-tun: Сохраняет параметры туннеля между переподключениями, также ускоряя повторное подключение.
  • tls-server: Указывает, что OpenVPN выступает в качестве сервера TLS.
  • tls-timeout 120: Определяет время ожидания завершения TLS-рукопожатия в секундах. Если рукопожатие не завершится в течение этого времени, соединение будет разорвано.
  • dh /etc/openvpn/dh.pem: Указывает путь к файлу Diffie-Hellman, используемому для обмена ключами. Diffie-Hellman позволяет установить общий секретный ключ без передачи его по сети.
  • ca /etc/openvpn/ca.crt: Указывает путь к файлу корневого сертификата Certificate Authority (CA). Этот файл используется для проверки сертификатов клиентов.
  • cert /etc/openvpn/vpn-server.crt: Указывает путь к сертификату сервера OpenVPN.
  • key /etc/openvpn/server.key: Указывает путь к закрытому ключу сервера OpenVPN. Храните этот файл в безопасном месте!
  • crl-verify /etc/openvpn/crl.pem: Указывает путь к файлу списка отозванных сертификатов (Certificate Revocation List — CRL). Этот файл содержит информацию о сертификатах, которые были отозваны и больше не должны использоваться.
  • tls-auth /etc/openvpn/ta.key 0: Использует TLS-аутентификацию с использованием файла ta.key. 0 указывает, что это серверная сторона. Добавляет дополнительный уровень безопасности.

Параметры сети и маршрутизации:

  • server 10.10.0.0 255.255.255.0: Определяет диапазон IP-адресов, которые будут назначены VPN-клиентам. В данном случае, это сеть 10.10.0.0/24.
  • client-config-dir /etc/openvpn/ccd: Указывает директорию, содержащую файлы конфигурации для отдельных клиентов. Это позволяет применять разные настройки к разным клиентам.
  • client-to-client: Позволяет клиентам VPN-соединения видеть друг друга в сети.
  • topology subnet: Указывает топологию сети OpenVPN. subnet – это стандартный выбор для большинства случаев.
  • max-clients 5: Ограничивает максимальное количество одновременных подключений к серверу.
  • push "dhcp-option DNS 10.15.0.1": Передает информацию о DNS-сервере (10.15.0.1) клиентам через DHCP. Это позволяет клиентам использовать этот DNS-сервер для разрешения имен.
  • route 10.10.0.0 255.255.255.0: Добавляет маршрут к сети 10.10.0.0/24 в таблицу маршрутизации сервера.
  • comp-lzo: Включает сжатие LZO для уменьшения объема передаваемых данных. Рекомендуется отключать, так как этот алгоритм не очень безопасен. Лучше использовать compress lz4 или compress zstd.

Параметры управления и логирования:

  • keepalive 10 120: Отправляет пакеты keepalive каждые 10 секунд и считает соединение неактивным через 120 секунд без получения ответа. Предотвращает разрыв соединения из-за сетевых проблем.
  • status /var/log/openvpn/openvpn-status.log 1: Записывает статус соединения OpenVPN в указанный файл. 1 указывает на режим verbose.
  • status-version 3: Указывает версию формата файла статуса.
  • log-append /var/log/openvpn/openvpn-server.log: Добавляет сообщения OpenVPN в указанный файл лога.
  • verb 3: Устанавливает уровень детализации логирования. 3 – это достаточно высокий уровень, который содержит много информации для отладки.
  • mute 20: Отключает сообщение о запуске сервера, которое может появиться в логах.

Важные замечания:

  • Безопасность: Файл server.key должен быть надежно защищен. Если он будет скомпрометирован, злоумышленник сможет получить доступ к VPN-соединению.
  • Совместимость: Убедитесь, что настройки клиента OpenVPN соответствуют настройкам сервера.
  • Оптимизация: Если OpenVPN работает медленно, попробуйте отключить сжатие LZO и использовать другие алгоритмы сжатия, такие как lz4 или zstd.

От alex

Обучаемый.