Настройка VPN-сервера с функцией интернет-шлюза (анонимный вебсерфинг)

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

В качестве VPN-сервера будет использоваться виртуальный сервер на Debian с OpenVPN. Стоимость виртуального сервера в нынешнее время крайне невысока. Даже домашние пользователи могут позволить себе поднять VPN-сервер за 4 евро в месяц и вкусить все прелести анонимного вебсерфинга или создать частную защищенную сеть over internet.

Базовая настройка OpenVPN приведена здесь. Отличаться будут только файлы конфигурации сервера и клиента.

server.conf:

port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key # This file should be kept secret
dh /etc/openvpn/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
client-to-client
keepalive 10 120
tls-auth /etc/openvpn/ta.key 0
cipher AES-256-GCM
;compress lz4-v2 #v.2.4
;push "compress lz4-v2"
;comp-lzo
;max-clients 2
persist-key
persist-tun
status /etc/openvpn/openvpn-status.log
log /etc/openvpn/openvpn.log
verb 3
explicit-exit-notify 1

Включаем форвардинг.
Настраиваем IPTABLES. В файл /etc/rc.local добавить:

iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Примечание: в новых версиях Debian отсутствует файл rc.local. Чтобы не париться с его добавлением и настройкой служб, можно выполнить вышеприведенные команды IPTABLES, сохранить их:

iptables-save > /etc/iptables/rules.conf

и добавить в конец файла /etc/network/interfaces

pre-up iptables-restore < /etc/iptables/rules.conf

Если pre-up не работает, то создать файл iptables (раздать права на выполнение) в директории if-pre-up.d со следующим содержимым:

#!/bin/bash
/sbin/iptables-restore < /etc/iptables/rules.conf

Перезагружаем сервер и переходим к настройке Windows-клиента.

Настройка OpenVPN на Windows-клиенте

Скачать и установить OpenVPN для Windows.
В C:\Program Files\OpenVPN\config закинуть ключи, сертификаты и конфиг:
ca.crt
ta.key
user.crt
user.key
vpn.ovpn

Содержимое файла vpn.ovpn:

client
dev tun
proto udp
remote XX.XX.XX.XX 1194
ping 10
tls-client
remote-cert-tls server
ca ca.crt
cert user.crt
key user.key
tls-auth ta.key 1
cipher AES-256-GCM
;comp-lzo no
;comp-lzo
verb 3
pull

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

Если на клиентском компьютере блокируется исходящий трафик, то для работы VPN необходимо открыть UDP-порт 1194.

Примечания:
Если клиентский сертификат защищается паролем (build-key-pass), то в клиентский конфиг можно добавить команду

askpass file.txt

где file.txt - файл с паролем. В этом случае не нужно будет вручную вводить пароль.

OpenVPN версии 2.4.4 может использовать компрессию lz4-v2, которая менее требовательна к ресурсу процессора. Но на этой компрессии у меня резко упала скорость на внешние сети, поэтому пришлось оставить старушку lzo.

По умолчанию использует топология сети net30. Для первого клиента будут использоваться следующие адреса:
10.8.0.4 : network address
10.8.0.5 : virtual remote endpoint; non pingable; only used for routing
10.8.0.6 : client IP address
10.8.0.7 : network broadcast address

При смене IP-адреса для Windows-клиента необходимо ребутнуть TAP-адаптер.

Настройка VPN-сервера с функцией интернет-шлюза (анонимный вебсерфинг): Один комментарий

Добавить комментарий

Ваш адрес email не будет опубликован.

Confirm that you are not a bot - select a man with raised hand: