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