LINUX.ORG.RU
ФорумAdmin

OpenVPN настройка и маршрутизация

 


0

1

1. ПЕРВЫЙ ОФИС. Роутер D-Link DIR-615 поднимает инет соединение (адрес роутера 192.168.1.1)
2. Машина на Debian выступает в качестве шлюза локальной сети, имеет два сетевых интерфейса: eth0=192.168.1.11 и eth1=192.168.0.1 (все компьютеры в сети имеют адрес 192.168.0.х)
3. На этой же машине установлен OpenVPN сервер, согласно инструкции: http://debian-help.ru/articles/ustanovka-nastroika-openvpn-servera-debian-6/
Конфиг сервера:

push "route 192.168.0.0 255.255.255.0"
tls-auth ta.key 0 
cipher DES-EDE3-CBC
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key  
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn.log
verb 3
4. На роутере в разделе virtual server открываю порт 1194 UDP для адреса 192.168.1.11 и запускаю OpenVPN через команду:
/etc/init.d/openvpn start
5. ВТОРОЙ ОФИС. Клиентом OpenVPN выступает машина на windows, внутренний IP=172.17.10.100, подключена к роутеру напрямую.
Передаю ключи и сертификаты клиенту (кстати говоря файлы *.key не хотели даже открываться, но chmod 777 вроде решил данную проблему), создаю конфиг клиента:
client
port 1194
proto udp
dev tun
dev-node "VPN"
remote 78.85.32.29 1194
remote-cert-tls server
ca ca.crt
cert user.crt
key user.key
tls-auth ta.key 1
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ping-restart 60
ping 10
comp-lzo
persist-key
persist-tun
cipher DES-EDE3-CBC
status "C:\\Program Files\\OpenVPN\\log\\openvpn-status.log"
log "C:\\Program Files\\OpenVPN\\log\\openvpn.log"
verb 3
mute 20
6. Клиент НЕ подключается к серверу
Лог клиента:
Thu Feb 04 19:42:21 2016 OpenVPN 2.3.10 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Feb  1 2016
Thu Feb 04 19:42:21 2016 Windows version 6.2 (Windows 8 or greater)
Thu Feb 04 19:42:21 2016 library versions: OpenSSL 1.0.1r  28 Jan 2016, LZO 2.09
Thu Feb 04 19:42:21 2016 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
Thu Feb 04 19:42:21 2016 Need hold release from management interface, waiting...
Thu Feb 04 19:42:22 2016 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
Thu Feb 04 19:42:22 2016 MANAGEMENT: CMD 'state on'
Thu Feb 04 19:42:22 2016 MANAGEMENT: CMD 'log all on'
Thu Feb 04 19:42:22 2016 MANAGEMENT: CMD 'hold off'
Thu Feb 04 19:42:22 2016 MANAGEMENT: CMD 'hold release'
Thu Feb 04 19:42:22 2016 Control Channel Authentication: using 'ta.key' as a OpenVPN static key file
Thu Feb 04 19:42:22 2016 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Feb 04 19:42:22 2016 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Feb 04 19:42:22 2016 Socket Buffers: R=[65536->65536] S=[65536->65536]
Thu Feb 04 19:42:22 2016 UDPv4 link local (bound): [undef]
Thu Feb 04 19:42:22 2016 UDPv4 link remote: [AF_INET]78.85.32.29:1194
Thu Feb 04 19:42:22 2016 MANAGEMENT: >STATE:1454600542,WAIT,,,
Thu Feb 04 19:43:22 2016 [UNDEF] Inactivity timeout (--ping-restart), restarting
Thu Feb 04 19:43:22 2016 SIGUSR1[soft,ping-restart] received, process restarting
Thu Feb 04 19:43:22 2016 MANAGEMENT: >STATE:1454600602,RECONNECTING,ping-restart,,
Thu Feb 04 19:43:22 2016 Restart pause, 2 second(s)
Thu Feb 04 19:43:24 2016 Socket Buffers: R=[65536->65536] S=[65536->65536]
Thu Feb 04 19:43:24 2016 UDPv4 link local (bound): [undef]
Thu Feb 04 19:43:24 2016 UDPv4 link remote: [AF_INET]78.85.32.29:1194
Thu Feb 04 19:43:24 2016 MANAGEMENT: >STATE:1454600604,WAIT,,,
Лог сервера
Fri Feb  5 01:09:29 2016 OpenVPN 2.2.1 i486-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [eurephia] [MH] [PF_INET6] [IPv6 payload 20110424-2 (2.2RC2)] built on Dec  1 2014
Fri Feb  5 01:09:29 2016 NOTE: your local LAN uses the extremely common subnet address 192.168.0.x or 192.168.1.x.  Be aware that this might create routing conflicts if you connect to the VPN server from public locations such as internet cafes that use the same subnet.
Fri Feb  5 01:09:29 2016 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Fri Feb  5 01:09:29 2016 Diffie-Hellman initialized with 1024 bit key
Fri Feb  5 01:09:29 2016 Control Channel Authentication: using 'ta.key' as a OpenVPN static key file
Fri Feb  5 01:09:29 2016 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri Feb  5 01:09:29 2016 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri Feb  5 01:09:29 2016 TLS-Auth MTU parms [ L:1542 D:166 EF:66 EB:0 ET:0 EL:0 ]
Fri Feb  5 01:09:29 2016 Socket Buffers: R=[163840->131072] S=[163840->131072]
Fri Feb  5 01:09:29 2016 ROUTE default_gateway=192.168.1.1
Fri Feb  5 01:09:29 2016 TUN/TAP device tun0 opened
Fri Feb  5 01:09:29 2016 TUN/TAP TX queue length set to 100
Fri Feb  5 01:09:29 2016 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Fri Feb  5 01:09:29 2016 /sbin/ifconfig tun0 10.8.0.1 pointopoint 10.8.0.2 mtu 1500
Fri Feb  5 01:09:29 2016 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2
Fri Feb  5 01:09:29 2016 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Fri Feb  5 01:09:29 2016 UDPv4 link local (bound): [undef]
Fri Feb  5 01:09:29 2016 UDPv4 link remote: [undef]
Fri Feb  5 01:09:29 2016 MULTI: multi_init called, r=256 v=256
Fri Feb  5 01:09:29 2016 IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
Fri Feb  5 01:09:29 2016 IFCONFIG POOL LIST
Fri Feb  5 01:09:29 2016 Initialization Sequence Completed
Кажется сервер даже не видит клиента... Требуется сделать так, что бы все компьютеры из первого офиса (192.168.0.х) видели все компьютеры из второго офиса (172.17.10.х) по их внутренним IP. Помогите пожалуйста.



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

