LINUX.ORG.RU
ФорумAdmin

openvpn - как выдать клиенту внешний ip ?

 , ,


0

4

Всем добра.

Имеется виртуалка и + 4 внешних ip. При настройке eth0:1 ip пингуются.

Можно ли в openvpn выдать внешний ip клиенту и указать ему в качестве gw ip провайдера, а не ip сервера с openvpn?

Не подскажите какие именно должны быть настройки на стороне сервера и клиента?

Включил proxy_arp, ip_forward, в iptables прописал FORWARD, на стороне клиента скриптом поднял tun0 внешний ip, но не запинговалось.

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

Это крайний вариант к которому не хотелось бы прибегать. Маппинг адресов 1:1 сработает, но некоторые службы со стороны впн-клиента не будут работать, или будут глючить.

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

Можно, не проще ли просто дать виртуалке интерфейс из бриджа?

Вы скорее всего не правильно поняли вопрос.

У виртуаки всё ОК. На ней поднять openvpn. Есть желание отдавать клиентам openvpn внешние ip адреса.

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

На ней поднять openvpn. Есть желание отдавать клиентам openvpn внешние ip адреса.

Ещё яснее изложите мысль. Не могу понять что именно надо.

dada ★★★★★
()

может быть, проблема решится раздачей индивидуальных директив для каждого клиента? А гейтвеи тоже можно задать в client-config-side? ip-адреса точно можно.

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

Ещё яснее изложите мысль. Не могу понять что именно надо.

Извиняюсь.

Тебе всем клиентам надо отдавать внешние адреса или только определённым?

Есть виртуалка KVM с ip

  • eth0 1.1.1.2
  • eth0:1 1.1.1.3
  • eth0:2 1.1.1.4
  • eth0:3 1.1.2.5
  • eth0:4 1.1.2.6
  • netmask /24
  • gw 1.1.1.1

    Поднят openvpn и раздает 192.168.100.0/24 но нужно отдавать внешний ip при подключение. И что бы впн-клиент стал доступен всем по внешнему ip адресу.

    Настройка openvpn http://adw0rd.com/2013/1/10/openvpn/

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

погу я поинтересоваться, почему DNAT один в один это крайний вариант?

Интереснее добиться выдачи внешних адресов клиентам.

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

Ммм, тогда не знаю, читай lartc :). Думаю, без отдельных таблиц маршрутизации и маркировки пакетов не обойдётся. Хотя, если есть возможность поднять второй openvpn для этих особых клиентов то всё упрощается.

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

поднять второй openvpn для этих особых клиентов то всё упрощается.


А можно по подробнее?
Клиентов не будет много, максимум 2 или 3.
И я преследую одну цель, выдать клиенту(ам) внешние ip адреса.

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

Серверный openvpn tap-интерфейс засовываешь в bridge с внешним интерфейсом. Получается что клиенты будут в бридже с внешним интерфейсом. Дальше net.ipv4.ip_forward=1 и вуаля.

Правда, не уверен что я такое в реальности проделывал, но должно работать :)

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

2 true_admin
А как клиенту назначить внешний ip ?

у меня сейчас так. server.conf

daemon
port 1194
dev tap0

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem

tls-server

comp-lzo
keepalive 10 120

script-security 2
up /etc/openvpn/bridge_up.sh

persist-key
persist-tun

status /var/log/openvpn/status.log
log-append /var/log/openvpn/append.log

verb 6

up /etc/openvpn/bridge_up.sh

#!/bin/bash

/sbin/ifconfig tap0 up
/sbin/brctl addif br0 tap0

Со стороны клиента

~/.config/openvpn/client.conf

client
dev tap0
proto tcp
remote 1.1.1.1 1194
resolv-retry infinite
nobind

#user nobody
#group nogroup

persist-key
persist-tun

script-security 2
up ~/.config/openvpn/up.sh

ca ~/.config/openvpn/ca.crt
cert ~/.config/openvpn/z88work.crt
key ~/.config/openvpn/z88work.key

comp-lzo
verb 4
mute 20

#status /var/log/openvpn-status.log
#log-append /var/log/openvpn-append.log

~/.config/openvpn/up.sh

#!/bin/bash

ifconfig $1 91.219.237.84 netmask 255.255.255.0

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

тут вопрос как к Вам приходят эти дополнительные ip адреса.. Вы их получаете в едином блоке адресов с собственным ip сервера openvpn?

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

сорри, жаркие баталии в толксах совсем вымотали. Туннель падает? Значит роут до него пропадает после поднятия туннеля. Ты же не пытаешься заменить default gw на клиентах? Или пытаешься?

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

как к Вам приходят эти дополнительные ip адреса


Всего 5 адресов.
Они идут не блоком. а в разнобой.

