Установка OpenVPN сервера в Ubuntu 18
Материал из m6a
Содержание
Задача
- Установить и настроить сервер OpenVPN
- Подговить настройки для клиента OpenVPN
Окружение
Требования
Квалификация
Последовательность действий
Установка сервера
- Обновим систему
apt-get -y update && apt-get -y upgrade
- Установим необходимые пакеты
apt-get -y install openvpn easy-rsa
Настройка сервера
- Перейдем к настройкам
cd /etc/openvpn/
- Создадим каталог сертификации
make-cadir certificates && cd certificates
- Установим переменные
vi vars export KEY_CONFIG="$EASY_RSA/openssl-1.0.0.cnf" export KEY_COUNTRY="RU" export KEY_PROVINCE="MOS" export KEY_CITY="MOSCOW" export KEY_ORG="Company" export KEY_EMAIL="vpn@company.ru" export KEY_OU="IT"
- Загрузим переменные
source ./vars
- Создадим центральный сертификат
./clean-all && ./build-ca
- Создадим сертификат сервера
./build-key-server server
- Создадим параметры Диффи-Хеллмана
./build-dh
- Создадим общий секретный ключ
openvpn --genkey --secret keys/ta.key
- Скопируем ключи и сертификаты в каталог настроек
cp keys/{server.crt,server.key,ca.crt,dh2048.pem,ta.key} /etc/openvpn
- Создадим файл настроект сервера
vi /etc/openvpn/server.conf mode server tls-server port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key # This file should be kept secret dh dh2048.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist /var/log/openvpn/ipp.txt server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100 push "route 192.168.1.0 255.255.255.0" keepalive 10 120 tls-auth ta.key 0 # This file is secret cipher AES-256-CBC
- Запустим сервер OpenVPN
systemctl start openvpn@server
- Проверим статус сервера OpenVPN
systemctl status openvpn@server
- Откроем порты для сервера OpenVPN
ufw allow openvpn
- Настроим маскарадинг для сервера OpenVPN
vi /etc/ufw/before.rules -A POSTROUTING -s 10.8.0.0/8 -o eth1 -j MASQUERADE
- Применим настройки сетевого экрана
ufw reload
Настройка клиента
- Создадим сертификат клиента
cd /etc/openvpn/certificates/ && source vars && ./build-key client
- Получим центральный сертификат
cat ca.crt
- Получим сертификат клиента
cat certificates/keys/client.crt
- Получим ключ клиента
cat certificates/keys/client.key
- Получим общий секретный ключ
cat certificates/keys/ta.key
- Создадим файл настроект клиента
client tls-client proto udp dev tun <ca> [центральный сертификат] </ca> <cert> [сертификат клиента] </cert> <key> [ключ клиента] </key> key-direction 1 <tls-auth> [общий секретный ключ] </tls-auth> remote vpn.company.ru 1194 cipher AES-256-CBC verb 2 mute 20 keepalive 10 120 persist-key persist-tun float resolv-retry infinite nobind route 192.168.1.0 255.255.255.0