Перейти к основному содержимому

Установка OpenVPN на Ubuntu

·284 слов·2 минут
DevOps • Networks • Security • Infrastructure
Автор
DevOps • Networks • Security • Infrastructure
DevOps, Expert CyberSecurity, Network/Infrastructure Engineer

Установка OpenVPN и Easy-RSA
#

apt update
apt install openvpn easy-rsa -y

# Проверяем версию
openvpn --version

Подготовка PKI (сертификаты и ключи)
#

mkdir /etc/openvpn/easy-rsa
mkdir /etc/openvpn/ccd
cd /etc/openvpn/easy-rsa
cp -r /usr/share/easy-rsa/* .

# Инициализируем инфраструктуру PKI ключей
mv vars.example vars
./easyrsa init-pki

# Создаем удостоверяющий центр CA
./easyrsa build-ca

# При создании CA задаем имя, например MyVPN-CA
# В итоге получаем 2 файла
# /etc/openvpn/easy-rsa/pki/private/ca.key
# /etc/openvpn/easy-rsa/pki/ca.crt

# Создаём ключ Диффи-Хеллмана
./easyrsa gen-dh

# В итоге получаем файл DH
/etc/openvpn/easy-rsa/pki/dh.pem

# Создаём ключ для шифрования TLS control channel, что повышает безопасность
openvpn --genkey secret /etc/openvpn/server/tc.key

Создание конфигурации сервера
#

# Генерация сертификата сервера сроком на 10 лет
./easyrsa gen-req server nopass
./easyrsa --days=3650 sign-req server server

# В итоге получаем подписанный УЦ сертификат сервера
# /etc/openvpn/easy-rsa/pki/issued/server.crt
# /etc/openvpn/easy-rsa/pki/private/server.key

# Копирование сертификатов и ключей в папку сервера
cp pki/ca.crt /etc/openvpn/server/ca.crt
cp pki/dh.pem /etc/openvpn/server/dh.pem
cp pki/issued/server.crt /etc/openvpn/server/server.crt
cp pki/private/server.key /etc/openvpn/server/server.key

# Создаём конфигурационный файл server.conf
nano /etc/openvpn/server/server.conf
...

# Запуск OpenVPN Server
systemctl enable openvpn@server 
systemctl start openvpn@server
systemctl status openvpn@server 

Создание конфигурации клиента
#

# Генерация сертификата клиента сроком на 10 лет
./easyrsa gen-req user1 nopass
./easyrsa --days=3650 sign-req client user1

# В результате получаем подписанный УЦ сертификат клиента
/etc/openvpn/easy-rsa/pki/issued/user1.crt
/etc/openvpn/easy-rsa/pki/private/user1.key

# Клиенту для подключения понадобятся
ca.crt
client1.crt
client1.key
tc.key

# Создаём конфигурационный файл user1.ovpn
/etc/openvpn/users-conf/user1.ovpn
...

Настройка SNAT и IP Forwarding
#

# SNAT
apt install iptables-persistent -y
iptables -t nat -A POSTROUTING -s 10.200.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -L -n -v

# Сохраняем правила добавленные в iptables
netfilter-persistent save
# или
iptables-save > /etc/iptables/rules.v4

# IP Forwarding
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Траблшутинг
#

journalctl -u openvpn-server@server
openvpn --config /etc/openvpn/server/server.conf

Официальная документация

Related

Настройка Policy-based и Route-based VPN через strongSwan с swanctl
·834 слов·4 минут
Настройка IPSec между серверами Ubuntu (AWS) и Ubuntu (Azure)
·1519 слов·8 минут
Настройка GRE over IPSec
·1120 слов·6 минут