LINUX.ORG.RU
решено ФорумAdmin

и снова OpenVPN

 


0

1

Ребята, хэлп с OpenVPN. Купил у хостера, настраивал скриптом, всё как обычно. В итоге по файлу клиента я подключаюсь, а инета нету. По пингам - заходит на сервак и там умирает. Форвардинг, iptables, всё настроено

Сервер:

 
port 1194
proto udp
dev tun


ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh2048.pem

user nobody
group nogroup

server 10.5.0.0 255.255.255.0

cipher AES-256-CBC

route 192.168.0.0 255.255.255.0

keepalive 10 120

comp-lzo

persist-key
persist-tun

key-direction 0

status openvpn-status.log

log /var/log/openvpn.log

verb 3

push "redirect-gateway def1"
push "dhcp-options DNS 8.8.8.8"
push "dhcp-options DNS 8.8.4.4"

Клиент:

 
client
dev tun
proto udp
remote 46.229.220.215 1194
cipher AES-256-CBC
resolv-retry infinite
nobind

dhcp-option DNS 8.8.8.8
dhcp-option DNS 8.8.4.4


persist-key
persist-tun
comp-lzo
verb 3
key-direction 1

И здесь ключи шифрования

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

Ну извини, я не эксперт. У меня просто на vds была такая же проблема, смена протокола помогла. Сейчас может ещё что подскажут.

DELIRIUM ☆☆☆☆☆
()

Покажи выгрузку правил iptables, ip клиента и сервера и содержимое таблицы маршрутизации на клиенте.

А так же значение /proc/sys/net/ipv4/ip_forward.

anonymous
()

По пингам - заходит на сервак и там умирает.
Форвардинг, iptables, всё настроено

А маскарадинг?

iptables -t nat -A POSTROUTING -o tun0 -s 192.168.0.0/16 -j MASQUERADE
Aber ★★★★★
()
Ответ на: комментарий от anonymous

ifconfig:

ens160    Link encap:Ethernet  HWaddr 00:50:56:01:2d:68
          inet addr:46.229.220.215  Bcast:46.229.220.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fe01:2d68/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:147817 errors:0 dropped:49 overruns:0 frame:0
          TX packets:1505 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:10632913 (10.6 MB)  TX bytes:250107 (250.1 KB)

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:160 errors:0 dropped:0 overruns:0 frame:0
          TX packets:160 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:11840 (11.8 KB)  TX bytes:11840 (11.8 KB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.5.0.1  P-t-P:10.5.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:171 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:81342 (81.3 KB)  TX bytes:0 (0.0 B)

iptables -t nat -S

root@Ubuntu1604x64:~# iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -o ens160 -j MASQUERADE

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

повторюсь, форвардинг включён, там единица

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

А что с маршрутами на сервере и на клиенте?

Приведите вывод команды

ip route
с обеих машин, пожалуйста.

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

Наверное так посмотреть:

sudo tcpdump -vvv -n -i tun0
sudo tcpdump -vvv -n -i ens160 "not port <ssh> and not port <vpn>"
Вместо <ssh> и <vpn> вставь соответствующие номера портов. Какие варианты могут быть: 1) На ens160 вообще ничего не уходит из тунеля - не работает forwarding . 2) Уходит но src ip неправильный (не сервера vpn) и потому некуда возвращаться ответам - не работает маскарадинг. Где-то так. А еще iptables -nvL должен отображать изменения в колонках pkts bytes после каждого прошедшего цепочку пакета. Так можно определить какие правила срабатывают.

Aber ★★★★★
()
Ответ на: комментарий от Serge10
root@Ubuntu1604x64:~# ip route
default via 46.229.220.1 dev ens160 onlink
10.5.0.0/24 via 10.5.0.2 dev tun0
10.5.0.2 dev tun0  proto kernel  scope link  src 10.5.0.1
46.229.220.0/24 dev ens160  proto kernel  scope link  src 46.229.220.215
192.168.0.0/24 via 10.5.0.2 dev tun0

клиент - мой комп на Win10, там вряд-ли какие-то проблемы, на любой другой конфиг подключается и работает нормально

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

В данном случае нужно смотреть что тут

sudo iptables -t nat -nvL POSTROUTING
Напротив правила с -j MASQUERADE значения счетчиков пакетов и байтов должны увеличиться после пинга.

Aber ★★★★★
()
Последнее исправление: Aber (всего исправлений: 1)
Ответ на: комментарий от Aber

да, есть, с клиента должно увеличивать количество на сервере, я правильно понял? просто с клиента даже пинги не ходят

C:\Users\Arrow>ping 8.8.8.8

Обмен пакетами с 8.8.8.8 по с 32 байтами данных:
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.

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

да, есть, с клиента должно увеличивать количество на сервере, я правильно понял?

Да. Когда ты пингуешь с клиента, то пакет уходя через tun интерфейс на твой VPN сервер имеет src_ip 10.5.0.* и dst_ip 8.8.8.8, дальше сервер в чейне POSTROUTING должен 10.5.0.* поменять на свой IP (src_ip 46.229.220.215) чтоб пакет мог ему вернутся, это называется MASQUERADE. Посмотри на ens160 через tcpdump чтоб понять как там что уходит, только отфильтруй свой ssh и vpn чтоб ненужные пакеты не показывал.

Aber ★★★★★
()

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

Ты же можешь пинговать vpn сервер по тунелю? Вот этот 10.5.0.1?

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

Зря. Я играюсь с докер конетнерами, все настраиваю в контейнерах на локальной машине, затем запускаю их на целевом сервере. Там только для туннелей нужны привилегии контейнеру дать: --cap-add=NET_ADMIN --cap-add=NET_RAW --device=/dev/net/tun. Настройка дольше выходит, но зато поменять VPS не проблема.

Aber ★★★★★
()
Последнее исправление: Aber (всего исправлений: 1)
Ответ на: комментарий от Aber

странно, не пингуется, так же клиент не получает шлюз

Адаптер Ethernet Ethernet 2:

   DNS-суффикс подключения . . . . . :
   Локальный IPv6-адрес канала . . . : fe80::9142:6d3a:f11f:594f%7
   IPv4-адрес. . . . . . . . . . . . : 10.5.0.6
   Маска подсети . . . . . . . . . . : 255.255.255.252
   Основной шлюз. . . . . . . . . :

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

проверил, на других конфигах, где всё работает тоже не получает

new_erak
() автор топика
Ответ на: комментарий от anc
root@Ubuntu1604x64:~# iptables-save
# Generated by iptables-save v1.6.0 on Tue Apr  2 17:46:44 2019
*nat
:PREROUTING ACCEPT [5122:867769]
:INPUT ACCEPT [7:358]
:OUTPUT ACCEPT [2:152]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o ens160 -j MASQUERADE
COMMIT
# Completed on Tue Apr  2 17:46:44 2019
# Generated by iptables-save v1.6.0 on Tue Apr  2 17:46:44 2019
*filter
:INPUT DROP [4720:719595]
:FORWARD DROP [193:115189]
:OUTPUT ACCEPT [138:24228]
:f2b-SSH - [0:0]
:f2b-sshd - [0:0]
-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -p tcp -m tcp --dport 22 -j f2b-SSH
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A f2b-SSH -j RETURN
-A f2b-sshd -j RETURN
COMMIT
# Completed on Tue Apr  2 17:46:44 2019

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

Ага, тут один уже попробовал, как только потребовалось чуть больше, радость поуменьшилась. :)

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от bvn13

спасибо за совет, но поймите меня правильно, я каждый день поднимаю около 10ти разных OpenVPN'ов на разных хостерах, всегда делаю одно и то же, обычно этот процесс занимает у меня не больше 5ти минут, я бы не хотел пользоваться чем-то другим конкретно для этих целей. Хочется разобраться, в чём конкретно здесь проблема

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

Один из вариантов

iptables -A FORWARD -s 10.5.0.0/24 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

что-то не нагуглил ничего толкового

iptables tutorial, есть на русском

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от BOOBLIK

Тоже не верно. Согласно конфига не факт что будет tun0.

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

Слово «вариант» в моем посте означало, не «попробуйте этот вариант, может заработает», а это действительно вариант который вам поможет. Но вариантов решения (в данном случае правил iptables) больше одного. Надо понимать что они делают на самом деле, а не просто копипастить. Для этого я и написал, что вам стоит прочитать iptables tutorial.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.