Поднимаем OpenVPN на своём сервере или vps

Грех не настроить 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 соединение настраивается в редакторе соединений везде идентично, как показано на видео ниже, особых различий нет. Необходимо указать все параметры и ключи.

Из винды всё ещё проще и также показано на видео:

Взять дешевую впс-ку буквально на пару дней, можно например вот здесь, самый идеальный и дешевый вариант.

2 комментария

Добавить комментарий для avtobys Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *