Strona 1 z 3

[+] OpenVPN - routing do zdalnej sieci lokalnej

: 24 października 2010, 23:15
autor: poldas
Witam.

Skonfigurowałem OpenVPN w trybie ruter tak, żeby mieć zdalny dostęp do zasobów w pracy.
[INDENT]Adresacja na wirtualnym interfejsie OpenVPN 10.0.3.x
Adresacja zdalnej sieci lokalnej 192.168.3.0[/INDENT]
Przy zestawianiu połączenia przekazywana jest między innymi trasa do rutera w zdalnej sieci LAN trasa:

Kod: Zaznacz cały

push "route 192.168.3.1 255.255.255.255"
Po zestawieniu połączenia mogę sprawdzić poleceniem ping interfejs lokalny zdalnej sieci LAN serwera OpenVPN, ale niestety nie mogę uzyskać połączenia z żadnym innym hostem w zdalnej sieci LAN.

Reasumując, chciałbym żeby serwer OpenVPN, do którego się wdzwaniam, rutował do innych zasobów w sieci firmowej.

Z góry dziękuję za sugestie

: 25 października 2010, 12:40
autor: Cyphermen
  1. Najpierw narysuj schemat sieci jak to wygląda.
  2. Później wklej tutaj polecenie na Windowsie po połączeniu:

    Kod: Zaznacz cały

    route print
  3. Wklej konfig z serwera OpenVPN.
  4. Napisz z jakiego systemu próbujesz się łączyć bo jeśli jest to Windows Vista albo Windows7 to uruchom openvpn z prawami admina.
  5. Pośpiesz się jeśli chcesz szybkiej odpowiedzi bo dzisiaj wcześniej z roboty wychodzę :)

: 25 października 2010, 13:53
autor: poldas
Obrazek

Konfiguracja serwera:

Kod: Zaznacz cały

dev tun
local 192.168.3.100
proto udp
port 17003
user openvpn
group openvpn
ca certs/cacert.pem
cert certs/servercert.pem
key keys/serverkey_bez_hasla.pem
dh dh1024.pem
server 10.0.3.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
keepalive 10 120
comp-lzo
push "route 192.168.3.1 255.255.255.255"debian:~# 
Niestety nie jestem teraz w stanie podać tablicy routingu dla klienta - Windows7. Klient Openvpn jest uruchamiany z prawami administratora.

Jestem w stanie pingować interfejs LAN serwera OpenVPN (192.168.3.100), niestety ping do routera (192.168.3.1) nie odpowiada.

: 25 października 2010, 15:30
autor: Cyphermen
Sprawdź, czy inne maszyny odpowiadają, może ruter ma wyłączone pingi na firewallu dlatego icmp nie odpowiada.
Koniecznie podaj tablicę rutingu i do tego mam nadzieję, że openvpn uruchamiasz klikając prawym na ikonkę i wybierając uruchom jako administrator albo we właściwościach, uruchamiaj jako admin.
Albo daj log z połączenia klienta do openvpn serwera. Klikasz prawym na ikonkę na pasku i wybierasz log czy coś takiego.

Mam jeszcze taki pomysł: Skoro Twój serwer nie jest ruterem tej sieci to wydaje mi się, że dlatego właśnie nie pingujesz nic innego.
Sprawdź tablicę rutingu, przez które urządzenia mają być trasowane pakiety do podsieci 192.168.3.0.

Ja mam inną sytuację bo moim serwerem jest jednocześnie ruter.
Mam nadzieję, że odpowiednie rutingi i naty są porobione na ruterze zdalnym. Że pakiety od sieci 10.0.3.0 mają prawo być przekazywane w sieci wewnętrznej.

: 25 października 2010, 20:43
autor: poldas
Log - klient (uruchamiam na pewno jako administrator)

Kod: Zaznacz cały

Mon Oct 25 20:35:17 2010 OpenVPN 2.1.3 i686-pc-mingw32 [SSL] [LZO2] [PKCS11] built on Aug 20 2010
Mon Oct 25 20:35:17 2010 WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
Mon Oct 25 20:35:17 2010 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Mon Oct 25 20:35:21 2010 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Mon Oct 25 20:35:21 2010 LZO compression initialized
Mon Oct 25 20:35:21 2010 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Mon Oct 25 20:35:21 2010 Socket Buffers: R=[8192->8192] S=[8192->8192]
Mon Oct 25 20:35:21 2010 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Mon Oct 25 20:35:21 2010 Local Options hash (VER=V4): '41690919'
Mon Oct 25 20:35:21 2010 Expected Remote Options hash (VER=V4): '530fdded'
Mon Oct 25 20:35:21 2010 UDPv4 link local: [undef]
Mon Oct 25 20:35:21 2010 UDPv4 link remote: xxx.xxx.xxx.xxx:17003
Mon Oct 25 20:35:21 2010 TLS: Initial packet from xxx.xxx.xxx.xxx:17003, sid=0286145d 546967a1
Mon Oct 25 20:35:22 2010 VERIFY OK: depth=1, /C=PL/ST=zachodniopomorskie/O=xxx/CN=CA_xxx
Mon Oct 25 20:35:22 2010 VERIFY OK: depth=0, /C=PL/ST=zachodniopomorskie/O=xxx/CN=Server_xxx
Mon Oct 25 20:35:23 2010 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Mon Oct 25 20:35:23 2010 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Oct 25 20:35:23 2010 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Mon Oct 25 20:35:23 2010 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Oct 25 20:35:23 2010 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Mon Oct 25 20:35:23 2010 [Server_xxx] Peer Connection Initiated with xxx.xxx.xxx.xxx:17003
Mon Oct 25 20:35:25 2010 SENT CONTROL [Server_xxx]: 'PUSH_REQUEST' (status=1)
Mon Oct 25 20:35:25 2010 PUSH: Received control message: 'PUSH_REPLY,route 192.168.3.1 255.255.255.255,route 10.0.3.1,topology net30,ping 10,ping-restart 120,ifconfig 10.0.3.6 10.0.3.5'
Mon Oct 25 20:35:25 2010 OPTIONS IMPORT: timers and/or timeouts modified
Mon Oct 25 20:35:25 2010 OPTIONS IMPORT: --ifconfig/up options modified
Mon Oct 25 20:35:25 2010 OPTIONS IMPORT: route options modified
Mon Oct 25 20:35:25 2010 ROUTE default_gateway=192.168.1.1
Mon Oct 25 20:35:25 2010 TAP-WIN32 device [Połączenie lokalne 2] opened: \\.\Global\{E788015E-496D-40B6-917D-D47109DA20B2}.tap
Mon Oct 25 20:35:25 2010 TAP-Win32 Driver Version 9.7 
Mon Oct 25 20:35:25 2010 TAP-Win32 MTU=1500
Mon Oct 25 20:35:25 2010 Notified TAP-Win32 driver to set a DHCP IP/netmask of 10.0.3.6/255.255.255.252 on interface {E788015E-496D-40B6-917D-D47109DA20B2} [DHCP-serv: 10.0.3.5, lease-time: 31536000]
Mon Oct 25 20:35:25 2010 Successful ARP Flush on interface [21] {E788015E-496D-40B6-917D-D47109DA20B2}
Mon Oct 25 20:35:30 2010 TEST ROUTES: 2/2 succeeded len=2 ret=1 a=0 u/d=up
Mon Oct 25 20:35:30 2010 C:\WINDOWS\system32\route.exe ADD 192.168.3.1 MASK 255.255.255.255 10.0.3.5
Mon Oct 25 20:35:30 2010 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=30 and dwForwardType=4
Mon Oct 25 20:35:30 2010 Route addition via IPAPI succeeded [adaptive]
Mon Oct 25 20:35:30 2010 C:\WINDOWS\system32\route.exe ADD 10.0.3.1 MASK 255.255.255.255 10.0.3.5
Mon Oct 25 20:35:30 2010 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=30 and dwForwardType=4
Mon Oct 25 20:35:30 2010 Route addition via IPAPI succeeded [adaptive]
Mon Oct 25 20:35:30 2010 Initialization Sequence Completed
Tablica routingu - klient

Kod: Zaznacz cały

