Клиент сервер linux настройка

Настройка и использование OpenVPN на Ubuntu

Обновлено

Обновлено: 05.03.2023 Опубликовано: 23.01.2019

Тематические термины: VPN, Ubuntu, OpenVPN. В инструкции рассмотрим процесс установки и настройки VPN сервера OpenVPN на Linux Ubuntu.

Подготовка Ubuntu

* в данном примере московское время. Если в нашей системе используется брандмауэр, открываем порт, на котором будет слушать OpenVPN:

* в данной инструкции предполагается, что мы настроим VPN-сервер на UDP-порту 443, однако, по-умолчанию, OpenVPN работает на порту 1194. Для сохранения правила используем iptables-persistent:

Установка, настройка и запуск VPN-сервера

Обязательные шаги для развертывания сервиса — установка программного обеспечения, генерация сертификатов, настройка OpenVPN. Рассмотрим эти процессы по шагам.

Установка OpenVPN

Создание сертификатов

export KEY_COUNTRY=»RU»
export KEY_PROVINCE=»Sankt-Petersburg»
export KEY_CITY=»Sankt-Petersburg»
export KEY_ORG=»DMOSK COMPANY»
export KEY_EMAIL=»master@dmosk.ru»
export KEY_CN=»DMOSK»
export KEY_OU=»DMOSK»
export KEY_NAME=»name-openvpn-server.dmosk.ru»
export KEY_ALTNAMES=»name-openvpn-server»

* где KEY_CN и KEY_OU: рабочие подразделения (например, можно указать название отдела); KEY_NAME: адрес, по которому будет выполняться подключение (можно указать полное наименование сервера); KEY_ALTNAMES — альтернативный адрес. Следующие действия будут записеть от версии OpenVPN. Более новая позволяет создавать сертификаты на основе Easy RSA 3, старая работает на базе 2-й версии. Понять, какой вариант наш можно посмотрев на содержимое каталога easy-rsa:

Либо мы увидим в нем утилиту easyrsa (новая версия), либо набор утилит, начинающихся на build. Рассмотрим процесс формирования сертификата с использованием как RSA3, так и RSA2. а) Если используется новая версия (утилита easyrsa) 1. Инициализируем PKI:

* после вводим дважды пароль, который хотим использовать для ключа центра сертификации. На запрос «Common Name» можно просто нажать Enter:

* nopass можно упустить, если хотим повысить безопасность с помощью пароля на сертификат. На запрос «Common Name» можно просто нажать Enter:

Читайте также:  Folder size check in linux

Источник

Установка и настройка сервера WireGuard VPN на Linux Ubuntu

Обновлено

Обновлено: 25.11.2022 Опубликовано: 30.09.2022

WireGuard позиционируется как современное решение по организации быстрого VPN. Рассмотрим процесс его настройки на Linux Ubuntu.

Подготовка системы

1. Обновление списка пакетов.

В дистрибутивах Linux на основе deb важно держать в актуальном состоянии кэш репозиториев. Выполним команду:

2. Настройка брандмауэра

В системах на основе deb, по умолчанию, брандмауэр разрешает все пакеты. Но если в нашей системе настроена защита, то нам нужно открыть UDP-порт для WireGuard. В различных источниках фигурирует разный номер, но на официальном сайте используют 51820:

Установка и настройка сервера

* оба ключа попадут в каталог /etc/wireguard. Выводим на экран содержимое закрытого ключа:

[Interface]
PrivateKey = 2Hl2UlyD/xFrDyzIBEkfPa27yKllp0O+7e9023u8sHk=
Address = 176.16.10.1/24
ListenPort = 51820
SaveConfig = false

  • PrivateKey — закрытый ключ, который мы создали и смотрели командой cat.
  • Address — адрес в сети VPN. Можно использовать любую подсеть, но стоит ограничиться выбором из зарезервированных диапазонов для локальных сетей. Также данная подсеть не должна пересекаться с используемыми диапазонами.
  • ListenPort — порт, на котором будет работать наш сервер.
  • SaveConfig — сохранять или нет конфигурацию из текущего состояния при завершении работы. По факту, если выставить в true, то перезапуск сервиса не принимает новые изменения в конфигурационном файле, а возвращает старые настройки. Для внесения изменений нужно будет остановить службу, внести изменения, запустить службу. Мне это показалось не совсем удобным.

Разрешаем автозапуск сервиса:

systemctl enable wg-quick@server —now

* обратите внимание на то, что идет после собаки (server). Это имя конфигурационного файла. При желании, мы можем создать много таких файлов и запустить несколько VPN серверов на разных портах.

Убедимся, что наш сервер начал слушать на заданном порту:

Сервер готов принимать запросы.

Подключение клиента

Для примера мы установим и настроим клиентов для Windows и Linux. Настройка будет выполнена в четыре шага:

  1. Смотрим ключ на сервере.
  2. Настраиваем клиента.
  3. Настраиваем сервер.
  4. Проверяем подключение.

1. Ключ на сервере

На сервере смотрим публичный ключ, который мы генерировали в начале инструкции:

Фиксируем — его мы будем использовать для настройки клиентов.

Читайте также:  Линукс консоль удалить папку

2. Настройка клиента

В зависимости от вашей системы, выбираем один из вариантов настройки.

Windows

Заходим на официальный сайт, страницу загрузки. Скачиваем клиента на Windows:

Скачиваем клиента wireguard для Windows

Запускаем скачанный файл и выполняем установку. Она очень простая.

После запустится клиент — в нижней части окна добавляем пустой туннель:

Переходим к добавлению туннеля в клиенте wireguard

Задаем название для клиента, также фиксируем публичный ключ — он нам будет нужен дальше:

Задаем название для конфигурации

