Напишу пошаговую установку 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 канала вот тут — автор Иван Глазков