Miejsce docelowe w sieci   Maska sieci      Brama          Interfejs Metryka
          0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.3     20
         10.0.3.1  255.255.255.255         10.0.3.5         10.0.3.6     30
         10.0.3.4  255.255.255.252         On-link          10.0.3.6    286
         10.0.3.6  255.255.255.255         On-link          10.0.3.6    286
         10.0.3.7  255.255.255.255         On-link          10.0.3.6    286
        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
      192.168.1.0    255.255.255.0         On-link       192.168.1.3    276
      192.168.1.3  255.255.255.255         On-link       192.168.1.3    276
    192.168.1.255  255.255.255.255         On-link       192.168.1.3    276
      192.168.3.1  255.255.255.255         10.0.3.5         10.0.3.6     30
     192.168.56.0    255.255.255.0         On-link      192.168.56.1    276
     192.168.56.1  255.255.255.255         On-link      192.168.56.1    276
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    276
        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      192.168.56.1    276
        224.0.0.0        240.0.0.0         On-link       192.168.1.3    276
        224.0.0.0        240.0.0.0         On-link          10.0.3.6    286
  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      192.168.56.1    276
  255.255.255.255  255.255.255.255         On-link       192.168.1.3    276
  255.255.255.255  255.255.255.255         On-link          10.0.3.6    286
tablica routingu serwer

Kod: Zaznacz cały

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.3.2        *               255.255.255.255 UH    0      0        0 tun0
192.168.3.0     *               255.255.255.0   U     0      0        0 eth0
10.0.3.0        10.0.3.2        255.255.255.0   UG    0      0        0 tun0
default         192.168.3.1     0.0.0.0         UG    0      0        0 eth0
iptables - serwer OpenVPN

Kod: Zaznacz cały

debian:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Router odpowiada na pingi jeśli przychodzą z sieci lokalnej np z serwera OpenVPN, domyślam się że chodzi o NATowanie na serwerze OpenVPN a raczej jego brak lub 2 wyjście brak trasy na routerze do sieci 10.0.3.0

: 26 października 2010, 08:26
autor: Cyphermen
No właśnie tak ci napisałem, ze brak trasy lib natowanie, serwer nie ma włączonego ip_forward chyba dlatego nie przekazuje pakietów. Gdybys łączył się bezposrednio do routera to by to działało.
na serwerze możesz spróbować

Kod: Zaznacz cały

iptables -t nat -I POSTROUTING -s 10.0.3.0/24 -j MASQUERADE
a jak nie pomoże to na routerze dodaj trase do sieci

Kod: Zaznacz cały

10.0.3.0/24  przez brame 192.168.3.100
nie podam reguły bo nie wiem jaki to jest router

: 26 października 2010, 14:08
autor: sector
Użyj sobie jeszcze polecenia

Kod: Zaznacz cały

pathping ip
pod Windowsem i zobacz na czym Ci staje Twój ping. Wtedy będziesz wiedział dokładnie co jest nie tak i gdzie tkwi problem. Zobaczysz przez co przechodzi, a przez co nie, ping.

: 26 października 2010, 21:13
autor: poldas
Wygląda na to, że polecenie:

Kod: Zaznacz cały

iptables -t nat -I POSTROUTING -s 10.0.3.0/24 -j MASQUERADE
Załatwiło sprawę.

Jeszcze jedno po jakimś czasie...

Kod: Zaznacz cały

 cat /proc/sys/net/ipv4/ip_forward
zwraca 0, chociaż wcześniej ustawiałem na 1...

Mam jeszcze jeden problem, a mianowicie klient na w2k3 nie otrzymuje ścieżek...

Kod: Zaznacz cały

FlushIpNetTable failed on interface [196612] 
Będę wdzięczny za sugestie

: 26 października 2010, 22:29
autor: sector
Bo po restarcie ta wartość wraca do domyślnej. Jeśli chcesz by nawet po restarcie było 1 to musisz zmienić tą wartość w pliku

Kod: Zaznacz cały

/etc/sysctl.conf:
net.ipv4.ip_forward = 1

: 27 października 2010, 08:34
autor: Cyphermen
W Debianie to chyba raczej będzie:

Kod: Zaznacz cały

/proc/sys/net/ipv4/conf/all/forwarding
bo nie mam u siebie pliku ip_forward, takowy miałem na Slacku bodajże ale już nie pamiętam.

Zawsze możesz dodać do:

Kod: Zaznacz cały

rc.local
takowy wpis:

Kod: Zaznacz cały

 cat 1 > /proc/sys/net/ipv4/ip_forward
Co do Windows 2000 takowy błąd pokazuje się, gdy masz włączoną na serwerze usługę rutingu i zdalnego łączenia.
Z tego co pamiętam można to zignorować i dalej powinno wszystko działać, to ma jakiś związek z ARP. Sprawdź czy aby na pewno nie otrzymał ścieżek i czy nie może łączyć się w zdalnej sieci.