Шаг 5 Настройка OpenVPN
Настройка OpenVPN
Как и многие другие широко используемые инструменты с открытым исходным кодом, OpenVPN имеет множество опций конфигурации, доступных для настройки вашего сервера под ваши конкретные потребности. В этом разделе мы предоставим инструкции по настройке конфигурации сервера OpenVPN на основе одного из примеров файлов конфигурации, включенных в документацию данного программного обеспечения.
Сначала скопируйте server.conf
файл примера в качестве отправной точки для вашего собственного файла конфигурации:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/ sudo gunzip /etc/openvpn/server/server.conf.gz
Откройте новый файл для редактирования в любом текстовом редакторе. Мы будем использовать nano в нашем примере:
sudo nano /etc/openvpn/server/server.conf
Нам нужно изменить несколько строк в этом файле. Сначала найдите HMAC
раздел конфигурации, выполнив поиск tls-auth
директивы. Эта строка должна быть без комментариев. Прокомментируйте это, добавив ;
в начало строки. Затем добавьте новую строку после нее, содержащую tls-crypt ta.key
только значение :/etc/openvpn/server/server.conf
;tls-auth ta.key 0 # This file is secret
tls-crypt ta.key
Затем найдите раздел о криптографических шифрах, ища cipher
строки. Значение по умолчанию установлено AES-256-CBC
, однако, AES-256-GCM
шифр предлагает лучший уровень шифрования, производительность и хорошо поддерживается в современных клиентах OpenVPN. Мы закомментируем значение по умолчанию, добавив ;
знак в начало этой строки, а затем добавим еще одну строку после него, содержащую обновленное значение AES-256-GCM
:/etc/openvpn/server/server.conf
;cipher AES-256-CBC
cipher AES-256-GCM
Сразу после этой строки добавьте auth
директиву для выбора алгоритма дайджеста сообщений HMAC. Для этого SHA256
хороший выбор:/etc/openvpn/server/server.conf
auth SHA256
Затем найдите строку, содержащую dh
директиву, которая определяет параметры Диффи-Хеллмана. Поскольку мы настроили все сертификаты для использования криптографии с эллиптической кривой, нет необходимости в исходном файле Диффи-Хеллмана. Закомментируйте существующую строку, которая выглядит как dh dh2048.pem
или dh dh.pem
. Имя файла для ключа Диффи-Хеллмана может отличаться от того, которое указано в примере файла конфигурации сервера. Затем добавьте после него строку с содержанием dh none
:/etc/openvpn/server/server.conf
;dh dh2048.pem
dh none
Далее, мы хотим, чтобы OpenVPN запускался без каких-либо привилегий после его запуска, поэтому нам нужно указать, чтобы он запускался с пользователем nobody и группой nogroup . Чтобы включить это, найти и раскомментировать user nobody
и group nogroup
строки, удалив ;
знак с начала каждой строки:/etc/openvpn/server/server.conf
user nobody
group nogroup
(Необязательно) Push-изменения DNS для перенаправления всего трафика через VPN
Приведенные выше настройки создадут VPN-соединение между вашим клиентом и сервером, но не заставят никакие соединения использовать туннель. Если вы хотите использовать VPN для маршрутизации всего клиентского трафика через VPN, вам, скорее всего, потребуется передать некоторые дополнительные настройки на клиентские компьютеры.
Для начала найдите и раскомментируйте строку, содержащую push "redirect-gateway def1 bypass-dhcp"
. Это скажет вашему клиенту перенаправить весь его трафик через ваш сервер OpenVPN. Помните, что включение этой функции может вызвать проблемы с подключением к другим сетевым службам, таким как SSH:/etc/openvpn/server/server.conf
push "redirect-gateway def1 bypass-dhcp"
Прямо под этой линией найдите dhcp-option
раздел. Снова удалите ;
с начала обеих строк, чтобы раскомментировать их:/etc/openvpn/server/server.conf
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
Эти строки сообщат вашему клиенту использовать бесплатные распознаватели OpenDNS по указанным IP-адресам. Если вы предпочитаете другие распознаватели DNS, вы можете заменить их вместо выделенных IP-адресов.
Это поможет клиентам перенастроить свои настройки DNS для использования VPN-туннеля в качестве шлюза по умолчанию.
(Необязательно) Настройте порт и протокол
По умолчанию сервер OpenVPN использует порт 1194
и протокол UDP для приема клиентских подключений. Если вам нужно использовать другой порт из-за ограниченных сетевых сред, в которых могут находиться ваши клиенты, вы можете изменить эту port
опцию. Если вы не размещаете веб-контент на своем сервере OpenVPN, порт 443
является популярным выбором, так как он обычно разрешен правилами брандмауэра.
Чтобы изменить OpenVPN для прослушивания через порт 443, откройте server.conf
файл и найдите строку, которая выглядит следующим образом:/etc/openvpn/server/server.conf
port 1194
Отредактируйте его так, чтобы порт был 443:/etc/openvpn/server/server.conf
# Optional!
port 443
Зачастую протокол также ограничивается этим портом. Если да, то найти proto
строку ниже port
строки и изменить протокол от udp
до tcp
:/etc/openvpn/server/server.conf
# Optional!
proto tcp
Если вы делаете переключить протокол к TCP, вам нужно будет изменить параметр explicit-exit-notify
значение директивы от 1
к 0
, так как эта директива используется только UDP. Невыполнение этого при использовании TCP приведет к ошибкам при запуске службы OpenVPN.
Найдите explicit-exit-notify
строку в конце файла и измените значение на 0
:/etc/openvpn/server/server.conf
# Optional!
explicit-exit-notify 0
Если вам не нужно использовать другой порт и протокол, лучше оставить эти настройки без изменений.
(Необязательно) Укажите учетные данные не по умолчанию
Если вы выбрали другое имя во время ./easyrsa gen-req server
команды ранее, модифицировать cert
и key
строки в server.conf
файле конфигурации так , что они указывают на подходящей .crt
и .key
файлов. Если вы использовали имя по умолчанию server
, это уже правильно установлено:/etc/openvpn/server/server.conf
cert server.crt
key server.key
Когда вы закончите, сохраните и закройте файл.
Вы завершили настройку общих настроек OpenVPN. На следующем шаге мы настроим сетевые параметры сервера.
Last updated
Was this helpful?