Основные параметры соединения:
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.