par dotazu na VPN

Miroslav Lachman 000.fbsd at quip.cz
Tue Apr 15 01:39:55 CEST 2008


Nejake drobne zkusenosti s OpenVPN uz mam, ale ted jsem pri migraci 
jednoho linuxoveho serveru narazil na problem, ze i kdyz jsem prenesl 
klientsky konfigurak OpenVPN na FreeBSD (vcetne certifikatu / klice), 
tak to nefunguje tak, jako na tom puvodnim serveru.
Abych byl presnejsi - OpenVPN nastartuje, vytvori se mi v systemu 
zarizeni tun0 a komunikace z FreeBSD serveru skrz ten tunel funguje.
Co nefunguje je to, ze se skrz ten VPN tunel nedostanou klienti z LAN.
FreeBSD server ma bge0 do internetu, bge1 do LAN, tun0 do teto zminene 
VPN a tun1 pro jinou VPN (ta je na tomto serveru spustena jako OpenVPN 
server a funguje bezproblemu)

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
         inet 10.8.0.226 --> 10.8.0.225 netmask 0xffffffff
         Opened by PID 827

bge1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
         options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
         ether 00:0a:e4:84:77:4e
         inet 10.1.1.1 netmask 0xffffff00 broadcast 10.1.1.255
         media: Ethernet autoselect (1000baseTX <full-duplex>)
         status: active

Klienti v LAN maji adresy v rozsahu 10.1.1.0/24 a meli by byt schopni se 
dostat napriklad na 10.8.0.1, ale ani na ping jim neprijde zadna 
odpoved. (firewallem by to byt nemelo, zkousel jsem to i se shozenym 
firewallem)
Ping primo ze zmineneho FreeBSD serveru funguje OK:
# ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1): 56 data bytes
64 bytes from 10.8.0.1: icmp_seq=0 ttl=64 time=4.244 ms
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=4.169 ms

Zaznamy do routovaci tabulky pridava samo OpenVPN (server posila PUSH, 
ale ja nemam nad tou serverovou stranou zadnou kontrolu)

Zrejme prehlizim nejakou elementarni vec v konfiguraci a tak bych byl 
rad, kdyby me nekdo postrcil spravnym smerem.

# sysctl net.inet.ip.forwarding
net.inet.ip.forwarding: 1

# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif
default            xxx.xxx.xx.xx      UGS         0   216797   bge0
10.1.1.0/24        link#2             UC          0        0   bge1
10.1.1.37          00:16:17:6c:31:50  UHLW        1    11656   bge1
10.1.1.39          00:18:f3:06:88:cb  UHLW        1    18668   bge1
10.1.1.255         ff:ff:ff:ff:ff:ff  UHLWb       1      263   bge1
10.1.2.0/24        10.1.2.2           UGS         0     3538   tun1
10.1.2.2           10.1.2.1           UH          1        0   tun1
10.8.0.1/32        10.8.0.225         UGS         0       76   tun0
10.8.0.225         10.8.0.226         UH          2        0   tun0
127.0.0.1          127.0.0.1          UH          0      392    lo0
172.16.16.2        172.16.16.2        UH          0   414096    lo1
xxx.xxx.xx.yy/30   link#1             UC          0        0   bge0
xxx.xxx.xx.zz      00:06:28:0d:43:ff  UHLW        2        0   bge0
xxx.xxx.xx.xx      00:0a:e4:84:77:4f  UHLW        1      334    lo0

V tomhle vypisu mi prijde vsechno v poradku.

Nejsem ted bohuzel v te lokalni siti, abych to mohl znovu overit, ale 
pokud si to z predeslych dnu jeste dobre pamatuju, tak tcpdump na tun0 
videl packety, ktere byly posilane z lokalni site, ale neprichazela na 
ne z druhe strany odpoved (v tomhle uz se ztracim)

Co je tedy jeste potreba udelat, aby se klienti z LAN na bge1 dostali 
skrz OpenVPN na tun0 na adresu 10.8.0.1?


Druhy dotaz se pak tyka uplne jineho typu VPN na jinem serveru - 
konkretne pptp VPN nastavene na nejakem routeru Mikrotik. Jediny udaj, 
ktery jsem dostal k dispozici od protejsi strany, je login, heslo a 
verejna IP toho routeru, ktery zajistuje VPN.
Zkousel jsem mnoho konfiguraci mpd-5.1 (net/mpd5) co jsem vygooglil, ale 
zadny prikald nebyl funkcni. Nejblize jsem se dostal v podstate s 
vychozim prikladem:

startup:
         set console self 0.0.0.0 5005
         set user admin somepass
         set console open

default:
         load pptp_client

pptp_client:
#
# PPTP client: only outgoing calls, auto reconnect,
# ipcp-negotiated address, one-sided authentication,
# default route points on ISP's end
#
         create bundle static Pro0
         set iface route 192.168.0.0/24
         set ipcp ranges 0.0.0.0/0 0.0.0.0/0

         create link static L1 pptp
         set link action bundle Pro0
         set auth authname "MyLogin"
         set auth password "MyPass"
         set link max-redial 3
         set pptp peer WW.XX.YY.ZZ
         set pptp disable windowing
         open

S tim ovsem pokazde dostanu odpoved "bad username or password" i kdyz 
mam potvrzeno z jineho stroje, ze login a heslo je spravne (v uvedenem 
prikladu je MyLogin a MyPass, ale v konfigu mam skutecny login a heslo i 
skutecnou IP adresu)

[L1] LCP: state change Ack-Sent --> Opened
[L1] LCP: auth: peer wants CHAP, I want nothing
[L1] LCP: LayerUp
[L1] CHAP: rec'd CHALLENGE #1 len: 29
[L1]   Name: "MikroTik"
[L1] CHAP: Using authname "MyLogin"
[L1] CHAP: sending RESPONSE #1 len: 60
[L1] CHAP: rec'd FAILURE #1 len: 79
[L1]   MESG: E=691 R=0 C=8005258D6F3521B9817FF1FEF230D334 V=3 M=bad 
username or password
[L1] LCP: authorization failed
[L1] LCP: parameter negotiation failed
[L1] LCP: state change Opened --> Stopping
[L1] LCP: SendTerminateReq #15
[L1] LCP: LayerDown
[L1] LCP: rec'd Terminate Request #2 (Stopping)
[L1] LCP: SendTerminateAck #16
[L1] LCP: rec'd Terminate Ack #15 (Stopping)
[L1] LCP: state change Stopping --> Stopped
[L1] LCP: LayerFinish
[L1] PPTP call terminated
[L1] Link: DOWN event
[L1] Link: giving up after 3 reconnection attempts


Napada me tedy, jestli nahodou nemate nekdo zkusenost s timhle typem 
VPN, ze by tam musel byt nejaky konkretni parametr v konfiguraci, aby se 
spravne dorozumely obe strany na tom loginu a heslu. Pripadne i jiny 
zpusob, nez pres mpd.

Predem diky za jakekoliv tipy vedouci k uspechu :)

Mirek



More information about the Users-l mailing list