yum install -y epel-release
Устанавливаем OpenVPN пакет:
yum install -y openvpn easy-rsa
Копируем пример конфига OpenVPN в боевой путь:
cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/server.conf /etc/openvpn/server.conf
Корректируем конфиг:
vim /etc/openvpn/server.conf
Добавляем в самый низ (подключаем DNS серверы Google):
push «dhcp-option DNS 8.8.8.8»
push «dhcp-option DNS 8.8.4.4»
И следом активируем перенаправление всего трафка в туннель:
push «redirect-gateway def1 bypass-dhcp»
Включаем форвардинг трафика в ядре:
echo «net.ipv4.ip_forward=1» > /etc/sysctl.d/forwarding.conf
sysctl —system
Активируем фаерволл:
systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld
Применяем изменения:
firewall-cmd —reload
И разрешаем OpenVPN и ssh трафик:
firewall-cmd —add-service=ssh —permanent
firewall-cmd —add-service=openvpn —permanent
firewall-cmd —add-masquerade —permanent
Теперь нам нужно сгенерировать сертификаты для сервера;
mkdir /root/openvpn_keys
yum install -y unzip zip
mkdir /root/openvpn_keys
cd /root/openvpn_keys
wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
unzip master.zip
cd easy-rsa-master/easyrsa3
Создаем собственный PKI (не забудьте пароль от CA, иначе в будущем придется создавать его заново):
mv vars.example vars
./easyrsa init-pki
./easyrsa build-ca
./easyrsa gen-dh
Создаем сертификаты для сервера:
./easyrsa gen-req myservername
./easyrsa sign-req server myservername
Снимаем пароль с приватного ключа:
openssl rsa -in /root/openvpn_keys/easy-rsa-master/easyrsa3/pki/private/myservername.key -out /root/openvpn_keys/easy-rsa-master/easyrsa3/pki/private/mmyservername.key.without_password
Заменяем ключ на безпарольный:
mv /root/openvpn_keys/easy-rsa-master/easyrsa3/pki/private/myservername.key.without_password /root/openvpn_keys/easy-rsa-master/easyrsa3/pki/private/myservername.key
Переносим сертификаты и ключи в папку OpenVPN:
cp pki/ca.crt /etc/openvpn/ca.crt
cp pki/dh.pem /etc/openvpn/dh1024.pem
cp pki/issued/myservername.crt /etc/openvpn/server.crt
cp pki/private/myservername.key /etc/openvpn/server.key
openvpn —genkey —secret ta.key
Создаем конфиг клиенту (уже с флажком nopass, так как нам тут пароль не нужен):
./easyrsa gen-req clientmac nopass
./easyrsa sign-req client clientmac
Запускаем OpenVPN:
systemctl enable openvpn@server
systemctl start openvpn@server
systemctl status -l openvpn@server
При настройке клиента стоит учесть, что ему нужно передать каким-либо безопасным способом следующие файлы:
/root/openvpn_keys/easy-rsa-master/easyrsa3/pki/issued/clientmac.crt
/root/openvpn_keys/easy-rsa-master/easyrsa3/pki/private/clientmac.key
/root/openvpn_keys/easy-rsa-master/easyrsa3/pki/private/ca.crt