LINUX.ORG.RU
ФорумAdmin

Помогите настроить OpenVPN

 


0

2

Добрый вечер!

Есть заграничный VPS, на нем установлен Linux и настроен OpenVPN с авторизацией по сертификатам. Есть два клиента клиент1 и клиент2. Клиент1 находится в сети 10.1.0.0/24 (адрес 10.1.0.10, win7), клиент2 находится в сети 192.168.1.0/24 (адрес 192.168.1.20, linux). Задача - предоставить доступ клиенту1 к компьютерам сети клиента2. Как сделано сейчас (взято с https://wiki.archlinux.org/index.php/OpenVPN):

настройки OpenVPN сервера:

...
client-config-dir ccd
route 192.168.1.0 255.255.255.0
...

ccd/client1:

ifconfig-push 10.8.0.10 10.8.0.9
push «route 192.168.1.0 255.255.255.0»

ccd/client2:

ifconfig-push 10.8.0.14 10.8.0.13
iroute 192.168.1.0 255.255.255.0

С такими настройками с клиента1 доступны остальные клиенты VPN (пинг, ssh ...), но недоступны машины, расположенные в сети клиента2 (например, нет доступа по ssh - «Conection refused», причем пинг до них проходит).

Как решить проблему?

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

IPv4 форвард включен на VPN сервере (sysctl говорит, что «net.ipv4.ip_forward = 1»). В конфиге OpenVPN стоит «verb 6» (5 and 6 can help to debug connection problems), ничего подозрительного не пишет.

А насчет правил iptables - какие именно необходимо прописать?

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

Да, на клиенте1 файрволл выключен, на клиенте2 и VPN сервере iptables -L (-t nat) везде ACCEPT.

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

с вербоуз 4 покажи лог подлючения.

пишу по памяти (что типа этого): iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT

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

Лог с момента старта OpenVPN (Initialization complete) до подключения клиента1 http://pastebin.com/BBrY6Fyz. Правила применил на VPS - не помогло.

ka1yaka
() автор топика

Запустите tcpdump на той машине, куда доходит ping, но не доходит ssh. Посмотрите, действительно ли доходят туда пакеты (icmp и tcp syn) или нет.

mky ★★★★★
()
server:
route 192.168.1.0 255.255.255.0
route 10.1.0.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"
push "route 10.1.0.0 255.255.255.0"

client1:
iroute 10.1.0.0 255.255.255.0

client2:
iroute 192.168.1.0 255.255.255.0

Если не нужен iptables между подсетями клиентов, то ещё и client-to-client в конфиг сервера

no-dashi ★★★★★
()
Ответ на: комментарий от mky

tcpdump смотрел, вот лог с машины, куда хочу достучаться (ping прошел успешно, ssh - connection refused):

[root@nw73lxc ~]# tcpdump -n host 192.168.1.73
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
08:10:01.782688 IP 10.8.0.10 > 192.168.1.73: ICMP echo request, id 1, seq 2940, length 40
08:10:01.782783 IP 192.168.1.73 > 10.8.0.10: ICMP echo reply, id 1, seq 2940, length 40
08:10:02.791599 IP 10.8.0.10 > 192.168.1.73: ICMP echo request, id 1, seq 2941, length 40
08:10:02.791648 IP 192.168.1.73 > 10.8.0.10: ICMP echo reply, id 1, seq 2941, length 40
08:10:03.935986 IP 10.8.0.10 > 192.168.1.73: ICMP echo request, id 1, seq 2942, length 40
08:10:03.936034 IP 192.168.1.73 > 10.8.0.10: ICMP echo reply, id 1, seq 2942, length 40
08:10:04.798160 IP 10.8.0.10 > 192.168.1.73: ICMP echo request, id 1, seq 2943, length 40
08:10:04.798206 IP 192.168.1.73 > 10.8.0.10: ICMP echo reply, id 1, seq 2943, length 40
08:10:06.786777 ARP, Request who-has 192.168.1.20 tell 192.168.1.73, length 28
08:10:06.786799 ARP, Request who-has 192.168.1.73 tell 192.168.1.20, length 28
08:10:06.786810 ARP, Reply 192.168.1.73 is-at fe:8a:6a:14:dc:64, length 28
08:10:06.786834 ARP, Reply 192.168.1.20 is-at 3c:07:54:1d:58:60, length 28
ka1yaka
() автор топика
Ответ на: комментарий от no-dashi

Настройки повторил, безрезультатно. Лог tcpdump с недоступной машины здесь http://www.linux.org.ru/forum/admin/9402107?cid=9402953. Кстати, может это имеет значение, машина представляет собой LXC контейнер, работающий на клиенте2, сеть через бридж br0 на клиенте2.

ka1yaka
() автор топика
Ответ на: комментарий от winlook38
[root@nw73lxc ~]# ip ro                                            
default via 192.168.1.1 dev eth0                                    
10.8.0.0/24 via 192.168.1.20 dev eth0                               
169.254.0.0/16 dev eth0  scope link  metric 1010                    
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.73 

С 192.168.1.73 доступ к 10.8.0.10 есть (пинг, и прочее).

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

MTU в настройках OpenVPN клиента2? Какое значение поставить?

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

Хорошо. Теперь посмотрите tcpdump'ом на VPN-интерфейсе машины «клиент 2». Если там есть tcp syn пакеты, значит firewall на ней настроен неправильно.

MTU здесь не причём, первый пакет tcp-соединения короткий, проходит независимо от MTU, а у вас даже он не проходит.

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

MTU здесь не причём, первый пакет tcp-соединения короткий, проходит независимо от MTU, а у вас даже он не проходит.

А точно дамп снят в момент попытки соединения?

например, нет доступа по ssh - «Conection refused»

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

Не знаю, когда снят дамп, но когда проблемы с MTU tcp-соединение устанавливается, а данные не идут. Причём, если MTU пропускает пакет порядка 1000 байт, то даже по ssh можно работать (залогиниться и делать короткие команды). А при выполнении команды, дающей многобайтный выхлоп (допустим ls -R /) соединение зависает.

А всеми горячё обожаемая семёрочка, с которой ТС пытается установить ssh-подключение, не может быть причиной? В linux'е OUTPUT (iptables) обычно всегда ACCEPT на всё, а там ХЗ.

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

А точно дамп снят в момент попытки соединения? - да, в этот момент

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

Тут тоже пусто, делайте tcpdump на openvpn сервере. Лучше делайте

tcpdump -i tun0 -n -nn host 192.168.1.73

тогда будут видны только нужные пакеты.

Если есть возможность, попробуйте вместо win7 какой-нибудь linux. Там хотя бы можно быть уверенным, что tcp-пакеты, пытающиеся установить ssh-сессию уходят в VPN-тунель.

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

то даже по ssh можно работать (залогиниться и делать короткие команды). А при выполнении команды, дающей многобайтный выхлоп (допустим ls -R /) соединение зависает.

Да, точно, вы правы.

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

Кроме двух линуксов из топика и семерочки есть только макось, да и та находится в одной сетке с клиентом2. Попробую вечером поднять какой-нибудь live-образ в VirtualBox.

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