LINUX.ORG.RU
ФорумAdmin

ошибки в маршрутизации openvpn

 


0

1

Здравствуйте. Поднимаю openvpn. Клиент подключается по впн к серверу, видит локальную сеть за сервером. А сервер в свою очередь сеть за клиентом не видит (а очень хочется чтоб видел). Преследуемая цель - пользователи обоих сетей видят сети друг друга. конфиг сервера.

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
keepalive 10 120
tls-auth ta.key 0
key-direction 0
cipher AES-128-CBC
auth SHA256
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
sndbuf 0
rcvbuf 0
/etc/openvpn/ccd/client1
ifconfig-push 10.8.0.2 10.8.0.1
iroute 10.28.1.0 255.255.255.0
push "route 10.27.1.0 255.255.255.0"
конфиг клиента
client
dev tun
proto udp
remote 10.27.1.5 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
remote-cert-tls server
tls-auth ta.key 1
cipher AES-128-CBC
auth SHA256
key-direction 1
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
comp-lzo
verb 3
при попытке добавить в конфиг сервера
route 10.28.1.0 255.255.255.0
у клиента не получается подключится к серверу. Буду очень признателен за подсказку.

Ответ на: комментарий от new_erak
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -s 10.0.0.0/8 -o ens18 -j MASQUERADE
-A POSTROUTING -s 10.0.0.0/8 -o ens18 -j MASQUERADE
veeryskier
() автор топика

мля, опять клиент не является маршрутом по умолчанию для своей сети и очередной идиот ноет, что у него не работает.

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

ну спасибо на добром слове, сам то ты все сразу умел?

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

Начнём с того, что иптаблесы никакие не нужны. Нужно, чтобы умели оба маршрутизовать (net.ipv4.ip_forward) и чтобы были прописаны маршруты. Причём на клиент маршруты до сети сервака пушатся через конфиг у тебя, а на сервере маршрута до сети клиента нет. Не знаю, можно ли это через конфиги сделать, но можешь создать статический маршрут до сети клиента через VPN адрес клиента.

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

Хорошо, а что говорит ip r на сервере? Если там маршрут есть, то поставь на клиенте tcpdump и посмотри, доходят ли пакеты. Если доходят — посмотри на физическом интерфейсе, уходят ли, может быть так, что они уходят, но не возвращаются. Дальше уже в зависимости от того, что увидишь

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

на клиенте ничего не дропается, ufw пока отключил. маршрутизация у обоих включена. При добавление маршрута

sudo route add -net 10.28.1.0 netmask 255.255.255.0 gw 10.8.0.2 tun0
соединение по vpn отваливается

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

ip r

default via 10.27.1.3 dev ens18 onlink
10.8.0.0/24 via 10.8.0.2 dev tun0
10.8.0.2 dev tun0  proto kernel  scope link  src 10.8.0.1
10.27.1.0/24 dev ens18  proto kernel  scope link  src 10.27.1.5
получается маршрута нет, но как я написал выше при попытке его добавить соединение отваливается. Еще заметил косяк при подключении vpn на клиенте
Thu Jan 17 07:40:01 2019 /sbin/ip route add 10.8.0.1/32 via 10.8.0.1
RTNETLINK answers: File exists
Thu Jan 17 07:40:01 2019 ERROR: Linux route add command failed: external program exited with error status: 2
откуда взялся этот маршрут с маской в /32 бита мне не известно!

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

Хочу поправится, клиент действительно не является шлюзом в своей сети, поэтому цель пока чтобы и клиент и сервер видели именно по тунелю не только тунельные ip друг друга (10.8.0.1,10.8.0.2), но и физические (10.27.1.5,10.2.1.5). На данный момент это может пока только клиент.

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

В логе openvpn что-нибудь есть? У тебя, насколько я помню документацию, сейчас подключение идёт не как нормальная подсеть, а как peer-to-peer. Соответственно, 10.8.0.2 — это адрес пира, которому сервер посылает данные, а у клиента должен быть .3 (там у них где-то таблица разрешённых адресов была, лень гуглить). Попробуй перенастроить клиент на другой адрес

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

