Как настроить vpn сервер на ubuntu
Перейти к содержимому

Как настроить vpn сервер на ubuntu

  • автор:

Настройка VPN для Ubuntu : Протокол OpenVPN

Ниже вы найдете инструкции по настройке Ubuntu OpenVPN для нашей VPN-сети.

Инструкции по настройке OpenVPN для Ubuntu

Данное руководство написано на примере Ubuntu 20.04, но его можно использовать и во многих других дистрибутивах Linux, использующих последнюю версию Gnome NetworkManager.

Перед конфигурацией необходимо установить пакет network-manager-openvpn.

1. Щелкните по иконке Сеть на панели > Настроить VPN

2. Нажмите Добавить > OpenVPN

3. Проверьте тип аутентификации » Пароль» и заполните«Имя подключения» как любое удобное вам имя, т.е. «SmartDNSProxy VPN». Введите . сетевой адрес сервера вы хотите подключиться к«Шлюзу» и получить имя пользователя и пароль вашего VPN аккаунта. Выберите файл с сертификатом ЦС*. Вы можете скачать сертификат ЦС здесь.

4. Нажмите Дополнительно:

  • Установите флажок «Использовать пользовательский порт шлюза» и введите номер порта 1194 (по умолчанию), 443, 80 или 53.
  • Установите флажок «Использовать пользовательский интервал перезаключения» и введите цифру 0.
  • Установите для параметра Data Compression значение DISABLED.

5. Установите правильный шифр на вкладке Безопасность:

6. Выберите файл с сертификатом TLS*. Сертификат TLS можно скачать здесь.

7. Щелкните значок NetworkManager и отключите, а затем снова включите сетевое подключение, чтобы принудительно перезагрузить конфигурацию.

Снова нажмите NetworkManager, затем VPN Connections, nl-am2.serverlocation.co, чтобы начать соединение. Введите ваш пароль при запросе.

И теперь вы должны быть подключены! Вы можете проверить свой новый IP и местоположение на сайте https://www.whatismyip.com/.

* Если файл сертификата не читается (в SELINUX), можно попробовать ввести следующие команды:

mv /home/norm30/Downloads/serverlocation.crt ~/.cert

restorecon -R -v ~/.cert

Это ответило на твой вопрос?

Спасибо за отзывы Возникла проблема с отправкой вашего отзыва. Пожалуйста, повторите попытку позже.

Последнее обновление 15 июня 2022 года

Категории

  • VPN и SmartVPN
  • Настройка VPN для Android
  • Настройка VPN для ChromeOS
  • Настройка VPN для MAC OS X
  • Настройка VPN для маршрутизатора
  • Настройка VPN для Ubuntu
  • Настройка VPN для Windows 10
  • Настройка VPN для Windows 7
  • Настройка VPN для Windows 8
  • Настройка VPN для iOS (iPad, iPhone)
  • VPN-поиск и устранение неисправностей
  • Носки5 и Кальмары3 Прокси

Как поднять OpenVPN сервер на Ubuntu 22.04?

В эпоху массовых блокировок и ограничений в сети, сохранение своей онлайн приватности становится все более актуальным. И здесь вам на помощь приходит OpenVPN – одно из самых популярных и надежных решений для создания безопасного туннеля в интернет. Если вы хотите обойти географические ограничения, обеспечить защиту своих данных или просто настроить собственный сервер для удаленного доступа к локальным ресурсам, то данная статья именно для вас! Мы рассмотрим этапы создания и настройки своего собственного OpenVPN сервера, чтобы вы могли насладиться свободным и безопасным интернетом, не зависимо от места нахождения. Присоединяйтесь к нам и давайте начнем этот увлекательный путь в мир безграничной свободы в онлайне!

Где взять VPS(виртуальную машину) и как к ней подключится?

Я лично использовал justhost(тык!) и брал самую дешёвую виртуалку в Нидерландах.

Далее будет инструкция по подключению:

  1. Зарегистрироваться, оплатить VPS
  2. Пока Вы ждёте её включение, скачайте PuTTy(тык!, тык!)
  3. Когда VPS запустилась, Вам на почту по которой вы регистрировались приходит письмо, в котором есть пароль от пользователя root, и IPv4 адрес, запоминаем их
  4. Открываем PuTTy и в поле Host Name (or IP address) вводим ip(IPv4) адрес который мы запомнили из письма и нажимаем Open
  5. Соглашаемся(Accept) с предупреждением о безопасности(оно появляется 1 раз)
  6. Если вы увидели надпись login as: , то Вы подключились
  7. Вводим root и при запросе пароля вводим пароль из письма

Создание нового пользователя и вход под ним(по соображениям безопасности)

  1. useradd -m
  2. passwd
  3. usermod -aG sudo

  1. sudo chsh -s /bin/bash

Подключаемся заново и входим под ранее созданным пользователем (предыдущий пункт, всё с 3 шага)

Предварительная подготовка

Установка пакетов
  1. sudo apt install easy-rsa
  2. sudo apt install openvpn
  3. sudo apt install iptables-persistent
Настройка FireWall
  1. sudo iptables -I INPUT -p udp —dport 1194 -j ACCEPT
  2. sudo netfilter-persistent save
