Грех не настроить openvpn на своём сервере, если он у вас имеется или имеется хотя-бы vps-ка, которой хватит за глаза, особенно если трафик безлимитный. Бесплатные vpn и проксики, во-первых, не радуют стабильностью и скоростью, во-вторых — это не всегда безопасно.
Иногда случается, нужно бы ответить на какую-либо почту, либо ещё «отметиться» где-либо, но при этом не очень желательно светить свой ip. И просто в лом запускать ту же оперу с её тормозным впн. Гораздо удобней будет нажать на кнопочку и спрятаться за своим сервером, не потеряв в скорости и качестве соединения.
В первую очередь устанавливаем на сервер требуемые пакеты:
apt install openvpn openssl easy-rsa iptables bash-completion
Далее:
mkdir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa/ cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/
По желанию отредактируем файл nano vars и где укажем свои переменные:
export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Fort-Funston" export KEY_EMAIL="[email protected]" export KEY_OU="MyOrganizationalUnit"
Далее выполняем:
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 # и жмем на Enter до талого
Генерируем сертификат сервера, задаем произвольное имя сервера, пароль и соглашаемся в конце два раза:
./build-key-server ServerDN
Аналогично генерируем сертификат пользователя(имя пользователя и пароль не должны совпадать с именем сервера и паролем)
./build-key user1
генерируем другие ключи:
./build-dh openvpn --genkey --secret keys/ta.key
раскидываем конфиги по папкам:
cd keys/ mkdir /etc/openvpn/ccd cp ServerDN.crt ServerDN.key ca.crt dh2048.pem ta.key /etc/openvpn/ cp user1.crt user1.key ca.crt ta.key /etc/openvpn/ccd/ cd /etc/openvpn/
создаем конфиг сервера nano ServerDN.conf
port 1194 proto udp4 dev tun ca ca.crt cert ServerDN.crt key ServerDN.key dh dh2048.pem tls-auth ta.key 0 cipher AES-256-CBC server 10.0.0.0 255.255.255.0 keepalive 10 120 persist-key persist-tun client-config-dir ccd status ServerDN-status.log log /var/log/ServerDN.log verb 3 comp-lzo sndbuf 0 rcvbuf 0 push "redirect-gateway def1" push "dhcp-options DNS 8.8.8.8"
далее в файле /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 -I INPUT -p udp --dport 1194 -j ACCEPT iptables-save > /etc/iptables.rules
в файл /etc/network/interfaces дописываем восстановление iptables из файла(если в системе не предусмотрено):
pre-up iptables-restore < /etc/iptables.rules
стартуем openvpn systemctl start openvpn
до перезагрузки логов сервера не будет, перезагрузим сервак reboot
Теперь делаем конфиг для клиента, заходим cd /etc/openvpn/ccd/
тут создаем файл со следующим содержимым nano user1.conf :
client dev tun proto udp4 remote IP_СЕРВЕРА_VPN 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert user1.crt key user1.key tls-auth ta.key 1 cipher AES-256-CBC ns-cert-type server comp-lzo log user1.log verb 3 sndbuf 0 rcvbuf 0
Подключаемся к vpn:
забираем все файлы из папки /etc/openvpn/ccd/ в папку /root/openvpnuser
из командной строки соединение производится так:
openvpn --config user1.conf
Из окружения рабочего стола по кнопочке vpn соединение настраивается в редакторе соединений везде идентично, как показано на видео ниже, особых различий нет. Необходимо указать все параметры и ключи.
Из винды всё ещё проще и также показано на видео:
Взять дешевую впс-ку буквально на пару дней, можно например вот здесь, самый идеальный и дешевый вариант.
remote IP_СЕРВЕРА_VPN 1194 — где указан ip сервера?
это ip вашего сервера на котором vpn поднимаете