Telegram: | maintex |
VERIFIED
Join Date: Jun 2014
Posts: 168
![]() |
![]()
Часто пользователи сети Интернет по различным причинам не хотят показывать свой реальный IP, который выдает им провайдер. Известно, что многие организации предоставляют услуги VPN, Proxy, Socks, которые помогают пользователю сохранить свою анонимность в сети. Для чего это нужно отдельному пользователю — причин может быть множество, на этом мы не будем акцентировать внимание. Рассмотрим процесс создания OpenVPN-сервера, который соединен с другим OpenVPN-сервером, при этом трафик от пользователя идет через первый сервер, после этого на второй и далее уже к нужному ресурсу. Возвращается трафик по этой же цепочке в обратной последовательности. Много владельцев подобной схемы называют ее «double» (двойным) OpenVPN. Схематически такую схему можно отобразить таким образом:
Клиент --> OpenVPN-сервер 1 --> OpenVPN-сервер 2 --> Интернет Возврат трафика по обратной схеме: Клиент <-- OpenVPN-сервер 1 <-- OpenVPN-сервер 2 <-- Интернет Для создания подобной схемы необходимо наличие двух VPS/VDS (как правило, VDS используется при больших нагрузках (объемах передаваемого трафика)). При этом, если будет использоваться VPS с типом виртуализации OpenVZ или другим, при котором контейнеры виртуальных машин используют общее ядро хост-системы, необходимо уточнить у хостера, разрешена ли загрузка модуля tun для виртуальных машин. Реализация схемы предполагает настройку соединения через OpenVPN между клиентом и OpenVPN-сервером 1, между двух OpenVPN-серверов, настройку NAT на OpenVPN-сервере 2 и настройку маршрутизации на двух OpenVPN-серверах. Устанавливаем на обеих серверах OpenVPN. Приведем, например, процесс установки для ОС CentOS. В стандартных репозиториях CentOS пакет openvpn отсутствует, поэтому подключаем нужные источники (учитываем версию и архитеркуту ОС) rpm -ihv http://mirror.yandex.ru/epel/6/x86_6...6-7.noarch.rpm rpm -ihv http://centos.alt.ru/repository/cent...6-1.noarch.rpm Устанавливаем OpenVPN Code:
yum -y install openvpn Code:
lsmod | grep tun Code:
modprobe tun Code:
dev tun proto tcp-server ifconfig 10.0.2.1 10.0.2.2 tls-server comp-lzo daemon ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem tls-auth /etc/openvpn/keys/tls.key 0 cipher AES-256-CBC port 1195 user nobody group nobody max-clients 1 persist-key persist-tun verb 3 status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log script-security 3 system route-up "ip route add 10.0.1.0/24 via 10.0.2.2 dev tun0" Содержимое команды route-up зависит от настройки клиентской сети и настроек соединения между серверами. Включаем форвардинг пакетов. В файле /etc/sysctl.conf значение параметра net.ipv4.ip_forward меняем с 0 на 1 Code:
net.ipv4.ip_forward = 1 Code:
sysctl -p Code:
iptables -t nat -A POSTROUTING --src 10.0.1.0/24 -o eth0 -j SNAT --to-source 1.1.1.1, На первом сервере также устанавливаем OpenVPN и создаем конфигурационный файл /etc/openvpn/s2s.conf: Code:
dev tun0 remote 1.1.1.1 port 1195 proto tcp-client ifconfig 10.0.2.2 10.0.2.1 tls-client comp-lzo daemon script-security 3 system ns-cert-type server ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/s2s.crt key /etc/openvpn/keys/s2s.key dh /etc/openvpn/keys/dh1024.pem tls-auth /etc/openvpn/keys/tls.key 1 cipher AES-256-CBC user nobody group nobody persist-key persist-tun verb 3 route-up "ip route add default via 10.0.2.1 dev tun0 table 10 && ip rule add from 10.0.1.0/24 lookup 10 pref 10″ mute 10 status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log Настраиваем OpenVPN-сервер 1 для подключения клиентов. Для этого создаем конфигурационный файл /etc/openvpn/server.conf: Code:
port 1194 local 2.2.2.2 proto tcp dev tun1 server 10.0.1.0 255.255.255.0 ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem tls-auth /etc/openvpn/keys/tls.key 0 cipher AES-256-CBC user nobody group nobody status /var/log/openvpn/openvpnserver-status.log log-append /var/log/openvpn/openvpnserver.log verb 3 max-clients 30 keepalive 10 120 tls-server comp-lzo persist-key persist-tun push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" После настройки на каждом сервере запускаем OpenVPN Code:
/etc/init.d/openvpn start Для возможности подключения клиенту необходимы следующие файлы: ca.crt client01.crt client01.key dh1024.pem tls.key Нужно передать их вместе с параметрами конфигурации. Со стороны клиента в зависимости от ОС нужно выполнить такие действия. Для ОС linux: Установить openvpn. Проверить, загружен ли модуль tun. Создать конфигурационный файл /etc/openvpn/client01.conf Code:
client remote 2.2.2.2 1194 proto tcp dev tun ca ca.crt dh dh1024.pem cert client01.crt key client01.key tls-auth tls.key 1 cipher AES-256-CBC verb 3 mute 20 keepalive 10 120 comp-lzo persist-key persist-tun resolv-retry infinite nobind Code:
/etc/init.d/openvpn start Для Windows: Установить OpenVPN для windosw (http://openvpn.net/index.php/open-source/downloads.html). Скопировать полученные файлы (ca.crt, client01.crt, client01.key, dh1024.pem, tls.key) в C:\Program Files\OpenVPN\config\client01. В том же каталоге создать конфигурационный файл client01.ovpn (идентичный по содержанию с client01.conf для linux). Подключиться. После подключения проверить, как идет трафик. Оба сервера должны фигурировать в трассе: Code:
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets 1 10.1.0.1 (10.1.0.1) 165.178 ms 329.870 ms 329.807 ms 2 10.2.0.1 (10.2.0.1) 493.908 ms 658.640 ms 824.653 ms По информации с 10serv.com |
![]() |
![]() |
![]() |
Tags |
2015, double, openvpn, настройка, «двойного» |
|
|