Настройка директорий VPN

  1. sudo mkdir -p /etc/openvpn/keys
  2. sudo mkdir /etc/openvpn/easy-rsa
  3. cd /etc/openvpn/easy-rsa
  4. sudo cp -r /usr/share/easy-rsa/* .
  1. sudo mkdir /etc/openvpn/ccd

Настройка VPN

Конфигурируем конфиги

Настройка vars

  1. sudo nano vars
  2. В открывшийся интерфейс вставляем:
export KEY_COUNTRY=«RU» export KEY_PROVINCE=«Moscow» export KEY_CITY=«Moscow» export KEY_ORG=«sten» export KEY_ORG=»fdjgbi@sten.com« export KEY_CN=«sten» export KEY_OU=«sten» export KEY_NAME=«vpn.StenLi.com» export KEY_ALTNAMES=«vpn2.StenLi.com»

KEY_ORG, KEY_ORG, KEY_CN, KEY_OU, KEY_NAME, KEY_ALTNAMES — можно указывать всё, что угодно

  1. нажимаем по порядку: ctrl+x, y, enter

Настройка /etc/nat(FireWall)

  1. sudo nano /etc/nat
  2. В открывшийся интерфейс вставляем:
#!/bin/sh # Включаем форвардинг пакетов echo 1 > /proc/sys/net/ipv4/ip_forward # Сбрасываем настройки брандмауэра iptables -F iptables -X iptables -t nat -F iptables -t nat -X # Разрешаем инициированные нами подключения извне iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT # Разрешаем подключения по SSH iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT # Разрешаем подключения к OpenVPN iptables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT # Разрешает входящий трафик из tun0 iptables -A INPUT -i tun0 -j ACCEPT # Разрешает транзитный трафик между eth0 и tun0: iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT iptables -A FORWARD -i tun0 -o eth0 -j ACCEP # Запрещаем входящие извне iptables -A INPUT -i eth0 -j DROP # Разрешаем инициированные нами транзитные подключения извне iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j A # Запрещаем транзитный трафик извне iptables -A FORWARD -i eth0 -o tun0 -j DROP # Включаем маскарадинг для локальной сети iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 -j MASQUERADE

  1. нажимаем по порядку: ctrl+x, y, enter
  2. sudo chmod 755 /etc/nat
Создание ключей сервера
  1. sudo ./easyrsa init-pki
  2. sudo ./easyrsa build-ca
  3. вводим пароль и запоминаем его(Enter New CA Key Passphrase)
  4. sudo ./easyrsa gen-req server nopass
  5. sudo ./easyrsa sign-req server server

После ввода команды подтверждаем правильность данных, введя yes,

и вводим пароль, который указывали при создании корневого сертификата.

  1. sudo ./easyrsa gen-dh
  2. sudo openvpn —genkey secret pki/ta.key
  3. sudo cp pki/ca.crt /etc/openvpn/keys/
  4. sudo cp pki/issued/server.crt /etc/openvpn/keys/
  5. sudo cp pki/private/server.key /etc/openvpn/keys/
  6. sudo cp pki/dh.pem /etc/openvpn/keys/
  7. sudo cp pki/ta.key /etc/openvpn/keys/
Настройка сервера
  1. sudo nano /etc/openvpn/server.conf
  2. В открывшийся интерфейс вставляем:
 local 999.999.999.999 port 1194 proto udp dev tun ca keys/ca.crt cert keys/server.crt key keys/server.key dh keys/dh.pem tls-auth keys/ta.key 0 server 10.0.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt client-to-client client-config-dir /etc/openvpn/ccd keepalive 10 120 max-clients 32 persist-key persist-tun status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log verb 4 mute 20 daemon mode server tls-server comp-lzo tun-mtu 1500 mssfix 1620 cipher AES-256-GCM topology subnet push «redirect-gateway def1» push «dhcp-option DNS 8.8.8.8» up /etc/nat

  • client-to-client даёт возможность клиентам видеть и общаться друг с другом в локальной сети
  • client-config-dir /etc/openvpn/ccd мы указываем директорию в которой задаём статические ip адреса клиентам. Об этом позже

— Меняем local 999.999.999.999 на local

Запуск сервера

Запуск сервера

  1. sudo systemctl start openvpn@server
  2. sudo systemctl status openvpn@server
  3. Вы запустили сервер. УРА.

Генерация сертификатов

Генерация сертификатов

Со 2 по 4 выполняется 1 раз!

После этого запускаем 1, и 5+

  1. cd /
  2. sudo nano gen_sert.sh
  3. Вставляем в открывшееся окно:
#!/bin/bash if [ $# -ne 1 ]; then echo «Usage: $0 --client-name» exit 1 fi client_name=$1 password=«» rm -r /tmp/keys mkdir /tmp/keys cd /etc/openvpn/easy-rsa export EASYRSA_CERT_EXPIRE=1460 echo «$password» | ./easyrsa build-client-full $client_name nopass cp pki/issued/client_name.key pki/ca.crt pki/ta.key /tmp/keys/ chmod -R a+r /tmp/keys cat /tmp/keys/$client_name.ovpn client resolv-retry infinite nobind remote 999.999.999.999 1194 proto udp dev tun comp-lzo ca ca.crt cert $client_name.crt key $client_name.key tls-client tls-auth ta.key 1 float keepalive 10 120 persist-key persist-tun tun-mtu 1500 mssfix 1620 cipher AES-256-GCM verb 0 EOF echo «OpenVPN client configuration file created: /tmp/keys/$client_name.ovpn»
  1. Заменяем remote 999.999.999.999 1194 на remote 1194
  2. sudo bash ./gen_sert.sh
  3. cd /tmp/keys
  4. Например с помощью winscp достаем из этой директории сертификаты(получение файлов, скачать)
Задание статических адресов клиентам
  1. cd /etc/openvpn/ccd
  2. sudo nano
  3. Вставляем в открывшееся окно:
 ifconfig-push 10.0.0. 255.255.255.0 

Как настроить OpenVPN Server на Ubuntu 20.04

Когда, защищая свою сеть от несанкционированного доступа, вы подключаете сетевой экран, очень часто приходится решать задачи по обеспечению доступа в вашу защищённую сеть извне, например, с вашего домашнего компьютера или с рабочих станций, находящихся в удалённых сетях. Для реализации такого доступа без необходимости изменения конфигурации брандмауэра и без потерь в обеспечении защищённости ваших ресурсов существует технология Virtual Private Network (VPN). При этом бесплатной реализацией VPN является сервис с открытым кодом OpenVPN. Далее о том, как настроить OpenVPN Server на Ubuntu 20.04.

Чтобы это сделать, вы должны иметь два сервера установленной ОС Ubuntu 20.04. Помимо сервера с установленным и настроенным ПО OpenVPN (Сервер VPN), вам понадобится ещё один сервер, на котором будет развёрнут Центр Сертификации (в данном руководстве это будет Сервер ЦС).

Несмотря на то, что и ПО OpenVPN, и ЦС можно установить на один сервер, или даже вынести ЦС на клиентский компьютер, с которого предполагается осуществлять подключение к вашей закрытой сети, официальная документация рекомендует разместить ЦА на отдельном ресурсе из-за угрозы предоставления злоумышленнику доступа к секретному ключу вашего ЦС. Если это произойдёт, он сможет подписывать добытым ключом новые сертификаты, и, таким образом, получит доступ к вашему Серверу VPN. Также, для упрощения настройки VPN, рекомендуется включить аутентификацию пользователей с использованием пароля на каждом из серверов, в случае, если она у вас отключена. Всё дело в том, что при настройке ваших VPS, вы можете столкнуться со сложностями при транспортировке файлов с одного сервера на другой.

Центр сертификации

Установку узла VPN следует начать с настройки Сервера ЦС, который будет использоваться исключительно для создания и подписания, а также, для отзыва и выгрузки запросов на сертификаты.

Для начала на Сервере ЦС запустите установку утилиты easy-rsa :

$ sudo apt update $ sudo apt install easy-rsa

После чего, необходимо создать каталог ~/easy-rsa :

$ mkdir ~/easy-rsa
$ ln -s /usr/share/easy-rsa/* ~/easy-rsa/

И установить соответствующие права:

$ chmod 700 /home/Your-user/easy-rsa

После чего, запустите на исполнение скрипт easyrsa :

$ cd ~/easy-rsa $ ./easyrsa init-pki

Создание директории PKI

Таким образом, вы создали директорию “инфраструктуры открытых ключей” (Public Key Infrastructure или сокращённо PKI).

Теперь всё готово для создания Центра Сертификации, а значит, пора переходить к созданию секретного ключа и сертификата. Для этого создайте файл vars . Он должен располагаться в директории ~/easy-rsa . Если вы используете редактор nano , наберите:

$ sudo nano ~/easy-rsa/vars

Скопируйте в этот файл следующий текст:

set_var EASYRSA_REQ_COUNTRY "RUS" set_var EASYRSA_REQ_PROVINCE "Moscow" set_var EASYRSA_REQ_CITY "Moscow City" set_var EASYRSA_REQ_ORG "Our Company Name" set_var EASYRSA_REQ_EMAIL "sysadmin@company.ru" set_var EASYRSA_REQ_OU "LLC" set_var EASYRSA_ALGO "ec" set_var EASYRSA_DIGEST "sha512"

В этих строках необходимо отредактировать значения, которые относятся к вашей закрытой сети, при этом, не оставляйте пустых значений. Перед выходом из файла его нужно сохранить (для этого в nano нажмите Ctrl+X , затем Y и Enter ).

Далее, запустите скрипт easyrsa в командной строке:

$ ./easyrsa build-ca

Здесь необходимо будет ввести парольную фразу, которую впоследствии нужно вводить для получения доступа к вашему ЦС при совершении операций с сертификатами.

Выполнение скрипта easyrsa

Также система предложит вам ввести Common Name, которое представляет собой обозначение вашего ЦС. Вы можете ввести любую символьную строку или принять дефолтное имя нажав Enter .

CN - настройка OpenVPN Server

Файл ca.crt – это открытый ключ ЦС. Он будет использоваться клиентами и серверами для проверки при авторизации.

Теперь ваш центр сертификации подготовлен к работе.

OpenVPN и Easy-RSA

На Сервере VPN необходимо запустить установку пакета OpenVPN и утилиты Easy-RSA:

$ sudo apt update $ sudo apt install openvpn easy-rsa

Далее, необходимо создать каталог ~/easy-rsa :

$ mkdir ~/easy-rsa
$ ln -s /usr/share/easy-rsa/* ~/easy-rsa/

И установите соответствующего владельца на эту папку с соответствующими правами:

$ sudo chown Your-user ~/easy-rsa $ chmod 700 ~/easy-rsa

PKI для OpenVPN

На этом шаге нужно будет создать директорию на Сервере VPN, которая будет использоваться для управления запросами создаваемых сертификатов.

Сначала создайте файл vars в директории ~/easy-rsa , например, с помощью редактора nano :

$ sudo nano ~/easy-rsa/vars

Скопируйте в него следующее:

set_var EASYRSA_ALGO "ec" set_var EASYRSA_DIGEST "sha512"

Сохраните файл и закройте его (в nano для этого нажмите Ctrl+X , затем Y и Enter ).

Теперь необходимо создать каталог PKI . Сделайте это при помощи скрипта easyrsa :

$ cd ~/easy-rsa $ ./easyrsa init-pki

Сертификат и закрытый ключ OpenVPN

Теперь всё необходимое для генерации закрытых ключей и запросов на подписание сертификатов установлено на Сервере VPN.

На этом шаге вы создадите секретный ключ, а также, запрос подписи сертификата. Сначала вам необходимо перейти в директорию ~/easy-rsa . Это нужно сделать на Сервере VPN.

$ cd ~/easy-rsa

Далее запустите easyrsa , где server – CN вашего Сервера VPN (вместо server вы можете использовать любую последовательность символов):

$ ./easyrsa gen-req server nopass

Таким образом, вы создали файл запроса сертификата server.req и секретный ключ.

Этот файл нужно скопировать в /etc/openvpn/server :

$ sudo cp /home/Your-user/easy-rsa/pki/private/server.key /etc/openvpn/server/

Подписание запроса сертификата

На этом этапе необходимо выполнить подписание сертификата server . Сначала скопируйте файл server.req на сервер ЦС для подписания:

$ scp /home/Your-user/easy-rsa/pki/reqs/server.req Your-user@X.X.X.X:/tmp

Здесь, Your-user – имя вашей учётной записи, server – CN вашего Сервера VPN, X.X.X.X – IP-адрес Сервера ЦС.

Далее, подключитесь к вашему Серверу ЦС, переключитесь в папку ~/easy-rsa и запустите импорт запроса server.req при помощи easyrsa :

$ cd ~/easy-rsa $ ./easyrsa import-req /tmp/server.req server

Импорт запроса сертификата - как настроить OpenVPN Server

Теперь необходимо запустить подписание запроса при помощи скрипта easyrsa используя опцию sign-req и такой тип запроса как server :

$ ./easyrsa sign-req server server

Для подтверждения надёжности источника запроса наберите Yes , после чего нажмите Enter .

И наконец, файл server.crt , в котором находится открытый ключ шифрования, и файл ca.crt , содержащий собственный доверенный сертификат, скопируйте на Сервер VPN:

$ scp pki/issued/server.crt Your-user@X.X.X.X:/tmp $ scp pki/ca.crt Your-user@X.X.X.X:/tmp

В данном случае, Your-user – имя вашей учётной записи, server – CN вашего Сервера VPN, X.X.X.X – IP-адрес Сервера VPN.

После чего на Сервере VPN эти файлы скопируйте из /tmp в /etc/openvpn/server :

$ sudo cp /tmp/ /etc/openvpn/server

Криптография OpenVPN

Чтобы повысить уровень безопасности следует добавить дополнительный секретный ключ для использования сервером и клиентами при помощи OpenVPN tls-crypt . Для создания публичного tls-crypt ключа запустите:

$ cd ~/easy-rsa $ openvpn --genkey --secret ta.key

Файл ta.key нужно будет скопировать в директорию /etc/openvpn/server/ :

$ sudo cp ta.key /etc/openvpn/server

Теперь вы готовы создавать сертификаты клиентов вашего VPN и ключи для подключения к OpenVPN.

Генерация сертификатов и ключей

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

$ mkdir -p ~/clients/keys $ chmod -R 700 ~/clients

После чего запустите скрипт easyrsa используя опции gen-req и nopass , а также, с использованием CN клиента:

$ cd ~/easy-rsa $ ./easyrsa gen-req client-1 nopass

И скопируйте client-1.key в ~/clients/keys/ :

$ cp pki/private/client-1.key ~/clients/keys/

После чего файл client-1.req скопируйте на Сервер ЦС:

$ scp pki/reqs/client-1.req Your-user@X.X.X.X:/tmp

А на сервере ЦС запустите импорт запроса client-1.req :

$ cd ~/easy-rsa $ ./easyrsa import-req /tmp/client-1.req client-1

Теперь этот запрос необходимо подписать, используя тип запроса client :

$ ./easyrsa sign-req client client-1

Таким образом, вы сгенерировали сертификат клиента client-1.crt . Его необходимо передать на Сервер VPN:

$ scp pki/issued/client-1.crt Your-user@XXX.XXX.XXX.XXX:/tmp

И на Сервере VPN нужно скопировать его в папку ~/clients/keys/ :

$ cp /tmp/client-1.crt ~/clients/keys/

Далее, ca.crt и ta.key скопируйте в каталог ~/clients/keys/ с соответствующими правами:

$ cp ~/easy-rsa/ta.key ~/clients/keys/ $ sudo cp /etc/openvpn/server/ca.crt ~/clients/keys/ $ sudo chown Your-user.Your-user ~/clients/keys/*

Настройка OpenVPN

На данном шаге произведите некоторые настройки конфигурации Сервера VPN:

  • Скопируйте server.conf в директорию OpenVPN:
$ 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 ​​​:

server.conf при настройке OpenVPN на ОС Ubuntu 20.04

  • Найдите в том же файле строку cipher AES-256-CBC , закомментируйте её и добавьте строки cipher AES-256-GCM и auth SHA256 :

server.conf при настройке OpenVPN на Ubuntu 20.04

  • Теперь найдите текст либо dh dh2048.pem ,​​​ либо dh dh.pem и закомментируйте его, так как в вашем случае нет необходимости использовать файл Диффи-Хеллмана. После закомментированной строки вставьте строку dh none :

server.conf при настройке OpenVPN на ОС Ubuntu 20.04

  • И для того, чтобы OpenVPN запускался без привилегий, снимите комментарий перед user nobody и group nogroup :

server.conf при настройке OpenVPN на Ubuntu 20.04

Сохраните изменения в файле, закройте его.

Конфигурация сети на Сервере VPN

Теперь необходимо внести изменения в конфигурацию сети на Сервере VPN для обеспечения правильной маршрутизации трафика. А именно, откройте конфигурационный файл /etc/sysctl.conf :

$ sudo nano /etc/sysctl.conf

После чего добавьте строку:

Перед закрытием файла сохраните внесённые изменения.

Для применения новой настройки наберите:

$ sudo sysctl -p

Изменение конфигурации сетевого экрана

Далее, вам следует произвести настройки, касающиеся ранее установленного и сконфигурированного интерфейса брандмауэра UFW на Сервере VPN. А именно, нужно разрешить работу OpenVPN через брандмауэр путём включения типа трансляции адресов, который называется маскарадинг. Такая технология позволяет транслировать пакеты клиентов, подставляя адреса отправителей в динамике.

Чтобы определить открытый сетевой интерфейс, используйте команду:

$ ip route list default

Его можно увидеть после параметра dev :

Открытый сетевой интерфейс - настройка OpenVPN Server

Теперь откройте /etc/ufw/before.rules :

$ sudo nano /etc/ufw/before.rules

В начало файла скопируйте строки:

# START OPENVPN RULES # NAT table rules *nat :POSTROUTING ACCEPT [0:0] # Allow traffic from OpenVPN client to eth0 (change to the interface you discovered!) -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE COMMIT # END OPENVPN RULES

/etc/ufw/before.rules

Сохраните внесённые изменения и закройте файл.

Откройте файл /etc/default/ufw :

$ sudo nano /etc/default/ufw

В строке DEFAULT_FORWARD_POLICY поменяйте значение DROP на значение ACCEPT :

sudo nano /etc/default/ufw - настройка OpenVPN Server на ОС Ubuntu 20.04

Сохраните изменения в файле и закройте его.

Следующими командами откройте UDP-трафик на порту 1194 и добавьте в UFW протокол OpenSSH, если вы не сделали этого ранее:

$ sudo ufw allow 1194/udp $ sudo ufw allow OpenSSH
$ sudo ufw disable $ sudo ufw enable

Запуск OpenVPN

При помощи systemctl произведите запуск службы OpenVPN c включением его в автозагрузку:

$ sudo systemctl -f enable openvpn-server@server.service $ sudo systemctl start openvpn-server@server.service

Проверьте корректность запуска службы:

$ sudo systemctl status openvpn-server@server.service

Вывод команды должен выглядеть так:

Запуск службы OpenVPN

Конфигурация клиентов

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

Это будет полезно с точки зрения автоматизации ваших действий при организации доступа для каждого из клиентов.

Создайте структуру директорий, где будут сохраняться файлы:

$ mkdir -p ~/clients/files

Скопируйте шаблон клиентской конфигурации в папку clients :

$ cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/clients/base.conf
$ sudo nano ~/clients/base.conf

В строке remote замените порт 1194 на нужный вам, если меняли номер порта, который прослушивает Сервер VPN:

remote X.X.X.X 1194

Должен быть правильно указан протокол:

proto udp

Снимите комментарий со строк:

user nobody group nogroup

Закомментируйте следующие строки:

;ca ca.crt ;cert client.crt ;key client.key

А строку относящуюся к tls-auth , наоборот, нужно раскомментировать:

tls-auth ta.key 1

Следующие строки должны совпадать с соответствующими строками, прописанными в файле /etc/openvpn/server.conf :

cipher AES-256-GCM
auth SHA256

Также добавьте строки, которые нужно будет раскомментировать только для Linux-клиентов:

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

Плюс ко всему, добавьте строки настроек для клиентов, которые планируют использовать systemd-resolved :

; script-security 2
; up /etc/openvpn/update-systemd-resolved
; down /etc/openvpn/update-systemd-resolved
; down-pre
; dhcp-option DOMAIN-ROUTE

Сохраните изменения в файле, закройте его.

Теперь необходимо создать скрипт make_config.sh . Он создаст базовую клиентскую конфигурацию, которая будет сохранена в директории ~/clients/files :

$ sudo nano ~/clients/make_config.sh

Скрипт должен содержать:

Сохраните скрипт, закройте его и назначьте ему соответствующие права:

$ chmod 700 ~/clients/make_config.sh

Создание клиента

Итак, вы создали сертификат клиента client-1.crt и файл ключа client-1.key . Теперь можно создать клиентский файл конфигурации. Для это нужно запустить на исполнение скрипт ~/clients/make_config.sh :

$ cd ~/clients $ ./make_config.sh client-1

В результате скрипт создаст файл ~/clients/files/client-1.ovpn .

Такой файл необходимо передать клиенту для установки на устройство, которое он будет использовать для подключения к закрытой сети через Сервер VPN. При этом, на стороне клиента должно быть развёрнуто программное обеспечение OpenVPN, к которому нужно подключить полученнный из ЦС файл с расширением ovpn . Например, если рабочая станция клиента работает под управлением ОС Windows, достаточно с сайта OpenVPN скачать дистрибутив Windows-приложения, установить его и скопировать файл сертификата .ovpn в одну из папок, указанных приложением при первом запуске. Это позволит клиенту осуществлять извне работу с ресурсами, расположенными внутри вашей сети, без изменений в конфигурации сетевого экрана и не понижая при этом уровень защищённости сети.

Следует отметить, что в данном руководстве в качестве сервера ЦС использовалась виртуальная машина, на которой также, как и на сервере OpenVPN, развёрнута ОС Ubuntu 20.04. На самом деле, в качестве сервера ЦС вы можете использовать как и ваш VPS, на котором вы настроили серверный сегмент VPN (что не является хорошим вариантом с точки зрения соблюдения мер информационной безопасности), но и любой компьютер или сервер, находящийся за пределами вашей закрытой сети. Во втором варианте, вам нужно продумать организацию безопасного трансфера файлов ключей и сертификатов между рабочей станцией с настроенным ЦС и сервером VPN.

Подключение к VPN

VPN ( Virtual Private Network — виртуальная частная сеть) — это способ подключения к локальной сети через Интернет. Предположим, вы хотите подключиться к локальной сети на своём рабочем месте, когда находитесь в командировке. Вам нужно найти где-нибудь соединение с Интернетом (например, в гостинице), а затем подключиться к своей сети VPN. Вы сможете работать, как будто подключены непосредственно к сети у себя на работе, хотя на самом деле соединение с сетью будет осуществляться через интернет-соединение гостиницы. VPN-соединения обычно шифруются , чтобы предотвратить неавторизованный доступ к вашей локальной сети.

Существуют различные типы VPN. В зависимости от используемого вами типа VPN может понадобиться установить некоторые дополнительные программы. Узнайте подробности о соединении у ответственного за VPN и посмотрите, какой клиент VPN нужно использовать. Затем зайдите в приложение для установки программного обеспечения, найдите пакет NetworkManager , работающий с вашим VPN (если он есть) и установите его.

Если пакет NetworkManager для вашего типа VPN отсутствует, то вам, возможно, придётся загрузить и установить клиентскую программу с сайта компании, предоставляющей программное обеспечение для VPN. Вероятно, действия по её установке будут отличаться от изложенных здесь.

Чтобы настроить VPN-соединение:

  1. Откройте Обзор и начните вводить: Сеть .
  2. Нажмите Сеть чтобы открыть этот раздел настроек.
  3. Чтобы добавить новое соединение, нажмите кнопку + , расположенную в разделе VPN .
  4. Выберите используемый вами тип VPN-соединения.
  5. Введите параметры VPN-соединения. Закончив, нажмите Добавить .
  6. Закончив настраивать VPN, нажмите кнопку системного меню в правой части верхней панели, затем щёлкните соединение VPN и выберите Соединиться . Возможно, вам понадобится ввести пароль для подключения. Как только соединение будет установлено, в верхней панели появится значок в виде замка.
  7. Надеемся, что вы успешно подключились к VPN. В противном случае, тщательно проверьте введённые параметры соединения. Это можно сделать из раздела Сеть , где вы создавали соединение. Выберите VPN-подключение из списка, затем нажмите кнопку , чтобы просмотреть настройки.
  8. Чтобы отключиться от VPN, нажмите системное меню в верхней панели и затем на пункт Выключить под названием VPN подключения.

Дополнительная информация

  • Беспроводные сети — Подключение к беспроводным сетям, включая скрытые и созданные с помощью мобильного телефона.
  • Проводные сети — Использование проводного подключения к Интернету с фиксированным IP-адресом.

You can choose the displayed language by adding a language suffix to the web address so it ends with e.g. .html.en or .html.de.
If the web address has no language suffix, the preferred language specified in your web browser’s settings is used. For your convenience:
[ Change to English Language | Change to Browser’s Preferred Language ]

The material in this document is available under a free license, see Legal for details.
For information on contributing see the Ubuntu Documentation Team wiki page. To report errors in this documentation, file a bug.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *