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

Напишу пошаговую установку OpenVPN сервера на Debian 9, от вас потребуется немного внимания и столько же терпения. Видео можете посмотреть перейдя по ссылке в конце записи.

Приступим:

apt-get install openvpn openssl iptables easy-rsa bash-completion

Создаем папку:

 mkdir /etc/openvpn/easy-rsa

Переходим в неё:

cd /etc/openvpn/easy-rsa

Выполняем копирование файлов:

cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/

Редактируем файл vars:

nano vars

В данном файле ищем строки и редактируем их под себя а можете оставить как есть:

export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
export KEY_OU="MyOrganizationalUnit"

После редактирования жмем Ctrl+o далее: Enter и Ctrl+x

Далее:

source ./vars

Если после этого наблюдаете что-то типа:

**************************************************************
  No /etc/openvpn/easy-rsa/openssl.cnf file could be found
  Further invocations will fail
**************************************************************

Выполняем:

ln -s openssl-1.0.0.cnf openssl.cnf

Далее снова:

source ./vars

Удаляем всякое разное, ненужное:

./clean-all

Генерируем ключи центра сертификации:

./build-ca

Генерируем ключи сервера. vpn_server можно заменить на свое и в дальнейшем на запрос A challenge password придумываем пароль:

./build-key-server Server

A challenge password []:
An optional company name []:
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y

Создаем ключ для пользователя, user можно заменить на свое:

./build-key user

Еще нам нужны ключи Диффи-Хеллмана:

./build-dh

Ключи TLS:

openvpn --genkey --secret /etc/openvpn/ta.key

Переходим в папку keys:

cd keys

Создаем папку ccd:

mkdir /etc/openvpn/ccd

Копируем ключи сервера:

cp Server.crt Server.key ca.crt dh2048.pem /etc/openvpn/

Копируем ключи пользователей:

cp user.crt user.key ca.crt /etc/openvpn/ccd

Переходим в папку:

cd /etc/openvpn/

Копируем оттуда ключ ta.key в папку /etc/openvpn/ccd:

cp ta.key /etc/openvpn/ccd

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

nano Server.conf

Для лентяев готовый конфиг:

port 1196
proto udp
dev tun
dh dh2048.pem
ca ca.crt
cert Server.crt
key Server.key
tls-auth ta.key 0
server 10.0.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 9.9.9.9"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun
sndbuf 0
rcvbuf 0
mssfix 0
verb 0
status /var/log/openvpn-status.log
log /var/log/openvpn.log

Помещаем в автозагрузку и стартуем:

systemctl enable openvpn
service openvpn restart

Далее:

nano /etc/sysctl.conf

находим строку #net.ipv4.ip_forward=1 и убираем решетку в начале.

После этого:

echo 1 >> /proc/sys/net/ipv4/conf/all/forwarding

Добавляем правило в iptables:

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE

Далее:

iptables-save > /etc/iptables.save

После этого редактируем файл:

nano /etc/network/interfaces

В самый конец добавляем строку:

pre-up iptables-restore < /etc/iptables.save

Перезагружаем сервер командой:

reboot

На этом установка сервера OpenVPN закончена.

Пример файла конфигурации для клиента, смотрим по ссылке ниже:
OpenVPN готовый файл конфигурации клиента

Информацию взял с YouTube канала вот тут — автор Иван Глазков