OpenVPN сервер клиент для поднятия собственного сервиса
Пример конфигурации для OpenVPN с маршрутизацией всего трафика через VPN-сервер.
Установка и настройка на сервере (Ubuntu/Debian)
# Установка OpenVPN
sudo apt update
sudo apt install openvpn easy-rsa
# Копирование EasyRSA
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
# Генерация сертификатов (взаимодействуйте с утилитой)
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-dh
openvpn --genkey --secret ta.key
# Генерация клиентского сертификата
./easyrsa gen-req client nopass
./easyrsa sign-req client client
# Копирование файлов
mkdir /etc/openvpn/server/
sudo cp ~/openvpn-ca/pki/ca.crt /etc/openvpn/server/
sudo cp ~/openvpn-ca/pki/issued/server.crt /etc/openvpn/server/
sudo cp ~/openvpn-ca/pki/private/server.key /etc/openvpn/server/
sudo cp ~/openvpn-ca/pki/dh.pem /etc/openvpn/server/
sudo cp ~/openvpn-ca/ta.key /etc/openvpn/server/
# Включение IP forward
sudo nano /etc/sysctl.conf
# Добавить net.ipv4.ip_forward=1
sudo sysctl -p
# Настройка iptables, !!!ens3 - У ВАС ДРУГОЕ НАЗВАНИЕ СЕТЕВОГО ИНТЕРФЕСА!!! lshw -c netework
sudo apt install iptables-persistent
sudo iptables -F
sudo iptables -t nat -F
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ens3 -j MASQUERADE
sudo iptables -A FORWARD -i tun+ -o ens3 -j ACCEPT
sudo iptables -A FORWARD -i ens3 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i tun+ -j ACCEPT
sudo iptables -A OUTPUT -o tun+ -j ACCEPT
sudo iptables -A INPUT -p udp --dport 1194 -j ACCEPT
sudo netfilter-persistent save
Конфигурация сервера (server.conf)
port 1194
proto udp
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key
dh /etc/openvpn/server/dh.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
cipher AES-256-CBC
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
# Запуск OpenVPN
sudo systemctl enable openvpn@server
sudo systemctl start openvpn@server
2. Конфигурация клиента для пк или телефона (client.ovpn)
client
dev tun
proto udp
remote YOUR_IP_ADDR_OR_HOST_NAME 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
verb 3
redirect-gateway def1
< ca >
...
< /ca >
< cert >
...
< /cert >
< key >
...
< /key >
key-direction 1
В файл клиента client.ovpn вам необходимо добавить на места ... содержимое файлов ca.crt, client.crt и client.key и убрать лишние пробелы тегов до и после символов < ca cert key >, будьте внимательны!
Этот конфиг обеспечит полное туннелирование трафика через ваш VPN-сервер на телефоне и других клиентах.