LINUX.ORG.RU
ФорумAdmin

Double VPN на основе OpenVPN

 ,


0

2

Настроил на двух серверах OpenVPN серверную часть, а так же на первом настроил клиент часть, для подключения ко второму серверу.
Получается цепочка клиент->vpn1->vpn2-сервер. По отдельности трафик проходит через сервера, но когда настраиваю перенаправление трафика с tun0 на tun1 на первом сервере, трафик не проходит.
Подскажите пожалуйста, может не правильно как то трафик перенаправляю.
Правила использовал такие:

echo '150 vpn.out' >> /etc/iproute2/rt_tables 
ip rule add from 192.168.100.0/24 table vpn.out
ip route add default dev tun1 table vpn.out
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o tun1 -j MASQUERADE



Последнее исправление: limer2012 (всего исправлений: 1)

Ответ на: комментарий от rumgot

Добавил pull, все равно ошибка DNS. Проверял на самом VDS, DNS работают.

limer2012
() автор топика
Ответ на: комментарий от rumgot

Вот конфиг 1ого сервера:

mode server
dev tun
proto tcp-server
port 1194
server 192.168.101.0 255.255.255.0
push dhcp-option DNS 192.168.101.1
tls-server
tls-auth /etc/openvpn/keys/ta.key 0
tls-timeout 120
auth SHA512
cipher AES-256-CBC
comp-lzo
auth-nocache
keepalive 10 120
persist-tun
persist-key
dh /etc/openvpn/keys/dh1024.pem
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key  # This file should be kept secret
log /etc/openvpn/logs/openvpn.log
status /etc/openvpn/logs/openvpn-status.log
verb 3
script-security 2

limer2012
() автор топика
Ответ на: комментарий от rumgot

А по твоему, как бы я пакеты устанавливал?)

limer2012
() автор топика
Ответ на: комментарий от rumgot

DNS присасываются если запускать через консоль, а если через Сетевые соединения через графический интерфейс, то нет.

limer2012
() автор топика
Ответ на: комментарий от limer2012

Слушай. Я вот читаю твои ответы и не всегда понимаю, что ты имеешь ввиду. Научись подробно формулировать вопрос и все условия, чтобы не приходилось гадать. Уж извини, но фраза «DNS присасываются если запускать через консоль» - это сумбур. Здесь на сайте много людей, которые готовы поделиться знанием, но многие из них на такие вопросы даже отвечать не станут.

rumgot ★★★★★
()
Ответ на: комментарий от rumgot

Честно говоря, я удивлен вашему терпению.

anc ★★★★★
()
Ответ на: комментарий от rumgot

Запускаю через Network Manager, через графический интерфейс, днс не добавляются в resolv.conf, запустил от root через Терминал, то путь сразу прописался и стало:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.101.1
nameserver 127.0.1.1
Извиняюсь если я не правильно как то выразился.

limer2012
() автор топика
Ответ на: комментарий от limer2012

Я имел ввиду настройки самого network manager. Там возможно где-то стоит настройка, по которой не принимается днс адрес от openvpn сервера.

rumgot ★★★★★
()
Ответ на: комментарий от rumgot

netstat -anp | grep dnsmasq

tcp        0      0 127.0.1.1:53            0.0.0.0:*             LISTEN      2868/dnsmasq    
udp        0      0 127.0.1.1:53            0.0.0.0:*                           2868/dnsmasq    
unix  2      [ ]         DGRAM                    17606    2868/dnsmasq        
unix  3      [ ]         STREAM     CONNECTED     17593    2868/dnsmasq  
limer2012
() автор топика
Ответ на: комментарий от limer2012

Разобрался

sudo nano /etc/NetworkManager/NetworkManager.conf
#Комментируем строку dns=dnsmasq
dns=dnsmasq
И теперь при подключении к VPN я получаю DNSы VPN. Спасибо больше за наводки.

limer2012
() автор топика
31 января 2017 г.
Ответ на: комментарий от kukara4

Как раз то что мне нужно.

Читал ветку о создании дабл Openvpn и наткнулся на это сообщение. Это как раз то что мне нужно. Буду премного благодарен за мануал по настройке данной связки.

managast
()
Ответ на: комментарий от rumgot

Перенаправление трафика

Доброго времени суток! У меня возникла аналогичная проблема, не могу пустить трафик через 2 сервера. Может вы мне подскажете в чём может быть проблема? Клиент (Windows) ---> Server 1 ---> Server 2 ---> Internet

Конфиг server 2:

port 11
proto udp
dev tun0
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.1.0 255.255.255.0
push "route 10.8.1.0 255.255.255.0"
push "dhcp-option DNS 8.8.8.8"
duplicate-cn
cipher BF-CBC
comp-lzo
persist-key
persist-tun
verb 0
log /dev/null
status /dev/null
log-append /dev/null
конфиг server 1:
port 9364
proto udp
dev tun0
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
duplicate-cn
cipher BF-CBC
comp-lzo
persist-key
persist-tun
verb 0
log /dev/null
status /dev/null
log-append /dev/null
Конфиг клиента на сервере 1:
client
remote 2.2.2.2
port 11
proto udp
dev tun1
persist-key
persist-tun
ca /etc/openvpn/clien/ca.crt
cert /etc/openvpn/clien/client.crt
key /etc/openvpn/clien/client.key
ping 10
verb 3
mute 10
Конфиг клиента (windows):
client
dev tun0
proto udp
remote 1.1.1.1 9364
resolv-retry infinite
nobind
persist-key
persist-tun
cipher BF-CBC
ca ca.crt
cert client.crt
key client.key
comp-lzo
verb 3
route-method exe 
route-delay 2
В итоге выхожу в интернет через 1 сервер. Не происходит перенаправление на второй. Использовал такие правила:
echo '150 vpn.out' >> /etc/iproute2/rt_tables 
ip rule add from 10.8.0.0/24 table vpn.out 
ip route add default dev tun1 table vpn.out 
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o tun1 -j MASQUERADE 

bendjo
()
Ответ на: комментарий от rumgot

Пытался я по приведённым конфигам настроить, но у меня даже сервис впн не стартует если я закоментирую строки

server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
и пропишу те, что привели Вы
ifconfig 10.8.0.1 255.255.255.0
push route 10.8.1.0 255.255.255.0 10.8.0.1

поэтому и обратился за помощью

bendjo
()

клиент->vpn1->vpn2-сервер

Если в vpn1 нет никаких ресурсов, к которым нужен доступ, и он сделан только для того, чтобы «не через одну VPN, а через две», то гораздо удобнее будет просто пробросить порт через SSH.

Deleted
()
Ответ на: комментарий от rumgot

Вот что пишет в логе первого сервера (файл openvpn.log):

Sun Feb 26 15:25:22 2017 77.40.2.203:53027 WARNING: 'link-mtu' is used inconsistently, local='link-mtu 1558', remote='link-mtu 1542'
Sun Feb 26 15:25:22 2017 77.40.2.203:53027 WARNING: 'cipher' is used inconsistently, local='cipher AES-256-CBC', remote='cipher BF-CBC'
Sun Feb 26 15:25:22 2017 77.40.2.203:53027 WARNING: 'keysize' is used inconsistently, local='keysize 256', remote='keysize 128'
Sun Feb 26 15:26:34 2017 OpenVPN 2.0.7 x86_64-unknown-linux [SSL] [LZO] [EPOLL] built on Feb 15 2017
Sun Feb 26 15:26:34 2017 Diffie-Hellman initialized with 1024 bit key
Sun Feb 26 15:26:34 2017 TLS-Auth MTU parms [ L:1558 D:138 EF:38 EB:0 ET:0 EL:0 ]
Sun Feb 26 15:26:34 2017 TUN/TAP device tun0 opened
Sun Feb 26 15:26:34 2017 /sbin/ifconfig tun0 10.5.11.1 pointopoint 10.5.11.2 mtu 1500
Sun Feb 26 15:26:34 2017 /sbin/route add -net 10.5.11.0 netmask 255.255.255.0 gw 10.5.11.2
Sun Feb 26 15:26:34 2017 Data Channel MTU parms [ L:1558 D:1450 EF:58 EB:135 ET:0 EL:0 AF:3/1 ]
Sun Feb 26 15:26:34 2017 UDPv4 link local (bound): [undef]:9364
Sun Feb 26 15:26:34 2017 UDPv4 link remote: [undef]
Sun Feb 26 15:26:34 2017 MULTI: multi_init called, r=256 v=256
Sun Feb 26 15:26:34 2017 IFCONFIG POOL: base=10.5.11.4 size=62
Sun Feb 26 15:26:34 2017 Initialization Sequence Completed
Sun Feb 26 15:27:47 2017 event_wait : Interrupted system call (code=4)
Sun Feb 26 15:27:47 2017 TCP/UDP: Closing socket
Sun Feb 26 15:27:47 2017 /sbin/route del -net 10.5.11.0 netmask 255.255.255.0
Sun Feb 26 15:27:47 2017 Closing TUN/TAP interface
Sun Feb 26 15:27:47 2017 SIGTERM[hard,] received, process exiting
Sun Feb 26 15:27:49 2017 OpenVPN 2.0.7 x86_64-unknown-linux [SSL] [LZO] [EPOLL] built on Feb 15 2017
Sun Feb 26 15:27:49 2017 Diffie-Hellman initialized with 1024 bit key

Это логи, записанные до перезапуска сервиса впн. После перезапуска сервис не стартует и не пишет ничего в файл.

bendjo
()
Ответ на: комментарий от rumgot

На этом же форуме наткнулся на сообщение, в котором ссылаются на этот мануал http://skeletor.org.ua/?p=3221 Всё сделал в точности как там, сервис впн так же не хотел стартовать.

bendjo
()
Ответ на: комментарий от Deleted

Спасибо за совет. Да, первый сервер нужен просто как сервер, через который трафик уходит на второй. Попробую разобраться в этом.

bendjo
()
Ответ на: комментарий от bendjo

Ничего не понятно по логу.
Можешь ли проверить запуск своего openVPN(сервер 1) на приведенной мной конфигурации в сообщении Double VPN на основе OpenVPN (комментарий) ?
Можешь сделать более подробный лог на сервер 1 (параметр verb 4 в конфигурации openVPN)?
Также опиши, что там у тебя за система(сервер 1). И как настраивается openVPN(сервер 1).

rumgot ★★★★★
()
Ответ на: комментарий от rumgot

Сейчас сделаю в точности такой же конфиг, как привели Вы. Система CentOS 6

bendjo
()
Ответ на: комментарий от rumgot

Вот такой конфиг сделал. Так как TLS аутентификацию не использую, то закоментировал некоторые строки.

port 9364
proto udp
dev tun0
mode server

tls-server
#tls-auth keys-server/ta.key 0
#tls-cipher TLS-DHE-RSA-WITH-AES-256-CBC-SHA
cipher AES-256-CBC
auth SHA512
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem

ifconfig 10.8.0.1 255.255.255.0
push route 10.8.1.0 255.255.255.0 10.8.0.1

topology subnet
push topology subnet
client-to-client

keepalive 5 10
comp-lzo yes
persist-key
persist-tun

#status /var/log/openvpn-status.log
log    /var/log/openvpn.log
verb 4

client-config-dir ccd
script-security 2

Настраиваю следующим образом: Устанавливаю следующее: yum install httpd openssl-devel make gcc-c++

wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.02.tar.gz

И эту версию openvpn: wget http://openvpn.net/release/openvpn-2.0.7.tar.gz

Дальше генерирую сертификаты и ключи для сервера и клиента. Все они хранятся в /etc/openvpn

Копирую скрипт:

cp /usr/local/src/openvpn-2.0.7/sample-scripts/openvpn.init /etc/rc.d/init.d/openvpn

Затем создаю уже конфиг сервера.

bendjo
()
Ответ на: комментарий от rumgot

всё ровно не стартует. В лог:

Tue Feb 28 08:08:39 2017 event_wait : Interrupted system call (code=4)
Tue Feb 28 08:08:39 2017 TCP/UDP: Closing socket
Tue Feb 28 08:08:39 2017 /sbin/route del -net 10.5.11.0 netmask 255.255.255.0
Tue Feb 28 08:08:39 2017 Closing TUN/TAP interface
Tue Feb 28 08:08:39 2017 SIGTERM[hard,] received, process exiting

bendjo
()
Ответ на: комментарий от bendjo

ant, подскажи пожалуйста человеку, если есть мысли по данной ситуации.

rumgot ★★★★★
()
Ответ на: комментарий от rumgot

Я в конфиге поставил verb 4. Но у меня ничего туди не пишет.. или Вы не об этом говорите?

bendjo
()
Ответ на: комментарий от rumgot

есть /var/log/massages

Feb 26 03:29:01 vps115792 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="946" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Feb 26 04:18:53 vps115792 auditd[924]: Audit daemon rotating log files
Feb 26 11:20:36 vps115792 openvpn[32036]: Options error: the --push directive should have at most 1 parameter.  To pass a list of arguments as one of the parameters, try enclosing them in double quotes ("").
Feb 26 11:20:36 vps115792 openvpn[32036]: Use --help for more information.
Feb 26 11:22:18 vps115792 openvpn[32074]: Options error: the --push directive should have at most 1 parameter.  To pass a list of arguments as one of the parameters, try enclosing them in double quotes ("").
Feb 26 11:22:18 vps115792 openvpn[32074]: Use --help for more information.
Feb 26 11:23:56 vps115792 openvpn[32098]: Options error: the --push directive should have at most 1 parameter.  To pass a list of arguments as one of the parameters, try enclosing them in double quotes ("").
Feb 26 11:23:56 vps115792 openvpn[32098]: Use --help for more information.
Feb 26 11:24:37 vps115792 kernel: tun0: Disabled Privacy Extensions
Feb 26 11:28:42 vps115792 kernel: tun1: Disabled Privacy Extensions
Feb 26 11:29:30 vps115792 openvpn[32204]: Options error: the --push directive should have at most 1 parameter.  To pass a list of arguments as one of the parameters, try enclosing them in double quotes ("").
Feb 26 11:29:30 vps115792 openvpn[32204]: Use --help for more information.
Feb 26 11:29:59 vps115792 openvpn[32226]: Options error: the --push directive should have at most 1 parameter.  To pass a list of arguments as one of the parameters, try enclosing them in double quotes ("").
Feb 26 11:29:59 vps115792 openvpn[32226]: Use --help for more information.
Feb 26 11:30:33 vps115792 openvpn[32250]: Options error: the --push directive should have at most 1 parameter.  To pass a list of arguments as one of the parameters, try enclosing them in double quotes ("").
Feb 26 11:30:33 vps115792 openvpn[32250]: Use --help for more information.
Feb 26 11:30:55 vps115792 kernel: tun0: Disabled Privacy Extensions
Feb 26 11:35:32 vps115792 kernel: tun0: Disabled Privacy Extensions
Feb 26 11:41:06 vps115792 kernel: tun0: Disabled Privacy Extensions
Feb 26 11:42:55 vps115792 kernel: tun1: Disabled Privacy Extensions
Feb 26 11:45:30 vps115792 kernel: tun0: Disabled Privacy Extensions
Feb 26 11:49:16 vps115792 kernel: tun0: Disabled Privacy Extensions
Feb 26 15:19:55 vps115792 openvpn[891]: Options error: Unrecognized option or missing parameter(s) in server.conf:21: script-security (2.0.7)
Feb 26 15:19:55 vps115792 openvpn[891]: Use --help for more information.
Feb 26 15:20:49 vps115792 openvpn[913]: Options error: Unrecognized option or missing parameter(s) in server.conf:21: script-security (2.0.7)
Feb 26 15:20:49 vps115792 openvpn[913]: Use --help for more information.
Feb 26 15:21:50 vps115792 openvpn[939]: Options error: Unrecognized option or missing parameter(s) in server.conf:21: script-security (2.0.7)
Feb 26 15:21:50 vps115792 openvpn[939]: Use --help for more information.
Feb 26 15:23:56 vps115792 openvpn[973]: Options error: Unrecognized option or missing parameter(s) in server.conf:21: script-security (2.0.7)
Feb 26 15:23:56 vps115792 openvpn[973]: Use --help for more information.
Feb 26 15:24:44 vps115792 kernel: tun0: Disabled Privacy Extensions
Feb 26 15:26:34 vps115792 kernel: tun0: Disabled Privacy Extensions
Feb 26 15:27:49 vps115792 kernel: tun0: Disabled Privacy Extensions
Feb 26 15:29:01 vps115792 kernel: tun0: Disabled Privacy Extensions
Feb 26 15:31:44 vps115792 kernel: tun1: Disabled Privacy Extensions
Feb 26 23:14:44 vps115792 auditd[924]: Audit daemon rotating log files
Feb 27 07:55:22 vps115792 auditd[924]: Audit daemon rotating log files
Feb 28 08:08:41 vps115792 openvpn[10351]: Options error: the --push directive should have at most 1 parameter.  To pass a list of arguments as one of the parameters, try enclosing them in double quotes ("").
Feb 28 08:08:41 vps115792 openvpn[10351]: Use --help for more information.
Feb 28 08:15:35 vps115792 openvpn[10394]: Options error: the --push directive should have at most 1 parameter.  To pass a list of arguments as one of the parameters, try enclosing them in double quotes ("").
Feb 28 08:15:35 vps115792 openvpn[10394]: Use --help for more information.
Feb 28 09:06:50 vps115792 openvpn[10539]: Options error: the --push directive should have at most 1 parameter.  To pass a list of arguments as one of the parameters, try enclosing them in double quotes ("").
Feb 28 09:06:50 vps115792 openvpn[10539]: Use --help for more information.
Feb 28 09:18:41 vps115792 openvpn[10571]: Options error: the --push directive should have at most 1 parameter.  To pass a list of arguments as one of the parameters, try enclosing them in double quotes ("").
Feb 28 09:18:41 vps115792 openvpn[10571]: Use --help for more information.
Feb 28 09:24:33 vps115792 openvpn[10609]: Options error: the --push directive should have at most 1 parameter.  To pass a list of arguments as one of the parameters, try enclosing them in double quotes ("").
Feb 28 09:24:33 vps115792 openvpn[10609]: Use --help for more information.
Feb 28 09:32:33 vps115792 openvpn[10644]: Options error: the --push directive should have at most 1 parameter.  To pass a list of arguments as one of the parameters, try enclosing them in double quotes ("").
Feb 28 09:32:33 vps115792 openvpn[10644]: Use --help for more information.
Feb 28 09:44:13 vps115792 openvpn[10691]: Options error: Unrecognized option or missing parameter(s) in server.conf:6: server (2.0.7)
Feb 28 09:44:13 vps115792 openvpn[10691]: Use --help for more information.
Feb 28 09:45:28 vps115792 openvpn[10717]: Options error: Unrecognized option or missing parameter(s) in server.conf:6: server (2.0.7)
Feb 28 09:45:28 vps115792 openvpn[10717]: Use --help for more information.

bendjo
()
Ответ на: комментарий от bendjo

Появились новые записи в логе

Feb 28 09:44:13 vps115792 openvpn[10691]: Options error: Unrecognized option or missing parameter(s) in server.conf:6: server (2.0.7)
Feb 28 09:44:13 vps115792 openvpn[10691]: Use --help for more information.
Feb 28 09:45:28 vps115792 openvpn[10717]: Options error: Unrecognized option or missing parameter(s) in server.conf:6: server (2.0.7)
Feb 28 09:45:28 vps115792 openvpn[10717]: Use --help for more information.
Feb 28 10:03:55 vps115792 openvpn[10807]: Options error: Unrecognized option or missing parameter(s) in server.conf:6: server (2.0.7)
Feb 28 10:03:55 vps115792 openvpn[10807]: Use --help for more information.
Feb 28 10:06:35 vps115792 openvpn[10833]: Options error: Unrecognized option or missing parameter(s) in server.conf:20: topology (2.0.7)
Feb 28 10:06:35 vps115792 openvpn[10833]: Use --help for more information.
Feb 28 10:07:09 vps115792 openvpn[10854]: Options error: Unrecognized option or missing parameter(s) in server.conf:19: topology (2.0.7)
Feb 28 10:07:09 vps115792 openvpn[10854]: Use --help for more information.
Feb 28 10:08:38 vps115792 openvpn[10877]: Options error: Unrecognized option or missing parameter(s) in server.conf:19: topology (2.0.7)
Feb 28 10:08:38 vps115792 openvpn[10877]: Use --help for more information.
Feb 28 10:17:05 vps115792 openvpn[10917]: Options error: Unrecognized option or missing parameter(s) in server.conf:20: topology (2.0.7)
Feb 28 10:17:05 vps115792 openvpn[10917]: Use --help for more information.

bendjo
()
Ответ на: комментарий от bendjo

Нужно попробовать текущий openvpn из официального репозитория твоего дистра. Может версия openvpn, который ты используешь, не подходит, может проблема в init скрипте, который ты копируешь. Для начала я бы попробовал использовать openvpn из репозитория.

rumgot ★★★★★
()
Ответ на: комментарий от rumgot

Не совсем понял про официальный репозиторий.. можете подробнее объяснить? А если проблема в версии или скрипте, то тогда я бы не смог создать впн соединение через один сервер? С конфигами, которые я приводил, получалось настроить рабочий OpenVPN через один сервер, просто нужно маскарадинг на eth0 и маршрутизацию IP пакетов включить.

bendjo
()
Ответ на: комментарий от limer2012

Доброго времени суток! Как я понял, у Вас получилосоь решить проблему с настройкой. Можете привести свои конфиги?

bendjo
()
Ответ на: комментарий от bendjo

Ты же привел фрагмент системного лога и там написано, что аюу параметра push аргументы должны быть в кавычках, значит твой скрипт запускает openvpn как то не правильно, далее openvpn ругается на неизвестные параметры в файле конфигурации. Поэтому для начала я бы советовал попробовать удалить твой openvpn и установить из официального репозитория твоего дистрибуттва. Какой у тебя дистрибутив кстати?

rumgot ★★★★★
()
Ответ на: комментарий от rumgot

OpenVPN я скачиваю с оффициального сайта

wget http://openvpn.net/release/openvpn-2.0.7.tar.gz
Да, сейчас переустановлю снова CentOS на обоих серверах и попробую заново установить VPN.

bendjo
()
Ответ на: комментарий от bendjo

Не нужно систему переустанавливать. Я же пишу, елки-зеленые, удали свой openvpn(init-скрипт не забудь) и поставь из репозитория твоего дистра!

yum install openvpn

rumgot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.