1.1.1.2 - виртуалка

1.1.1.3
1.1.1.4

1.1.2.5
1.1.2.6

gw 1.1.1.1

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

Туннель падает?

Нет не падает.
На стороне клиента поднимается tap0 и имеет внешний ip.
Клиент сам себя по внешнему ip пингует, есссно.

На шлюзе поднимается tap0 и висит без ip адреса.
!!!Со шлюза внешний ip клиента не пингуется!!!

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

Да, возможно, используя девайс «tap» (а не «tun»).

А вообще какая цель стоит? Если тупо выдать кому-то IP адрес из этой сети (которая на виртуалке) кому-то еще, то вам проще воспользоваться GRE тунелем, а еще проще ipip тунелем, но это если шифрование не требуется.

FreeBSD ★★★
()

Или бриджуй с внешним интерфейсом, или нат

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

А вообще какая цель стоит?

Да имено такая, я хочу выдать внешний ip адрес клиенту. (Что бы при подключение у клиента был белый ip по которому, он был бы доступен всему миру.)

GRE

Не вариант, потому что, клиент находиться за глупым маршрутизатором, который режет GRE.

Или бриджуй с внешним интерфейсом, или нат

Я пробовал, создал br0 засунул туда tap0 и eth0. На стороне клиента был tap0 с внешним ip. (proxy_arp и ip_forward включены, iptables пустой - все accept)
Не запинговалось, но дальше еще интереснее, виртуалку вырубил хостер, со словами что я занимаюсь arp-spoofing и использую чужие ip. Я не сетевой гуру. и поэтому вполне мог, перестараться с настройками, но чужие ip я 100% не прописывал.

ipip

Всё таки, очень желательно шифрование.

Я уже склоняюсь к маппингу портов. Не думал, что это на так сложновато.

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

Если не нужно раздавать адреса динамически, в --up клиента поставить что-то вроде

ip addr add 1.1.1.4/32 scope global dev tun0
На сервере в cc добавть соответствующие
iroute 1.1.1.4 255.255.255.255
route 1.1.1.4 255.255.255.255
Одно но - на клиенте нужно заставить, как минимум, нужные программы использовать в качестве исходящего адреса 1.1.1.4, а не туннельный.

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

Да, забыл - последнее нужно, если соединение инициируется vpn-клиентом. Если соединение инициируется извне (ну там, ssh или http снаружи), то и так работает.

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

2 berrywizard Огромное спасибо. Я уже правда побаиваюсь, поднимать br0 и прочее.

Не могли бы вы проконсультировать меня более подробно. И поправить если я, что-нибудь пропустил.

1) Нужен ли proxy_arp, ip_forward ?
2) Нужно ли создавать br0 и помещать туда, tun ?
3) Я предполагаю нужна строка topology subnet (ради маски /32) ?
4) OpenVPN должен раздавать 192.168.100.1, или нужно просто поднять tun <-> tun канал и в нём up скриптом прописать внешний ip ?

На сервере в cc

ccd ?

Одно но - на клиенте нужно заставить, как минимум, нужные программы использовать в качестве исходящего адреса 1.1.1.4, а не туннельный.

В конфиге пропишу внешний, а вот что значит «не тунельный» вы про серий ip выдаваемый OpenVPN?

Спасибо.

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

Я уже склоняюсь к маппингу портов. Не думал, что это на так сложновато.

С учетом того, что провайдер обнаружил арп-спуфинг я думаю стоит подумать именно о DNAT/SNAT. Помимо простоты это решение также позволит «сэкономить» как минимум 1 IP адрес, т.к. при использовании реальных IP адресов один адрес в тунеле придется отдать виртуалке.

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

С учетом того, что провайдер обнаружил арп-спуфинг я думаю стоит подумать именно о DNAT/SNAT. Помимо простоты это решение также позволит «сэкономить» как минимум 1 IP адрес, т.к. при использовании реальных IP адресов один адрес в тунеле придется отдать виртуалке.

Ну все 5 адресов и так уже внутри виртуалки. Доступа к физ серву нету.

Мне не нужно, что бы клиент заруливал весь трафик на опенвпн серв, мне нужно что бы клиент стал доступен по внешнему ip адресу.
Если для этого надо будет заруливать весь трафик в впн, то я не против.

Я так предполагаю, что можно дабиться настройки и без потери одного адреса для GW.

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

Ну так это провайдер дерьмо, а не технология, в таком случае.

Я не спорю, и прошу от темы не отвлекаться. GRE не вариант.

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

2 berrywizard

Прошу Вас, и всех заинтересованых, помочь доработать конфигурацию. Внести, так сказать, вклад в развитие. =)

Сервер vpn.conf

cat /etc/openvpn/vpn.conf 
mode server
daemon vpn-server

local 91.219.237.72
port 5443
proto udp
dev tun

ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
tls-server
# tls-auth /etc/openvpn/ta.key 0

# server 192.168.50.0 255.255.255.0
# route 192.168.50.0 255.255.255.0

# push "redirect-gateway"
# ifconfig-pool-persist /etc/openvpn/ipp.txt
# client-to-client
client-config-dir /etc/openvpn/ccd

keepalive 10 120
comp-lzo yes

user nobody
group nogroup

persist-key
persist-tun

status /var/log/openvpn/status.log
log-append /var/log/openvpn/append.log

verb 4
mute 20

ccd/user

cat /etc/openvpn/ccd/user 
iroute 91.219.237.84 255.255.255.255
route 91.219.237.84 255.255.255.255

Client conf

cat ~/.config/openvpn/client.conf 
client

remote 91.219.237.72
port 5443
proto udp
dev tun

ca /home/user/.config/openvpn/ca.crt
cert /home/user/.config/openvpn/z88work.crt
key /home/user/.config/openvpn/z88work.key
tls-client
# tls-auth /home/user/.config/openvpn/ta.key 1

resolv-retry infinite
pull
nobind
comp-lzo yes

script-security 2
up /home/user/.config/openvpn/up.sh

#user nobody
#group nogroup

persist-key
persist-tun

#status status.log
#log-append append.log

verb 6
mute 20

--up up.sh

cat ~/.config/openvpn/up.sh 
ip addr add 91.219.237.84/32 scope global dev tun0

Ошибка

Thu Sep 19 13:11:32 2013 us=107693 WARNING: Failed running command (--up/--down): could not execute external program
Thu Sep 19 13:11:32 2013 us=107731 Exiting

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

WARNING: Failed running command

Выличил ошибку, тем, что в начало скрипта up дописал «#!/bin/bash»

#!/bin/bash
ip addr add 91.219.237.84/32 scope global dev tun0

Все запустилось, но на обеих сторонах tun0 не поднят. Связи внутри канала нет(счетчик пакетов не меняется RX и TX понулям).
netstat -rn говорит что на tun0 маршрутов нет.

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

шебанг добавь в up.sh

Я сначала подумал что «шебанг» это обзывательство такое. Разобрался уже с тем, что забыл про #! .
Сейчас проблема в том, что интерфейсы tun0 не подминаются автоматом. И даже если их поднять вручную, прописать ip и прописать маршруты, связи нету.

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

почему бы не показать лог сервера и клиента?

Конечно. состояние когда клиент подключился к впн серверу.

root@sa0140:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         91.219.237.1    0.0.0.0         UG        0 0          0 eth0
91.219.237.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
root@sa0140:~# ifconfig 
eth0      Link encap:Ethernet  HWaddr 9a:c1:14:44:0e:68  
          inet addr:91.219.237.72  Bcast:91.219.237.255  Mask:255.255.255.0
          inet6 addr: 2001:4c48:2:8400:98c1:14ff:fe44:e68/64 Scope:Global
          inet6 addr: fe80::98c1:14ff:fe44:e68/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:180616 errors:0 dropped:313 overruns:0 frame:0
          TX packets:10074 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:27002166 (25.7 MiB)  TX bytes:1649706 (1.5 MiB)

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:16436  Metric:1
          RX packets:58 errors:0 dropped:0 overruns:0 frame:0
          TX packets:58 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4772 (4.6 KiB)  TX bytes:4772 (4.6 KiB)

root@sa0140:~# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 9a:c1:14:44:0e:68  
          inet addr:91.219.237.72  Bcast:91.219.237.255  Mask:255.255.255.0
          inet6 addr: 2001:4c48:2:8400:98c1:14ff:fe44:e68/64 Scope:Global
          inet6 addr: fe80::98c1:14ff:fe44:e68/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:180659 errors:0 dropped:313 overruns:0 frame:0
          TX packets:10084 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:27005042 (25.7 MiB)  TX bytes:1653182 (1.5 MiB)

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:16436  Metric:1
          RX packets:58 errors:0 dropped:0 overruns:0 frame:0
          TX packets:58 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4772 (4.6 KiB)  TX bytes:4772 (4.6 KiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:91.219.237.84  P-t-P:91.219.237.84  Mask:255.255.255.255
          POINTOPOINT 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)

root@sa0140:~# 
tierpunk
() автор топика
Ответ на: комментарий от tierpunk
Thu Sep 19 11:51:53 2013 us=576188 Current Parameter Settings:
Thu Sep 19 11:51:53 2013 us=576297   config = '/etc/openvpn/vpn.conf'
Thu Sep 19 11:51:53 2013 us=576321   mode = 1
Thu Sep 19 11:51:53 2013 us=576340   persist_config = DISABLED
Thu Sep 19 11:51:53 2013 us=576358   persist_mode = 1
Thu Sep 19 11:51:53 2013 us=576376   show_ciphers = DISABLED
Thu Sep 19 11:51:53 2013 us=576388   show_digests = DISABLED
Thu Sep 19 11:51:53 2013 us=576400   show_engines = DISABLED
Thu Sep 19 11:51:53 2013 us=576429   genkey = DISABLED
Thu Sep 19 11:51:53 2013 us=576445   key_pass_file = '[UNDEF]'
Thu Sep 19 11:51:53 2013 us=576458   show_tls_ciphers = DISABLED
Thu Sep 19 11:51:53 2013 us=576472 Connection profiles [default]:
Thu Sep 19 11:51:53 2013 us=576489   proto = udp
Thu Sep 19 11:51:53 2013 us=576505   local = '91.219.237.72'
Thu Sep 19 11:51:53 2013 us=576524   local_port = 5443
Thu Sep 19 11:51:53 2013 us=576542   remote = '[UNDEF]'
Thu Sep 19 11:51:53 2013 us=576562   remote_port = 5443
Thu Sep 19 11:51:53 2013 us=576581   remote_float = DISABLED
Thu Sep 19 11:51:53 2013 us=576599   bind_defined = DISABLED
Thu Sep 19 11:51:53 2013 us=576619   bind_local = ENABLED
Thu Sep 19 11:51:53 2013 us=576637 NOTE: --mute triggered...
Thu Sep 19 11:51:53 2013 us=576673 255 variation(s) on previous 20 message(s) suppressed by --mute
Thu Sep 19 11:51:53 2013 us=576698 OpenVPN 2.2.1 i486-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [eurephia] [MH] [PF_INET6] [IPv6 payload 20110424-2 (2.2RC2)] built on Jun 19 2013
Thu Sep 19 11:51:53 2013 us=576910 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Thu Sep 19 11:51:53 2013 us=582827 Diffie-Hellman initialized with 1024 bit key
Thu Sep 19 11:51:53 2013 us=584096 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Thu Sep 19 11:51:53 2013 us=584157 Socket Buffers: R=[163840->131072] S=[163840->131072]
Thu Sep 19 11:51:53 2013 us=585301 TUN/TAP device tun0 opened
Thu Sep 19 11:51:53 2013 us=585349 TUN/TAP TX queue length set to 100
Thu Sep 19 11:51:53 2013 us=585433 /etc/openvpn/up.sh tun0 1500 1542   init
Thu Sep 19 11:51:53 2013 us=590447 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Thu Sep 19 11:51:53 2013 us=593625 GID set to nogroup
Thu Sep 19 11:51:53 2013 us=593775 UID set to nobody
Thu Sep 19 11:51:53 2013 us=593840 UDPv4 link local (bound): [AF_INET]91.219.237.72:5443
Thu Sep 19 11:51:53 2013 us=593860 UDPv4 link remote: [undef]
Thu Sep 19 11:51:53 2013 us=593883 MULTI: multi_init called, r=256 v=256
Thu Sep 19 11:51:53 2013 us=593981 Initialization Sequence Completed
Thu Sep 19 11:52:19 2013 us=275052 MULTI: multi_create_instance called
Thu Sep 19 11:52:19 2013 us=275228 94.159.31.10:3156 Re-using SSL/TLS context
Thu Sep 19 11:52:19 2013 us=275292 94.159.31.10:3156 LZO compression initialized
Thu Sep 19 11:52:19 2013 us=275540 94.159.31.10:3156 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Thu Sep 19 11:52:19 2013 us=275564 94.159.31.10:3156 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Thu Sep 19 11:52:19 2013 us=275614 94.159.31.10:3156 Local Options String: 'V4,dev-type tun,link-mtu 1542,tun-mtu 1500,proto UDPv4,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
Thu Sep 19 11:52:19 2013 us=275633 94.159.31.10:3156 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1542,tun-mtu 1500,proto UDPv4,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
Thu Sep 19 11:52:19 2013 us=275676 94.159.31.10:3156 Local Options hash (VER=V4): '530fdded'
Thu Sep 19 11:52:19 2013 us=275710 94.159.31.10:3156 Expected Remote Options hash (VER=V4): '41690919'
Thu Sep 19 11:52:19 2013 us=275784 94.159.31.10:3156 TLS: Initial packet from [AF_INET]94.159.31.10:3156, sid=2e6b1ddd 852e4eaa
Thu Sep 19 11:52:20 2013 us=12614 94.159.31.10:3156 VERIFY OK: depth=1, /C=RU/ST=RU/L=Moscow/O=Destroyers/OU=Destroyers/CN=Destroyers/name=Destroyers/emailAddress=vpn@zd.su
Thu Sep 19 11:52:20 2013 us=12941 94.159.31.10:3156 VERIFY OK: depth=0, /C=RU/ST=RU/L=Moscow/O=Destroyers/OU=Destroyers/CN=z88work/name=Destroyers/emailAddress=vpn@zd.su
Thu Sep 19 11:52:20 2013 us=315339 94.159.31.10:3156 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Thu Sep 19 11:52:20 2013 us=315480 94.159.31.10:3156 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Sep 19 11:52:20 2013 us=315544 94.159.31.10:3156 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Thu Sep 19 11:52:20 2013 us=315558 94.159.31.10:3156 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Sep 19 11:52:20 2013 us=375389 94.159.31.10:3156 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Thu Sep 19 11:52:20 2013 us=376046 94.159.31.10:3156 [z88work] Peer Connection Initiated with [AF_INET]94.159.31.10:3156
Thu Sep 19 11:52:20 2013 us=376150 z88work/94.159.31.10:3156 OPTIONS IMPORT: reading client specific options from: /etc/openvpn/ccd/z88work
Thu Sep 19 11:52:20 2013 us=376253 z88work/94.159.31.10:3156 Options error: option 'route' cannot be used in this context
Thu Sep 19 11:52:20 2013 us=376332 z88work/94.159.31.10:3156 MULTI: no dynamic or static remote --ifconfig address is available for z88work/94.159.31.10:3156
Thu Sep 19 11:52:20 2013 us=376365 z88work/94.159.31.10:3156 MULTI: internal route 91.219.237.84 -> z88work/94.159.31.10:3156
Thu Sep 19 11:52:20 2013 us=376440 z88work/94.159.31.10:3156 MULTI: Learn: 91.219.237.84 -> z88work/94.159.31.10:3156
Thu Sep 19 11:52:22 2013 us=794442 z88work/94.159.31.10:3156 PUSH: Received control message: 'PUSH_REQUEST'
Thu Sep 19 11:52:22 2013 us=794525 z88work/94.159.31.10:3156 send_push_reply(): safe_cap=960
Thu Sep 19 11:52:22 2013 us=794589 z88work/94.159.31.10:3156 SENT CONTROL [z88work]: 'PUSH_REPLY,ping 10,ping-restart 120' (status=1)
tierpunk
() автор топика
Ответ на: комментарий от tierpunk

Клиент

az@z88work:~$ netstat -rn
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0         172.22.2.254    0.0.0.0         UG        0 0          0 eth1
172.22.2.0      0.0.0.0         255.255.255.0   U         0 0          0 eth1
az@z88work:~$ ifconfig 
eth1      Link encap:Ethernet  HWaddr 6c:f0:49:dd:05:f3  
          inet addr:172.22.2.111  Bcast:172.22.2.255  Mask:255.255.255.0
          inet6 addr: fe80::6ef0:49ff:fedd:5f3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:69817 errors:0 dropped:0 overruns:0 frame:0
          TX packets:59009 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:51531318 (51.5 MB)  TX bytes:6984360 (6.9 MB)
          Interrupt:41 

lo        Link encap:Локальная петля (Loopback)  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:45 errors:0 dropped:0 overruns:0 frame:0
          TX packets:45 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4618 (4.6 KB)  TX bytes:4618 (4.6 KB)

az@z88work:~$ ifconfig -a
eth1      Link encap:Ethernet  HWaddr 6c:f0:49:dd:05:f3  
          inet addr:172.22.2.111  Bcast:172.22.2.255  Mask:255.255.255.0
          inet6 addr: fe80::6ef0:49ff:fedd:5f3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:69831 errors:0 dropped:0 overruns:0 frame:0
          TX packets:59019 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:51533142 (51.5 MB)  TX bytes:6985512 (6.9 MB)
          Interrupt:41 

lo        Link encap:Локальная петля (Loopback)  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:45 errors:0 dropped:0 overruns:0 frame:0
          TX packets:45 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4618 (4.6 KB)  TX bytes:4618 (4.6 KB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:91.219.237.121  P-t-P:91.219.237.121  Mask:255.255.255.255
          POINTOPOINT 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)

az@z88work:~$ 
tierpunk
() автор топика
Ответ на: комментарий от tierpunk

Лог опенвпн клиента