В окне с редактором вносим свои данные:

[Interface]
PrivateKey = qD/VCIDLAWGAIl2G9wUjL+MAobks5PpDmzqQcuqqQWc=
Address = 176.16.10.10/24

[Peer]
PublicKey = Z5E6sWmAX9JqSBpO2frcIZ9vkkm/V+8xgP7ZxWXnOCs=
AllowedIPs = 176.16.10.0/24
Endpoint = 1.1.1.1:51820
PersistentKeepalive = 15

  • [Interface] — блок настроек для клиента.
  • PrivateKey — приватный ключ клиента. Он автоматически будет сгенерирован
  • Address — IP-адрес в сети VPN, который будет назначен клиенту.
  • [Peer] — настройки для соединения с сервером.
  • PublicKey — публичный ключ сервера. Его мы смотрели в самом начале данного раздела.
  • AllowedIPs — маршрут, разрешенный для клиента.
  • Endpoint — адрес и порт сервера, к которому мы будем подключаться клиентом.
  • PersistentKeepalive — интервал между проверками доступности соединения.

Linux

Установка и настройка, отчасти, похожа на то, что мы делали на сервере. Для начала, устанавливаем wireguard. В зависимости от дистрибутива Linux, команды будут отличаться, например:

б) для Fedora или CentOS 7:

yum install wireguard-tools

* все варианты команд для установки можно посмотреть на официальном сайте.

После установки необходимо сгенерировать ключи и выполнить настройку.

wg genkey | tee /etc/wireguard/private.key | wg pubkey > /etc/wireguard/public.key

* оба ключа попадут в каталог /etc/wireguard.

Смотрим содержимое файлов:

Фиксируем значения. Для настройки клиента нам нужно содержимое приватного ключа, для настройки сервера — публичного.

Создаем конфигурационный файл для сервера:

[Interface]
PrivateKey = qD/VCIDLAWGAIl2G9wUjL+MAobks5PpDmzqQcuqqQWc=
Address = 176.16.10.10/24

[Peer]
PublicKey = Z5E6sWmAX9JqSBpO2frcIZ9vkkm/V+8xgP7ZxWXnOCs=
AllowedIPs = 176.16.10.0/24
Endpoint = 1.1.1.1:51820
PersistentKeepalive = 15

  • [Interface] — блок настроек для клиента.
  • PrivateKey — приватный ключ клиента. Его мы сгенерировали.
  • Address — IP-адрес в сети VPN, который будет назначен клиенту.
  • [Peer] — настройки для соединения с сервером.
  • PublicKey — публичный ключ сервера. Его мы смотрели в самом начале данного раздела.
  • AllowedIPs — маршрут, разрешенный для клиента.
  • Endpoint — адрес и порт сервера, к которому мы будем подключаться клиентом.
  • PersistentKeepalive — интервал между проверками доступности соединения.

Разрешим автозапуск сервиса:

Читайте также:  Config file path in linux

systemctl enable wg-quick@client

* как в случае с сервером, то, что идет после собаки (client) является именем конфигурационного файла. При желании, мы можем создать много таких файлов и запустить несколько VPN подключений к разным серверам.

3. Добавление клиента на сервере

Откроем конфигурационный файл для нашего сервера:

Добавим пир для нашего нового клиента:

.
[Peer]
PublicKey = 6sDdWDSdYcoBAC7EVKg+z8Gcd+F5OQDkKBELf9MEOTY=
AllowedIPs = 176.16.10.10/32

* где PublicKey — публичный ключ, который мы видели при настройке клиента; AllowedIPs — разрешенный адрес для клиента (который мы ему выдали).
** для каждого клиента, который будет подключаться к серверу мы должны создать свой блок настроек [Peer].

systemctl restart wg-quick@server

4. Проверка работы

Возвращаемся к настройкам клиента. Можно подключаться.

а) На Windows:

Для подключения к серверу нажимаем Подключить

Мы должны увидеть измененный статус на Подключен:

Статус подключенного клиента

б) На Linux запускаем сервис:

systemctl start wg-quick@client

Мы должны подключиться к серверу.

Для проверки соединения можно отправить пинг на сервер (в нашем примере его IP 176.16.10.1):

Базово мы разобрались с настройкой WireGuard.

Маршруты через сервер VPN

Как правило, VPN используется в качестве транзита в другие подсети. Рассмотрим, как теперь настроить наш сервер для работы в качестве маршрутизатора. Настройки выполняются как на сервере, так и клиенте.

Мы предположим, что наш сервер должен пускать клиентов в сеть 192.168.100.0/24.

На сервере

Открываем на редактирование sysctl.conf:

Добавляем в него следующую строчку:

Применяем настройки sysctl:

Добавляем правило в брандмауэр:

iptables -t nat -I POSTROUTING -o ens18 -j MASQUERADE

* в данном примере идет расчет на то, что наша сеть 192.168.100.0/24 доступна для сервера через интерфейс ens18. Вы должны заменить значение на свое.

Наш сервер настроен в качестве маршрутизатора в сеть 192.168.100.0/24. Переходим к клиенту.

На клиенте

В конфигурации клиента редактируем опцию AllowedIPs в блоке [Peer]:

[Peer]
.
AllowedIPs = 176.16.10.0/24, 192.168.100.0/24
.

* обратите внимание, что мы добавили подсеть 192.168.100.0/24 — это приведет к тому, что при подключении клиента к серверу будет прописываться маршрут в данную подсеть через сервер VPN.

А если мы хотим, чтобы весь траффик шел через VPN, задаем значение для AllowedIPs:

Готово. Перезапускаем клиента и пробуем получить доступ к ресурсам в нужной сети.

Источник

Оцените статью
Adblock
detector