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:
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
- Najpierw narysuj schemat sieci jak to wygląda.
- Później wklej tutaj polecenie na Windowsie po połączeniu:
- Wklej konfig z serwera OpenVPN.
- Napisz z jakiego systemu próbujesz się łączyć bo jeśli jest to Windows Vista albo Windows7 to uruchom openvpn z prawami admina.
- Pośpiesz się jeśli chcesz szybkiej odpowiedzi bo dzisiaj wcześniej z roboty wychodzę
: 25 października 2010, 13:53
autor: poldas
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
nie podam reguły bo nie wiem jaki to jest router
: 26 października 2010, 14:08
autor: sector
Użyj sobie jeszcze polecenia
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...
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
: 27 października 2010, 08:34
autor: Cyphermen
W Debianie to chyba raczej będzie:
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:
takowy wpis:
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.