ifconfig, ip route на клиенте покажи и на сервере желательно тоже, только не выкидывай все полотно показывай только подсети относящиеся к VPN

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

в общем твоя задача делится на несколько пунктов:

  • настройка соединения клиент сервер - это у тебя получилось
  • настройка роутов VPN подсетей на сервере и клиенте - 1. они пушатся из конфига сервера, 2. добавляются при поднятии интерфейса
  • настройка роутов на удаленные подсети на клиенте и сервере - что-то похожее на ip route add удаленная_подсеть/маска via ip_vpn_интерфейса
  • настройка форварда пакетов на сервере и клиенте что бы из подсети VPN уходили пакеты в локальные сети
jasper88
()
Ответ на: комментарий от anc

это да ;), а вообще перед началом деланья чего либо, необходимо хоть в голове разобрать что и зачем нужно делать и примерно как...это к ТС-у

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

ipconfig клиента:

Ethernet adapter VPN:

   DNS-суффикс подключения . . . . . :
   Описание. . . . . . . . . . . . . : TAP-Windows Adapter V9
   Физический адрес. . . . . . . . . : 00-FF-D2-F6-FC-5E
   DHCP включен. . . . . . . . . . . : Да
   Автонастройка включена. . . . . . : Да
   Локальный IPv6-адрес канала . . . : fe80::bda9:3f26:1555:e3fa%17(Основной)
   IPv4-адрес. . . . . . . . . . . . : 10.8.0.6(Основной)
   Маска подсети . . . . . . . . . . : 255.255.255.252
   Аренда получена. . . . . . . . . . : 6 февраля 2016 г. 12:16:15
   Срок аренды истекает. . . . . . . . . . : 5 февраля 2017 г. 12:16:15
   Основной шлюз. . . . . . . . . :
   DHCP-сервер. . . . . . . . . . . : 10.8.0.5
   IAID DHCPv6 . . . . . . . . . . . : 453050322
   DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-1E-36-26-B7-D4-3D-7E-B9-DF-74

   DNS-серверы. . . . . . . . . . . : fec0:0:0:ffff::1%1
                                       fec0:0:0:ffff::2%1
                                       fec0:0:0:ffff::3%1
   NetBios через TCP/IP. . . . . . . . : Включен