Thu Sep 19 13:52:18 2013 us=784249 Current Parameter Settings:
Thu Sep 19 13:52:18 2013 us=784386   config = '/home/az/.config/openvpn/client.conf'
Thu Sep 19 13:52:18 2013 us=784399   mode = 0
Thu Sep 19 13:52:18 2013 us=784408   persist_config = DISABLED
Thu Sep 19 13:52:18 2013 us=784417   persist_mode = 1
Thu Sep 19 13:52:18 2013 us=784425   show_ciphers = DISABLED
Thu Sep 19 13:52:18 2013 us=784432   show_digests = DISABLED
Thu Sep 19 13:52:18 2013 us=784440   show_engines = DISABLED
Thu Sep 19 13:52:18 2013 us=784448   genkey = DISABLED
Thu Sep 19 13:52:18 2013 us=784455   key_pass_file = '[UNDEF]'
Thu Sep 19 13:52:18 2013 us=784463   show_tls_ciphers = DISABLED
Thu Sep 19 13:52:18 2013 us=784471 Connection profiles [default]:
Thu Sep 19 13:52:18 2013 us=784480   proto = udp
Thu Sep 19 13:52:18 2013 us=784487   local = '[UNDEF]'
Thu Sep 19 13:52:18 2013 us=784495   local_port = 0
Thu Sep 19 13:52:18 2013 us=784502   remote = '91.219.237.72'
Thu Sep 19 13:52:18 2013 us=784510   remote_port = 5443
Thu Sep 19 13:52:18 2013 us=784518   remote_float = DISABLED
Thu Sep 19 13:52:18 2013 us=784525   bind_defined = DISABLED
Thu Sep 19 13:52:18 2013 us=784533   bind_local = DISABLED
Thu Sep 19 13:52:18 2013 us=784540 NOTE: --mute triggered...
Thu Sep 19 13:52:18 2013 us=784554 253 variation(s) on previous 20 message(s) suppressed by --mute
Thu Sep 19 13:52:18 2013 us=784563 OpenVPN 2.2.1 x86_64-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [eurephia] [MH] [PF_INET6] [IPv6 payload 20110424-2 (2.2RC2)] built on Feb 27 2013
Thu Sep 19 13:52:18 2013 us=784640 WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
Thu Sep 19 13:52:18 2013 us=784649 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Thu Sep 19 13:52:18 2013 us=785396 LZO compression initialized
Thu Sep 19 13:52:18 2013 us=785460 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Thu Sep 19 13:52:18 2013 us=785493 Socket Buffers: R=[229376->131072] S=[229376->131072]
Thu Sep 19 13:52:18 2013 us=785509 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Thu Sep 19 13:52:18 2013 us=785524 Local Options String: 'V4,dev-type tun,link-mtu 1542,tun-mtu 1500,proto UDPv4,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
Thu Sep 19 13:52:18 2013 us=785532 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1542,tun-mtu 1500,proto UDPv4,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
Thu Sep 19 13:52:18 2013 us=785549 Local Options hash (VER=V4): '41690919'
Thu Sep 19 13:52:18 2013 us=785563 Expected Remote Options hash (VER=V4): '530fdded'
Thu Sep 19 13:52:18 2013 us=785577 UDPv4 link local: [undef]
Thu Sep 19 13:52:18 2013 us=785592 UDPv4 link remote: [AF_INET]91.219.237.72:5443
Thu Sep 19 13:52:18 2013 us=845224 TLS: Initial packet from [AF_INET]91.219.237.72:5443, sid=9b540b8a 517747a3
Thu Sep 19 13:52:19 2013 us=213352 VERIFY OK: depth=1, /C=RU/ST=RU/L=Moscow/O=Destroyers/OU=Destroyers/CN=Destroyers/name=Destroyers/emailAddress=vpn@zd.su
Thu Sep 19 13:52:19 2013 us=213822 VERIFY OK: depth=0, /C=RU/ST=RU/L=Moscow/O=Destroyers/OU=Destroyers/CN=server/name=Destroyers/emailAddress=vpn@zd.su
Thu Sep 19 13:52:19 2013 us=883662 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Thu Sep 19 13:52:19 2013 us=883773 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Sep 19 13:52:19 2013 us=883949 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Thu Sep 19 13:52:19 2013 us=883987 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Sep 19 13:52:19 2013 us=884057 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Thu Sep 19 13:52:19 2013 us=884121 [server] Peer Connection Initiated with [AF_INET]91.219.237.72:5443
Thu Sep 19 13:52:21 2013 us=970468 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Thu Sep 19 13:52:22 2013 us=364611 PUSH: Received control message: 'PUSH_REPLY,ping 10,ping-restart 120'
Thu Sep 19 13:52:22 2013 us=364680 OPTIONS IMPORT: timers and/or timeouts modified
Thu Sep 19 13:52:22 2013 us=365075 TUN/TAP device tun0 opened
Thu Sep 19 13:52:22 2013 us=365095 TUN/TAP TX queue length set to 100
Thu Sep 19 13:52:22 2013 us=365138 /home/az/.config/openvpn/up.sh tun0 1500 1542   init
Thu Sep 19 13:52:22 2013 us=454345 Initialization Sequence Completed

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

Ответы:

1) proxy_arp - не в курсе; ip_forward - естественно.

2) смотря как у вас там общение хоста с ВМ'ами настроено.

3) может быть (см. ниже про косяк у меня с /26).

4) должен.

«ccd ?»: да

«про серий ip выдаваемый OpenVPN?»: «туннельный» - «серий ip выдаваемый OpenVPN», «не туннельный» - любой (вменяемый) адрес вне «серий ip выдаваемый OpenVPN».

Объясняю:

- так сказать, «холостое состояние» системы (openvpn поднят, ни один клиент ещё не подключился, в случае с вирт. машинами «eth14.8@eth14» заменить на что-то вроде «xenbr0»):

# ip addr show
...
4: eth14.12@eth14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 00:0a:5e:75:63:90 brd ff:ff:ff:ff:ff:ff
    inet 11.22.33.46/30 brd 11.22.33.47 scope global eth14.12
       valid_lft forever preferred_lft forever
...
6: eth14.8@eth14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 00:0a:5e:75:63:90 brd ff:ff:ff:ff:ff:ff
    inet 192.168.254.1/24 brd 192.168.254.255 scope global eth14.8
       valid_lft forever preferred_lft forever
...
14: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
    link/[65534] 
    inet 192.168.253.1 peer 192.168.253.2/32 scope global tun0
...

#

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.253.2   0.0.0.0         255.255.255.255 UH    0      0        0 tun0
11.22.33.44     0.0.0.0         255.255.255.252 U     0      0        0 eth14.12
192.168.253.0   192.168.253.2   255.255.255.0   UG    0      0        0 tun0
192.168.254.0   0.0.0.0         255.255.255.0   U     0      0        0 eth14.8
0.0.0.0         11.22.33.45     0.0.0.0         UG    5      0        0 eth14.12

#

- после подключения клиента, таблица маршрутов будет примерно такой (у меня почему-то маска /26, хотя в ccd для клиента указано 255.255.255.255, лень выяснять):

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
1.1.1.4         192.168.253.2   255.255.255.192 UG    0      0        0 tun0
192.168.253.2   0.0.0.0         255.255.255.255 UH    0      0        0 tun0
11.22.33.44     0.0.0.0         255.255.255.252 U     0      0        0 eth14.12
192.168.253.0   192.168.253.2   255.255.255.0   UG    0      0        0 tun0
192.168.254.0   0.0.0.0         255.255.255.0   U     0      0        0 eth14.8
0.0.0.0         11.22.33.45     0.0.0.0         UG    5      0        0 eth14.12

#
а у клиента примерно такие адреса/маршруты:
# ip addr show
...
3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:02:b3:d6:08:cb brd ff:ff:ff:ff:ff:ff
    inet 192.168.254.197/24 brd 192.168.254.255 scope global eth0
       valid_lft forever preferred_lft forever
...
10: tun0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 100
    link/[65534] 
    inet 192.168.253.46 peer 192.168.253.45/32 scope global tun0
    inet 1.1.1.4/32 scope global tun0
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.253.45  0.0.0.0         255.255.255.255 UH    0      0        0 tun0
192.168.254.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.253.0   192.168.253.45  255.255.255.0   UG    0      0        0 tun0
0.0.0.0         192.168.253.45  0.0.0.0         UG    0      0        0 tun0
Ну и вуаля:
# ping -c 2 -R 1.1.1.4
PING 1.1.1.4 (1.1.1.4) 56(124) bytes of data.
64 bytes from 1.1.1.4: icmp_seq=1 ttl=62 time=4.49 ms
RR:     11.22.30.33
        11.22.33.43
        192.168.253.1
        1.1.1.4
        1.1.1.4
        11.22.33.44
        11.22.30.17
        11.22.30.33

64 bytes from 1.1.1.4: icmp_seq=2 ttl=62 time=4.57 ms       (same route)

--- 1.1.1.4 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 4.497/4.536/4.576/0.078 ms
#
Как я уже сказал, единственная проблема здесь — приложения на openvpn-клиенте будут при инициировании соединений наружу использовать адрес (в данном случае) 192.168.253.45, т.к. default route у него туннельный. Решить можно, например, SNAT'ом на openvpn-сервере.

Плюсы:

- выделенную сетку реальных IP можно раскидать до единого адреса по всем системам, в т.ч. по узлам, находящимся в разных IP-сетях;

- всё решается внутри IP-стека (адреса/маршрутизация), нет необходимости возится с мостами/arp'ами/...

Минус: указанный выше момент.

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

Подключаюсь к впн, пингую внутрений тунельный адрес впн сервера (192.168.100.1).

Влогах впн сервера ошибка

Thu Sep 19 12:48:40 2013 us=188321 z88work/94.159.31.10:30205 OPTIONS IMPORT: reading client specific options from: /etc/openvpn/ccd/z88work
Thu Sep 19 12:48:40 2013 us=188426 z88work/94.159.31.10:30205 Options error: option 'route' cannot be used in this context

С впн сервера не пингуется внешний ip адрес клиента (который на клиенте прописывается --up up.sh).
В инете внешний ip не пингуется.

Сервер на момент простоя

ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 9a:c1:14:44:0e:68 brd ff:ff:ff:ff:ff:ff
    inet 91.219.237.72/24 brd 91.219.237.255 scope global eth0
    inet6 2001:4c48:2:8400:98c1:14ff:fe44:e68/64 scope global dynamic 
       valid_lft 86240sec preferred_lft 14240sec
    inet6 fe80::98c1:14ff:fe44:e68/64 scope link 
       valid_lft forever preferred_lft forever
14: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
    link/none 
    inet 192.168.100.1 peer 192.168.100.2/32 scope global tun0
netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         91.219.237.1    0.0.0.0         UG        0 0          0 eth0
91.219.237.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.100.0   192.168.100.2   255.255.255.0   UG        0 0          0 tun0
192.168.100.2   0.0.0.0         255.255.255.255 UH        0 0          0 tun0

cat /etc/openvpn/vpn.conf

mode server
daemon vpn-server

local 91.219.237.72
port 5443
proto udp
dev tun

ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
tls-server
# tls-auth /etc/openvpn/ta.key 0

# topology subnet
server 192.168.100.0 255.255.255.0
route 192.168.100.0 255.255.255.0
push "route 192.168.100.0 255.255.255.0"

# push "redirect-gateway"
ifconfig-pool-persist /etc/openvpn/ipp.txt
# client-to-client

client-config-dir /etc/openvpn/ccd

keepalive 10 120
comp-lzo yes

user nobody
group nogroup

persist-key
persist-tun

status /var/log/openvpn/status.log
log-append /var/log/openvpn/append.log

verb 4
mute 20

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

Сервер на момент подключения по впн

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 9a:c1:14:44:0e:68 brd ff:ff:ff:ff:ff:ff
    inet 91.219.237.72/24 brd 91.219.237.255 scope global eth0
    inet6 2001:4c48:2:8400:98c1:14ff:fe44:e68/64 scope global dynamic 
       valid_lft 86058sec preferred_lft 14058sec
    inet6 fe80::98c1:14ff:fe44:e68/64 scope link 
       valid_lft forever preferred_lft forever
14: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
    link/none 
    inet 192.168.100.1 peer 192.168.100.2/32 scope global tun0
netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         91.219.237.1    0.0.0.0         UG        0 0          0 eth0
91.219.237.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.100.0   192.168.100.2   255.255.255.0   UG        0 0          0 tun0
192.168.100.2   0.0.0.0         255.255.255.255 UH        0 0          0 tun0

Клиент на момент подключения к впн

ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 6c:f0:49:dd:05:f3 brd ff:ff:ff:ff:ff:ff
    inet 172.22.2.111/24 brd 172.22.2.255 scope global eth1
    inet6 fe80::6ef0:49ff:fedd:5f3/64 scope link 
       valid_lft forever preferred_lft forever
17: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
    link/none 
    inet 192.168.100.6 peer 192.168.100.5/32 scope global tun0
    inet 91.219.237.121/32 scope global tun0
netstat -rn
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0         172.22.2.254    0.0.0.0         UG        0 0          0 eth1
172.22.2.0      0.0.0.0         255.255.255.0   U         0 0          0 eth1
192.168.100.0   192.168.100.5   255.255.255.0   UG        0 0          0 tun0
192.168.100.1   192.168.100.5   255.255.255.255 UGH       0 0          0 tun0
192.168.100.5   0.0.0.0         255.255.255.255 UH        0 0          0 tun0

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

На сервере почему то не съедается строка из ccd
route 91.219.237.121 255.255.255.255

но после добавления маршрута
route add -net 91.219.237.121 netmask 255.255.255.255 dev tun0
клиент с сервера запинговался.

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

В инете 91.219.237.121 (внешний ip у клиента) не отвечает.
Повторюсь, что добавив маршрут на впн-сервера для 91.219.237.121/32 tun0 с сервера он стал доступен.

Что мне нужно сделать что бы 91.219.237.121 стал доступен в инете?
Засунуть tun0 и eth0 в br0 ?

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