На этом уроке мы расскажем, как установить и настроить сервер OpenVPN, который является одним из самых популярных VPN программных решений в Ubuntu 16.04 VPS, как на стороне сервера, так и на стороне клиента. Это руководство должно работать на других системах Linux VPS также как хорошо, но была испытана и написана для Ubuntu 16.04.
ssh destroyer@vps
Обновите систему
sudo apt-get update && sudo apt-get -y upgrade
и установите OpenVPN.
sudo apt-get install openvpn openssl
Во-первых, сгенерируйте параметры Диффи-Хеллмана. Эта команда может занять некоторое время, в зависимости от сервера.
openssl dhparam -out /etc/openvpn/dh.pem 2048
Сформируйте файл ca.pem
(Certificate Authority):
sudo openssl genrsa -out /etc/openvpn/ca-key.pem 2048 sudo chmod 600 /etc/openvpn/ca-key.pem sudo openssl req -new -key /etc/openvpn/ca-key.pem -out /etc/openvpn/ca-csr.pem -subj /CN=OpenVPN-CA/ sudo openssl x509 -req -in /etc/openvpn/ca-csr.pem -out /etc/openvpn/ca.pem -signkey /etc/openvpn/ca-key.pem -days 365 sudo echo 01 > /etc/openvpn/ca.srl
Следующие команды будут генерировать сертификат сервера и ключ:
sudo openssl genrsa -out /etc/openvpn/server-key.pem 2048 sudo chmod 600 /etc/openvpn/server-key.pem sudo openssl req -new -key /etc/openvpn/server-key.pem -out /etc/openvpn/server-csr.pem -subj /CN=OpenVPN/ sudo openssl x509 -req -in /etc/openvpn/server-csr.pem -out /etc/openvpn/server-cert.pem -CA /etc/openvpn/ca.pem -CAkey /etc/openvpn/ca-key.pem -days 365
Создайте файл конфигурации сервера:
sudo nano /etc/openvpn/server.conf
server 10.8.0.0 255.255.255.0 verb 3 key server-key.pem ca ca.pem cert server-cert.pem dh dh.pem keepalive 10 120 persist-key persist-tun comp-lzo push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" user nobody group nogroup proto udp port 1194 dev tun1194 status openvpn-status.log
Сохраните файл, включите и запустите службу OpenVPN:
sudo systemctl enable openvpn@server sudo systemctl start openvpn@server
Примечание: Если вы работаете в OpenVZ на основе VPS, то откройте файл /lib/systemd/system/openvpn\@.service
и закомментируйте строку LimitNPROC=10
Добавьте следующее правило iptables
, чтобы трафик мог оставить VPN. Измените сетевой интерфейс eth0
с публичного сервера.
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Примечание: Если вы работаете на базе OpenVZ VPS, а не правилом выше:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source <YOUR_SERVER_IP
>
Наконец, мы также должны разрешить пересылку IP:
sed -i 's|#net.ipv4.ip_forward=1|net.ipv4.ip_forward=1|' /etc/sysctl.conf echo 1 > /proc/sys/net/ipv4/ip_forward
Следующие команды будут генерировать сертификат клиента и ключ:
openssl genrsa -out /etc/openvpn/client-key.pem 2048 chmod 600 /etc/openvpn/client-key.pem openssl req -new -key /etc/openvpn/client-key.pem -out /etc/openvpn/client-csr.pem -subj /CN=OpenVPN-Client/ openssl x509 -req -in /etc/openvpn/client-csr.pem -out /etc/openvpn/client-cert.pem -CA /etc/openvpn/ca.pem -CAkey /etc/openvpn/ca-key.pem -days 36525
Затем скопируйте следующие файлы на клиентской машине
/etc/openvpn/ca.pem /etc/openvpn/client-cert.pem /etc/openvpn/client-key.pem
и запустите клиент OpenVPN со следующей конфигурацией.
client nobind dev tun redirect-gateway def1 bypass-dhcp remote 1194 udp comp-lzo yes key /etc/openvpn/client-key.pem cert /etc/openvpn/client-cert.pem ca /etc/openvpn/ca.pem
Не забудьте заменить < YOUR_SERVER_IP> на
IP — адрес сервера OpenVPN.
Вот и все. Вы успешно установили настроенный сервер OpenVPN на вашем Ubuntu 16,04 VPS.