Показать статистику
0 голосов
от (1.2тыс. баллов)

Помогите настроить double OpenVpn. Нигде нет нормального, понятного мануала indecision

Что бы совсем уж мой вопрос был понятен, то двойной VPN это примерно так:

Прости, хабр, что украл твою картинку.

862 просмотров 1 ответов

1 Ответ

0 голосов
от (17.4тыс. баллов)

Задача тривиальная и настраивается за пять-десять минут. Вот примерный мануал

Сначала выполним ifconfig что бы понимать где какие адреса-интерфейсы: 

kolya@vpska-dvoinoi-vpn:/etc/openvpn# ifconfig
ens3      Link encap:Ethernet  HWaddr ac:de:48:00:11:22 
          inet addr:108.61.168.153  Bcast:255.255.254.0  Mask:255.255.254.0
          inet6 addr: fe80::aede:ff:fe32:7b2b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:122189 errors:0 dropped:0 overruns:0 frame:0
          TX packets:134190 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:88730666 (88.7 MB)  TX bytes:21559674 (21.5 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:500 (500.0 B)  TX bytes:500 (500.0 B)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:108.61.168.1  P-t-P:108.61.168.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Далее подправим статический маршрут: 

ip route add default via 108.61.168.1 dev ens3 table 102

ens3 это наш главный интерфейс, через который трафик летает на вход и на выход.

Теперь нужно три правила в iptables засунуть: 

iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
iptables -t nat -A POSTROUTING -o tun1 -j MASQUERADE
iptables -t mangle -A OUTPUT -p udp -m udp --sport 80 -j MARK --set-mark 0x2

Порт 80 - это наш локальный порт, на котором будет висеть и слушать OpenVPN. 

Далее, воткнем еще несколько правил в таблицу статических маршрутов (трюк с таблицей заценили? :-) )

ip rule add fwmark 0x2/0x2 lookup 102
ip rule add from 108.61.168.153 table 102

И теперь переходим к финальной и завершающей части. Нужно подключиться к нашему второму OpenVPN серверу. Для этого можно или вторую консоль открыть, или воспользоваться виртуальным эмулятором терминала (tmux или screen). 

По старинке, воспользуемся скрином. Если не установлен, до доставьте (у меня Fedora, поэтому юзаем yum):

sudo yum install screen

Далее создадим скриновую сессию для нашего VPN: 

screen -S malenkii_dvoinoi

Ну и установим соединение с нашим "вторым VPN":

openvpn --config /path/to/second.ovpn

Ctrl + a + d отправит вашу скрин сессию выполняться в фоновом режиме (все останется, просто сессия "задетачится"). 

На этом все - напишите, получилось или нет. 

...