Как установить OpenVPN-сервер на Ubuntu

OpenVPN — это бесплатное программное обеспечение VPN (Virtual Private Network) с открытым исходным кодом, которое позволяет безопасно подключаться к удаленной сети через Интернет. В этой статье мы проведем вас через процесс установки OpenVPN на сервер Ubuntu 18.04/20.04/22.04.

Метод 1:

Установка OpenVPN с помощью сценария.

Сначала получите сценарий и сделайте его исполняемым:

$ curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
$ chmod +x openvpn-install.sh

Затем запустите его:

$ ./openvpn-install.sh

Вам нужно запустить скрипт от имени root и с включенным модулем TUN.

При первом запуске вам нужно будет следовать указаниям помощника и ответить на несколько вопросов, чтобы настроить VPN-сервер.

Когда OpenVPN будет установлен, вы можете запустить скрипт снова, и у вас появится выбор:

root@ubuntu:~# ./openvpn-install.sh
Welcome to OpenVPN-install!
The git repository is available at: https://github.com/angristan/openvpn-install
It looks like OpenVPN is already installed.
What do you want to do?
   1) Add a new user
   2) Revoke existing user
   3) Remove OpenVPN
   4) Exit
Select an option [1-4]:

вы можете добавить нового пользователя или отозвать существующего.


Метод 2 :

Шаг 1: Обновление и модернизация Ubuntu

Перед установкой любого нового программного обеспечения всегда рекомендуется обновить и модернизировать систему Ubuntu. Это можно сделать, выполнив следующие команды:

$ sudo apt update 
$ sudo apt upgrade

Шаг 2: Установите OpenVPN

Вы можете установить OpenVPN на Ubuntu, выполнив следующую команду:

$ sudo apt install openvpn easy-rsa

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

OpenVPN использует сертификаты и ключи для аутентификации клиентов и серверов. Вы можете сгенерировать эти файлы, запустив скрипт easy-rsa, входящий в состав OpenVPN. Для этого выполните следующие действия:

$ make-cadir ~/openvpn-ca && cd ~/openvpn-ca

Отредактируйте файл vars файл, чтобы задать переменные центра сертификации (ЦС):

$ nano ./vars

Отредактируйте переменные по мере необходимости, например:

set_var EASYRSA_REQ_COUNTRY    "US"
set_var EASYRSA_REQ_PROVINCE   "California"
set_var EASYRSA_REQ_CITY       "San Francisco"
set_var EASYRSA_REQ_ORG        "Copyleft Certificate Co"
set_var EASYRSA_REQ_EMAIL      "[email protected]"
set_var EASYRSA_REQ_OU         "My Organizational Unit"
$ ./easyrsa init-pki
$ ./easyrsa build-ca
$ ./easyrsa gen-req server nopass
$ ./easyrsa sign-req server server
$ ./easyrsa gen-dh
$ openvpn --genkey --secret pki/ta.key

Сертификаты и ключи будут созданы в папке /root/openvpn-ca/pki каталоге.

Шаг 4: Настройте OpenVPN

После генерации сертификатов и ключей необходимо настроить OpenVPN. Для этого создайте новый файл конфигурации с помощью следующей команды:

$ sudo cp pki/dh.pem pki/ca.crt pki/ta.key pki/issued/server.crt pki/private/server.key /etc/openvpn/
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/server.conf

Отредактируйте следующее содержимое файла конфигурации /etc/openvpn/server.conf:

ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh.pem
;tls-auth ta.key 0
tls-crypt ta.key
push "redirect-gateway def1 bypass-dhcp"

Сохраните и закройте файл.

Включение переадресации IP-адресов

$ sudo nano /etc/sysctl.conf
# Uncomment the following line:
net.ipv4.ip_forward=1

Затем примените изменения:

$ sudo sysctl -p

Шаг 5: Запуск и включение OpenVPN

Вы можете запустить и включить службу OpenVPN с помощью следующих команд:

