Как настроить OpenVPN в качестве клиента на Linux
В этой статье вы узнаете, как настроить OpenVPN на Linux в качестве клиента и получить точный контроль над сетевым трафиком с помощью соответствующих процедур.

Как настроить OpenVPN в качестве клиента на Linux

В этой структурированной и технической статье мы расскажем вам, как настроить OpenVPN на Linux в качестве клиента. Пошаговые инструкции и управление маршрутизацией позволят вам лучше контролировать поток трафика. Статья также содержит советы по безопасности и устранению неполадок для оптимального использования OpenVPN.
0 Акции
0
0
0
0
  1. Вы хотите установить OpenVPN на Linux в качестве клиента и направлять определенные маршруты через VPN или через обычный маршрут?
  2. Предпосылки
  3. установка OpenVPN
  4. Базовая настройка (ручное выполнение)
  5. Управление маршрутизацией по умолчанию: поведение сервера по умолчанию
  6. Метод 1 — Передача через VPN только некоторых IP-адресов (разделенный туннель)
  7. Метод 2 — Весь трафик проходит через VPN, но несколько конкретных IP-адресов проходят обычным путем (обходной путь).
    1. A) Сохраните исходный шлюз перед подключением.
    2. б) Автоматизация с помощью скрипта "вверх/вниз"
  8. Метод 3 — Маршрутизация на основе политик
  9. Подключение к systemd (автозапуск)
  10. Проблемы с DNS и разрешением имен.
  11. Полный пример файла client.ovpn (образец)
  12. Советы по безопасности и эксплуатации
  13. Исправление распространенных ошибок
  14. Сравнение приложений и советы для разных типов пользователей.
  15. Резюме и заключение

 

Вы хотите установить OpenVPN на Linux в качестве клиента и направлять определенные маршруты через VPN или через обычный маршрут?

В этом практическом и техническом пошаговом руководстве мы расскажем, как настроить OpenVPN в качестве клиента на популярных дистрибутивах Linux. Цель — предоставить примеры файлов, скрипты для управления маршрутами (вкл/выкл), методы раздельного туннелирования и обхода IP-адресов, а также советы по аутентификации по имени пользователя и паролю.

 

Предпосылки

Прежде чем начать, убедитесь, что у вас есть следующее:

  • Система Linux (Ubuntu/Debian/CentOS/Fedora/Alma)
  • Закрыто OpenVPN Установлено
  • Файл конфигурации сервера или файл .ovpn От VPN-провайдера
  • Имя пользователя/пароль в случае комбинированной аутентификации (пользователь/пароль + сертификат)

 

установка OpenVPN

Команды установки для распространенных дистрибутивов:

sudo apt update && sudo apt install openvpn
sudo dnf install openvpn

 

Базовая настройка (ручное выполнение)

Если файл client.ovpn Если у вас он есть, используйте эту команду для немедленного запуска:

sudo openvpn --config client.ovpn

Если сервер использует имя пользователя/пароль, и вы не хотите вводить их каждый раз, создайте файл с учетными данными:

sudo tee /etc/openvpn/credentials <<'EOF'
myuser
mypassword
EOF
sudo chmod 600 /etc/openvpn/credentials

В файле .ovpn Следующая строка должна существовать или быть добавлена:

auth-user-pass /etc/openvpn/credentials

Совет по безопасности: От auth-nocache Используйте эту опцию, чтобы предотвратить кэширование пароля OpenVPN в памяти:

auth-nocache

 

Управление маршрутизацией по умолчанию: поведение сервера по умолчанию

Поведение маршрутов по умолчанию часто определяется сервером:

  • Если сервер redirect-gateway def1 Если вы нажмете кнопку, весь ваш трафик будет проходить через VPN (полный туннель).
  • Чтобы предотвратить принятие сервером маршрута по умолчанию, можно использовать route-nopull Используйте команду, а затем вручную добавьте необходимые маршруты.

 

Метод 1 — Передача через VPN только некоторых IP-адресов (разделенный туннель)

Если вы хотите, чтобы через VPN передавались только определенные адреса, используйте route-nopull В файле client.ovpn Используйте и добавьте необходимые маршруты.

client
dev tun
proto udp
remote vpn.example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun

route-nopull

route 203.0.113.45 255.255.255.255
route 198.51.100.0 255.255.255.0

Объяснение: С route-nopull Сервер не принимает маршруты, и вам придётся довольствоваться существующими линиями связи. маршрут Вы перенаправляете трафик на определенные адреса через VPN.

 

Метод 2 — Весь трафик проходит через VPN, но несколько конкретных IP-адресов проходят обычным путем (обходной путь).

Когда сервер redirect-gateway def1 Если вы хотите, чтобы определенные адреса проходили через маршрут по умолчанию (Интернет), вам необходимо сохранить шлюз по умолчанию и переписать маршруты обхода.

A) Сохраните исходный шлюз перед подключением.

Примеры команд для получения шлюза по умолчанию и устройства перед подключением:

GW=$(ip route show default | awk '/default/ {print $3}')
DEV=$(ip route show default | awk '/default/ {print $5}')

После подъема тун0Добавьте заново IP-адреса, которые вы хотите обойти через шлюз:

sudo ip route add 203.0.113.0/24 via $GW dev $DEV
sudo ip route add 8.8.8.8/32 via $GW dev $DEV

б) Автоматизация с помощью скрипта "вверх/вниз"

В client.ovpn Добавьте следующие строки для запуска скриптов:

script-security 2
up /etc/openvpn/client-up.sh
down /etc/openvpn/client-down.sh

Пример /etc/openvpn/client-up.sh:

#!/bin/bash
echo "$(ip route show default | awk '/default/ {print $3, $5}')" > /var/run/openvpn.origgw
GW=$(awk '{print $1}' /var/run/openvpn.origgw)
DEV=$(awk '{print $2}' /var/run/openvpn.origgw)
ip route add 8.8.8.8/32 via $GW dev $DEV
ip route add 203.0.113.45/32 via $GW dev $DEV
exit 0

Пример /etc/openvpn/client-down.sh:

#!/bin/bash
GW=$(awk '{print $1}' /var/run/openvpn.origgw)
DEV=$(awk '{print $2}' /var/run/openvpn.origgw)
ip route del 8.8.8.8/32 via $GW dev $DEV || true
ip route del 203.0.113.45/32 via $GW dev $DEV || true
rm -f /var/run/openvpn.origgw
exit 0

Не забудьте запустить скрипты:

sudo chmod +x /etc/openvpn/client-up.sh /etc/openvpn/client-down.sh

 

Метод 3 — Маршрутизация на основе политик

Вы можете использовать маршрутизацию на основе политик для направления трафика, специфичного для конкретного источника, через VPN.

echo "200 vpnroute" | sudo tee -a /etc/iproute2/rt_tables
sudo ip rule add from 10.0.0.5/32 lookup vpnroute
sudo ip route add default dev tun0 table vpnroute

Чтобы найти информацию тун0 И виртуальный шлюз:

ip -4 addr show dev tun0
ip route show dev tun0

 

Подключение к systemd (автозапуск)

Для файлов конфигурации, находящихся по указанному пути. /etc/openvpn/client/ Вы можете запустить модуль systemd:

sudo systemctl start openvpn-client@client
sudo systemctl enable openvpn-client@client
sudo journalctl -u openvpn-client@client -f

 

Проблемы с DNS и разрешением имен.

Если DNS-запросы передаются сервером, для некоторых дистрибутивов требуется скрипт. update-resolv-conf или координация с systemd-resolved У вас есть.

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

В системах, которые systemd-resolved Возможно, потребуется дополнительная настройка.

 

Полный пример файла client.ovpn (образец)

client
dev tun
proto udp
remote vpn.example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256

auth-user-pass /etc/openvpn/credentials
auth-nocache
route-nopull

route 203.0.113.45 255.255.255.255
route 198.51.100.0 255.255.255.0

script-security 2
up /etc/openvpn/client-up.sh
down /etc/openvpn/client-down.sh

 

Советы по безопасности и эксплуатации

  • Создайте файл учетных данных с помощью chmod 600 Защищать.
  • Из клиентского сертификата и tls-auth/tls-crypt Используется для предотвращения простых DoS-атак.
  • От auth-nocache Используйте эту функцию, чтобы избежать кэширования пароля в памяти.
  • Поддерживайте OpenVPN в актуальном состоянии и используйте современные алгоритмы шифрования/хеширования, такие как... AES-256-GCM Или CHACHA20 Использовать.
  • Отслеживайте журналы и используйте systemd с logrotate для ротации журналов.

Для сред, требующих минимальной задержки (торговцы/геймеры), используйте близко расположенные точки или раздельное туннелирование, чтобы направлять только необходимые сервисы для поддержания пинга и стабильности.

 

Исправление распространенных ошибок

  • Соединение не установлено: проверьте порт и протокол в брандмауэре (ufw/iptables/security group).
  • DNS не работает: из update-resolv-conf Или ручная регулировка /etc/resolv.conf Использовать.
  • Маршруты не добавлены: Убедитесь скрипт-безопасность 2 Она включена, и скрипты являются исполняемыми.
  • После обрыва интернет-соединения: Вероятно, сервер передал маршрут по умолчанию; используйте методы обхода или route-nopull.

 

Сравнение приложений и советы для разных типов пользователей.

  • Трейдеры: Необходимо обеспечить стабильное соединение и высокий пинг; используйте близко расположенные точки и, по возможности, используйте только раздельное туннелирование для подключения к торговому серверу.
  • Геймеры: Игровой трафик обычно должен следовать по кратчайшему маршруту; полное туннелирование может увеличить пинг, поэтому направляйте трафик только на игровой сервер или используйте ближайший сервер.
  • Администраторы сайта/DevOps: Рекомендуется запускать клиент OpenVPN на серверах с systemd и использовать маршрутизацию на основе политик для конкретных служб.
  • Искусственный интеллект/Рендеринг: Для передачи больших объемов данных больше подходят серверы с полнотуннельным режимом работы и высокой пропускной способностью.

 

Резюме и заключение

Для запуска клиента OpenVPN в Linux обычно требуется соответствующий файл. .ovpn Кроме того auth-user-pass И при необходимости route-nopull Этого достаточно для режима разделенного туннелирования. Чтобы обойти некоторые IP-адреса в режиме полного туннелирования, сохраните предыдущий шлюз и добавьте соответствующие маршруты. Для более сложных сценариев используйте маршрутизацию на основе политик.

Вам также может понравиться

Новый выделенный сервер AX42 — идеальное соотношение цены, производительности и энергопотребления

Введение Компания Hetzner Online только что представила свой новый выделенный сервер, который не только обладает мощностью…
amazon-web-service-API

API и сервисы Amazon (AWS): все, что вам нужно знать

В современном мире, где информационные технологии стремительно развиваются, использование облачной инфраструктуры стало одной из основных потребностей бизнеса. Amazon Web Services, или сокращенно AWS, — один из крупнейших и самых мощных поставщиков облачных сервисов в мире. В этой статье мы расскажем, что такое API, какова его роль в AWS, а также рассмотрим наиболее важные сервисы Amazon.
Как создать несколько простых проектов с помощью API Google Карт

Как создать несколько простых проектов с помощью API Google Карт

В этой статье вы узнаете, как создавать интерактивные карты, оптимизировать маршруты и анализировать данные о местоположении с помощью API Google Карт на платформе GCP.

Как создать или отредактировать файл .htaccess в cPanel

Введение Файл htaccess содержит несколько директив (инструкций), которые указывают серверу, как себя вести в определенных сценариях...