Ethernet adapter Ethernet:

   DNS-суффикс подключения . . . . . :
   Описание. . . . . . . . . . . . . : Контроллер семейства Realtek PCIe GBE
   Физический адрес. . . . . . . . . : D4-3D-7E-B9-DF-74
   DHCP включен. . . . . . . . . . . : Да
   Автонастройка включена. . . . . . : Да
   Локальный IPv6-адрес канала . . . : fe80::4125:f642:a491:bbc6%4(Основной)
   IPv4-адрес. . . . . . . . . . . . : 172.17.10.101(Основной)
   Маска подсети . . . . . . . . . . : 255.255.255.0
   Аренда получена. . . . . . . . . . : 6 февраля 2016 г. 11:55:31
   Срок аренды истекает. . . . . . . . . . : 6 февраля 2016 г. 13:55:41
   Основной шлюз. . . . . . . . . : 172.17.10.1
   DHCP-сервер. . . . . . . . . . . : 172.17.10.1
   IAID DHCPv6 . . . . . . . . . . . : 164904318
   DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-1E-36-26-B7-D4-3D-7E-B9-DF-74

   DNS-серверы. . . . . . . . . . . : 172.17.10.1
   NetBios через TCP/IP. . . . . . . . : Включен
route print клиента:
IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0      172.17.10.1    172.17.10.101     20
         10.8.0.1  255.255.255.255         10.8.0.5         10.8.0.6     20
         10.8.0.4  255.255.255.252         On-link          10.8.0.6    276
         10.8.0.6  255.255.255.255         On-link          10.8.0.6    276
         10.8.0.7  255.255.255.255         On-link          10.8.0.6    276
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      172.17.10.0    255.255.255.0         On-link     172.17.10.101    276
    172.17.10.101  255.255.255.255         On-link     172.17.10.101    276
    172.17.10.255  255.255.255.255         On-link     172.17.10.101    276
      192.168.0.0    255.255.255.0         10.8.0.5         10.8.0.6     20
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link          10.8.0.6    276
        224.0.0.0        240.0.0.0         On-link     172.17.10.101    276
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link          10.8.0.6    276
  255.255.255.255  255.255.255.255         On-link     172.17.10.101    276
=================================================================

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

ifconfig сервера:

eth0      Link encap:Ethernet  HWaddr 00:17:31:cd:99:fb
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::217:31ff:fecd:99fb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:259963088 errors:0 dropped:36 overruns:0 frame:0
          TX packets:186956166 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4049605903 (3.7 GiB)  TX bytes:1326144805 (1.2 GiB)
          Interrupt:17 Base address:0xd400

eth1      Link encap:Ethernet  HWaddr 00:80:48:23:74:55
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::280:48ff:fe23:7455/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:191378051 errors:0 dropped:0 overruns:0 frame:0
          TX packets:258713916 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1500161841 (1.3 GiB)  TX bytes:2577524220 (2.4 GiB)
          Interrupt:20 Base address:0xd800

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.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:33 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:2628 (2.5 KiB)  TX bytes:924 (924.0 B)
ip route на сервере:
default via 192.168.1.1 dev eth0  proto static
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
192.168.0.0/24 dev eth1  proto kernel  scope link  src 192.168.0.1
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.11

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

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

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

пуш(в server.conf):

push "route 192.168.0.0 255.255.255.0"
push "route 192.168.1.0 255.255.255.0"

в конфиг фаервола:

# rule for openvpn <-> lan network
-A FORWARD -s 192.168.0.0/24 -d 10.8.0.0/24 -i eth0 -o tun0 -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -d 192.168.0.0/24 -i tun0 -o eth0 -j ACCEPT

-A FORWARD -s 192.168.1.0/24 -d 10.8.0.0/24 -i eth1 -o tun0 -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -d 192.168.1.0/24 -i tun0 -o eth1 -j ACCEPT

что-то в этом роде, но перепроверь, может где-то я промохнусь)

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

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

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

Спасибо!

Внес кое какие изменения в конфиг:

mode server
tls-server
topology subnet
А так же выполнил команды:
iptables -I FORWARD -s 192.168.0.0/24 -d 10.8.0.0/24 -i eth1 -o tun0 -j ACCEPT
iptables -I FORWARD -s 10.8.0.0/24 -d 192.168.0.0/24 -i tun0 -o eth1 -j ACCEPT
iptables -I FORWARD -s 192.168.1.0/24 -d 10.8.0.0/24 -i eth0 -o tun0 -j ACCEPT
iptables -I FORWARD -s 10.8.0.0/24 -d 192.168.1.0/24 -i tun0 -o eth0 -j ACCEPT
Не знаю что сработало, но теперь клиент начал пинговать внутренние адреса в офисе (192.168.0.0) НО! пингуются только некоторые адреса! Если адрес не пингутеся tcpdump пишет: ICMP echo request.
Вот это для меня загадка, некоторые компы пингуются, некоторые нет... Еще в офисе стоит роутер который раздает wi-fi, он тоже пингутеся и даже в веб морду заходит.

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

Не знаю что сработало, но теперь клиент начал пинговать внутренние адреса в офисе (192.168.0.0) НО! пингуются только некоторые адреса! Если адрес не пингутеся tcpdump пишет: ICMP echo request.