$ sudo systemctl start openvpn@server 
$ sudo systemctl enable openvpn@server

[@server указывает на имя файла конфигурации, созданного ранее.

Шаг 6: Настройка брандмауэра

Вам необходимо разрешить трафик OpenVPN через брандмауэр. Это можно сделать, создав новое правило с помощью следующей команды:

$ sudo ufw allow OpenVPN # ignore if you don't use firewall

Добавить маршрутизацию iptables

$ ifconfig
.
.
.
venet0: flags=211<UP,BROADCAST,POINTOPOINT,RUNNING,NOARP>  mtu 1500
        inet 127.0.0.1  netmask 255.255.255.255  broadcast 0.0.0.0  destination 127.0.0.1
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 0  (UNSPEC)
        RX packets 4825  bytes 467045 (467.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3331  bytes 322185 (322.1 KB)
        TX errors 0  dropped 1167 overruns 0  carrier 0  collisions 0
venet0:0: flags=211<UP,BROADCAST,POINTOPOINT,RUNNING,NOARP>  mtu 1500
        inet 7.249.98.8  netmask 255.255.255.0  broadcast 7.249.98.255  destination 7.249.98.8
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 0  (UNSPEC)
.
.

Наша основная сеть venet0 возможно, у вас есть eth0 или что-то другое

$ sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE

Шаг 7: Подключение к серверу OpenVPN

Теперь, когда сервер OpenVPN запущен, вы можете подключиться к нему с клиентского компьютера. Для этого вам нужно установить на свой компьютер клиентское программное обеспечение OpenVPN и загрузить с сервера файл конфигурации клиента. Это можно сделать, выполнив на сервере следующую команду:

$ ./easyrsa gen-req client1 nopass
$ ./easyrsa sign-req client client1
$ sudo cp pki/private/client1.key /etc/openvpn/client/
$ sudo cp pki/issued/client1.crt /etc/openvpn/client/
$ sudo cp pki/{ca.crt,ta.key} /etc/openvpn/client/

Создайте файл конфигурации клиента в папке /root/openvpn-ca , чтобы использовать его в качестве базовой конфигурации:

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /root/openvpn-ca/

Откройте этот файл с помощью nano и отредактируйте эти переменные:

remote 192.168.1.5 1194 # 192.168.1.5 is the server public IP
user nobody
group nogroup
;ca ca.crt
;cert client.crt
;key client.key
;tls-auth ta.key 1
key-direction 1

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

$ nano config_gen.sh

Добавьте следующее содержимое:

#!/bin/bash
# First argument: Client identifier
KEY_DIR=/etc/openvpn/client
OUTPUT_DIR=/root # change it to output directory
BASE_CONFIG=/root/openvpn-ca/client.conf # Change it to client.conf in your system
cat ${BASE_CONFIG} \
    <(echo -e '<ca>') \
    ${KEY_DIR}/ca.crt \
    <(echo -e '</ca>\n<cert>') \
    ${KEY_DIR}/${1}.crt \
    <(echo -e '</cert>\n<key>') \
    ${KEY_DIR}/${1}.key \
    <(echo -e '</key>\n<tls-crypt>') \
    ${KEY_DIR}/ta.key \
    <(echo -e '</tls-crypt>') \
    > ${OUTPUT_DIR}/${1}.ovpn

После написания сценария сохраните и закройте файл config_gen.sh.

Не забудьте сделать файл исполняемым, запустив его:

$ sudo chmod 700 /root/openvpn-ca/config_gen.sh
$ sudo ./config_gen.sh client1

Эта команда создаст новый файл с именем client1.ovpn в /root/ каталоге.

Скопируйте этот файл на клиентский компьютер и используйте его для подключения к серверу OpenVPN.

Заключение

В этом руководстве мы показали вам, как установить и настроить OpenVPN на сервере Ubuntu. С помощью OpenVPN вы можете безопасно подключаться к удаленной сети и получать доступ к ее ресурсам из любой точки мира.

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

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