помоему в логах ничего криминального. Да, ifconfig мне подсказывает что peer-to-peer

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.8.0.4  P-t-P:10.8.0.1  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)
Thu Jan 17 13:23:04 2019 OpenVPN 2.3.10 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Jun 22 2017
Thu Jan 17 13:23:04 2019 library versions: OpenSSL 1.0.2g  1 Mar 2016, LZO 2.08
Thu Jan 17 13:23:04 2019 Diffie-Hellman initialized with 2048 bit key
Thu Jan 17 13:23:04 2019 Control Channel Authentication: using 'ta.key' as a OpenVPN static key file
Thu Jan 17 13:23:04 2019 Outgoing Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
Thu Jan 17 13:23:04 2019 Incoming Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
Thu Jan 17 13:23:04 2019 Socket Buffers: R=[212992->212992] S=[212992->212992]
Thu Jan 17 13:23:04 2019 ROUTE_GATEWAY 10.27.1.3/255.255.255.0 IFACE=ens18 HWADDR=5a:ed:66:8e:c9:ef
Thu Jan 17 13:23:04 2019 TUN/TAP device tun0 opened
Thu Jan 17 13:23:04 2019 TUN/TAP TX queue length set to 100
Thu Jan 17 13:23:04 2019 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Thu Jan 17 13:23:04 2019 /sbin/ip link set dev tun0 up mtu 1500
Thu Jan 17 13:23:04 2019 /sbin/ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2
Thu Jan 17 13:23:04 2019 /sbin/ip route add 10.8.0.0/24 via 10.8.0.2
Thu Jan 17 13:23:04 2019 GID set to nogroup
Thu Jan 17 13:23:04 2019 UID set to nobody
Thu Jan 17 13:23:04 2019 UDPv4 link local (bound): [undef]
Thu Jan 17 13:23:04 2019 UDPv4 link remote: [undef]
Thu Jan 17 13:23:04 2019 MULTI: multi_init called, r=256 v=256
Thu Jan 17 13:23:04 2019 IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
Thu Jan 17 13:23:04 2019 ifconfig_pool_read(), in='client1,10.8.0.4', TODO: IPv6
Thu Jan 17 13:23:04 2019 succeeded -> ifconfig_pool_set()
Thu Jan 17 13:23:04 2019 IFCONFIG POOL LIST
Thu Jan 17 13:23:04 2019 client1,10.8.0.4
Thu Jan 17 13:23:04 2019 Initialization Sequence Completed
Thu Jan 17 13:23:15 2019 10.28.1.100:57983 TLS: Initial packet from [AF_INET]10.28.1.100:57983, sid=dbc0773e 382f55d7
Thu Jan 17 13:23:15 2019 10.28.1.100:57983 VERIFY OK: depth=1, C=US, ST=CA, L=SanFrancisco, O=Fort-Funston, OU=MyOrganizationalUnit, CN=Fort-Funston CA, name=server, emailAddress=me@myhost.mydomain
Thu Jan 17 13:23:15 2019 10.28.1.100:57983 VERIFY OK: depth=0, C=US, ST=CA, L=SanFrancisco, O=Fort-Funston, OU=MyOrganizationalUnit, CN=client1, name=server, emailAddress=me@myhost.mydomain
Thu Jan 17 13:23:15 2019 10.28.1.100:57983 Data Channel Encrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Thu Jan 17 13:23:15 2019 10.28.1.100:57983 Data Channel Encrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
Thu Jan 17 13:23:15 2019 10.28.1.100:57983 Data Channel Decrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Thu Jan 17 13:23:15 2019 10.28.1.100:57983 Data Channel Decrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
Thu Jan 17 13:23:15 2019 10.28.1.100:57983 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 2048 bit RSA
Thu Jan 17 13:23:15 2019 10.28.1.100:57983 [client1] Peer Connection Initiated with [AF_INET]10.28.1.100:57983
Thu Jan 17 13:23:15 2019 client1/10.28.1.100:57983 OPTIONS IMPORT: reading client specific options from: ccd/client1
Thu Jan 17 13:23:15 2019 client1/10.28.1.100:57983 MULTI: Learn: 10.8.0.4 -> client1/10.28.1.100:57983
Thu Jan 17 13:23:15 2019 client1/10.28.1.100:57983 MULTI: primary virtual IP for client1/10.28.1.100:57983: 10.8.0.4
Thu Jan 17 13:23:15 2019 client1/10.28.1.100:57983 MULTI: internal route 10.28.1.0/24 -> client1/10.28.1.100:57983
Thu Jan 17 13:23:15 2019 client1/10.28.1.100:57983 MULTI: Learn: 10.28.1.0/24 -> client1/10.28.1.100:57983
Thu Jan 17 13:23:18 2019 client1/10.28.1.100:57983 PUSH: Received control message: 'PUSH_REQUEST'
Thu Jan 17 13:23:18 2019 client1/10.28.1.100:57983 send_push_reply(): safe_cap=940
Thu Jan 17 13:23:18 2019 client1/10.28.1.100:57983 SENT CONTROL [client1]: 'PUSH_REPLY,route 10.8.0.1,topology net30,ping 10,ping-restart 120,route 10.27.1.0 255.255.255.0,ifconfig 10.8.0.4 10.8.0.1' (status=1)
Thu Jan 17 13:25:58 2019 MULTI: Learn: 10.28.1.100 -> client1/10.28.1.100:57983
Thu Jan 17 13:26:10 2019 MULTI: Learn: 10.28.1.5 -> client1/10.28.1.100:57983

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

Чтобы видеть сеть за клиентом, этот клиент должен являться маршрутизатором в своей сети. Хотя бы для сети той, что за сервером.

turtle_bazon ★★★★★
()

Лучше начни с того, что расскажие какие ипы по впн и в локалке у клиента и сервера. И какая таблица маршрутизации на каждом.

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

к сожалению не заработало. Попробовал в конфигах серва и клиента поменять tun на tap соединение вообще перестало происходить (правильно я понял ? только это менять в конфигах, остальное остается без изменений?)

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

сервер

ip 10.27.1.5

тунельный ip 10.8.0.1

клиент

ip 10.28.1.5

тунельный ip 10.8.0.4 (теперь уже, до момента когда мне XMs посоветовал его поменять был 10.8.0.2)

если речь о том когда я пытался добавить

sudo route add -net 10.28.1.0 netmask 255.255.255.0 gw 10.8.0.2 tun0
то это было на сервере, с целью добавить ручками маршрут на сервере до сети клиента.

Чтобы видеть сеть за клиентом, этот клиент должен являться маршрутизатором в своей сети. Хотя бы для сети той, что за сервером.

это отдельная песня как я буду заворачивать приходящий трафик на клиента в сеть, ее я буду реализовывать сам. Пока моя задача видеть пинговать с обоих серверов друг друга как по ip тунельным так и по физическим реальным адресам

маршрут клиента

netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.28.1.1      0.0.0.0         UG        0 0          0 ens18
10.8.0.1        0.0.0.0         255.255.255.255 UH        0 0          0 tun0
10.27.1.0      10.8.0.1        255.255.255.0   UG        0 0          0 tun0
10.27.1.5      10.28.1.1      255.255.255.255 UGH       0 0          0 ens18
10.28.1.0      0.0.0.0         255.255.255.0   U         0 0          0 ens18

маршрут сервера

netstat -rn
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0         10.27.1.3      0.0.0.0         UG        0 0          0 ens18
10.8.0.0        10.8.0.2        255.255.255.0   UG        0 0          0 tun0
10.8.0.2        0.0.0.0         255.255.255.255 UH        0 0          0 tun0
10.27.1.0      0.0.0.0         255.255.255.0   U         0 0          0 ens18
сейчас клиент видит физический ip сервера через тунель, а сервер клиентский нет

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

очень смущает меня вот эта строчка при подключении

 /sbin/ip route add 10.8.0.1/32 via 10.8.0.1
RTNETLINK answers: File exists
Wed Jan 16 15:49:25 2019 ERROR: Linux route add command failed: external program exited with error status: 2
может в ней косяк, но откуда берется эта запись я так и не понял

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

ошибся пардон, у клиента физический ip 10.28.1.100

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

На сервере маршрут должен быть до сети клиента тоже. То есть 10.28.1.0 10.18.0.4 255.255.255.0. Ты 10.18.0.4 пинговать то можешь?

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

Пинг по тунельным адресам в обе стороны идет отлично,

На сервере маршрут должен быть до сети клиента тоже. То есть 10.28.1.0 10.18.0.4 255.255.255.0.

в этом и затык у меня.

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

попробовал на сервере добавить

route add -net 10.28.1.0 netmask 255.255.255.0 gateway 10.8.0.4 tun0
в ответ получаю
SIOCADDRT: Сеть недоступна
кто нибудь в курсе что ему не хватает????

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

Ну или tun0 тебе не надо добавлять. Я с обычным route синтаксисом плохо знаком. Но, вроде, с добавлением он может на L2 хотеть кидать, а у тебя L3 соединение в данном случае.

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