а где ты tcpdump запускаешь?

Это в конфиг сервера добавил?

пуш(в server.conf):

push «route 192.168.0.0 255.255.255.0»
push «route 192.168.1.0 255.255.255.0»

на сервере еще добавь роут для подсетей 172.17.10.0/24:

ip route add 172.17.10.0/24 via 10.8.0.1

и попробуй пропинговать с сервера адреса клиентской подсети

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

Вот это для меня загадка, некоторые компы пингуются, некоторые нет... Еще в офисе стоит роутер который раздает wi-fi, он тоже пингутеся и даже в веб морду заходит.

Фаерволл скорее всего на компах из других (нелокальных) сетей не пускает.

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

а где ты tcpdump запускаешь?

на сервере: tcpdump -i tun0

Это в конфиг сервера добавил?

пуш(в server.conf):
push «route 192.168.0.0 255.255.255.0»
push «route 192.168.1.0 255.255.255.0»

Пока что вручную на клиенте выполнил route add 192.168.0.0 mask 255.255.255.0 10.8.0.5 if 17

на сервере еще добавь роут для подсетей 172.17.10.0/24:

ip route add 172.17.10.0/24 via 10.8.0.1

Сервер пингует клиент по адресу 172.17.10.101, но другие компы в сети не пингует (у них шлюзом является роутер 172.17.10.1)

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

хм, точно, брандмауэры не везде отключены были, как я сразу не догадался))

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

Итак, клиент пингует сеть сервера (192.168.0.0).
На машине которая находится в одной локалке с клиентом добавляю маршрут:

route add 10.8.0.0 mask 255.255.255.0 172.17.10.101
Машина пингует клиента по адресу: 10.8.0.2
Затем на этой же машине добавлю маршрут:
route add 192.168.0.0 mask 255.255.255.0 10.8.0.2
Далее пингую на этой машине адреса 192.168.0.0 - тишина
Что не дописал?

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

И вот это route add 10.8.0.0 mask 255.255.255.0 172.17.10.101 я думаю не надо.

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

Я уже запутался, что у тебя не пашет. tracert запусти с проблемного, увидишь, где рубится. Проблема или в маршрутах или в фаерволе.

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

И вообще, кто использует голый iptables? Есть нормальная надстройка firehol.

Вот тебе простейший конфиг. Все в одном месте, все видно.

#IN

interface eth0 local
    client all accept
    server all accept

interface eth1 internet
    protection strong
    server "icmp ovpn" accept
    client all accept
    server all drop

interface tun0 vpn
    policy accept

#FORWARD

router local2inet inface eth0 outface eth1
    masquerade
    route all accept

router local2vpn inface eth0 outface tun0
    route all accept

router vpn2local inface tun0 outface eth0
    route "rdp icmp ssh http https vnc" accept

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

на компе в сети клиента:

Трассировка маршрута к 192.168.0.7 с максимальным числом прыжков 30

  1    44 ms     *        3 ms  pc [172.17.10.101]
  2    52 ms    47 ms    40 ms  10.8.0.1
  3     *        *        *     Превышен интервал ожидания для запроса.
  4     *        *        *     Превышен интервал ожидания для запроса.
на сервере: traceroute 172.17.10.101 вообще не идет)

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

ты попал на сервер, судя по трасе, дальше смотри или правила фаервола (форвард) или маршруты на сервере, я уже как-то тоже запутался что работает, а что нет.. там все элементарно вроде +-

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

Добавил правила:

iptables -I FORWARD -i eth0 -j ACCEPT
iptables -I FORWARD -o eth0 -j ACCEPT

iptables -I FORWARD -i eth1 -j ACCEPT
iptables -I FORWARD -o eth1 -j ACCEPT

iptables -I FORWARD -i tun0 -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT
С маршрутами вроде разобрался более менее, теперь компы из локальной сети Клиента (172.17.10.0) заходят в локальную сеть Сервера (192.168.0.0).
Но в обратном направлении система не работает, сервер даже клиента (10.8.0.2) пинговать не хочет.
вот маршруты на сервере, что не так?
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth0
10.8.0.0        10.8.0.1        255.255.255.0   UG        0 0          0 tun0
10.8.0.0        0.0.0.0         255.255.255.0   U         0 0          0 tun0
172.17.10.0     10.8.0.2        255.255.255.0   UG        0 0          0 tun0
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

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

Попробуй не 10.8.0.2 пинговать, а 10.8.0.1 При использовании tun интерфейсу выдается 4 ip адреса. Я не помню какой там какой.

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

Короче я психанул:

iptables -t nat -F 
Все заработало, всем спасибо!)

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

Ну судя по последнему комменту ТС все уже ОК, тоже сливаюсь)

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