[BSD] VPN (racoon+sl2tps/win2k-xp)

Kollar Csaba csaba.kollar at enternet.hu
2007. Feb. 6., K, 21:59:49 CET


Sziasztok!

(hosszu lesz :)

Win2k/XP beepitett "l2tp over ipsec" kliensekkel mukodo vpn
szervert szeretnek csinalni freebsd alapokon, roadwarrior usereknek. 

Rovid olvasgatas utan arra jutottam hogy racoon es sl2tps lesz a 
baratom. Eleg konnyen osszejott a dolog, de sajnos a szivasok akkor 
jottek amikor NAT mogott levo win -el probaltam csatlakozni (ami ugye 
eleg gyakori). Mar itt megkerdezem hogy tud e valaki egyeb
megoldast (fontos hogy mukodjon mindenfele 3rd party sw
nelkul, mert amugy tudom hogy jo dolog az openvpn, meg a cisco
pix, stb...). Ha igen, ne is olvasson tovabb, hanem irja meg :)

Szoval, megjobban beleastam magam a racoon -ba, es talaltam egy
patch -et (ipsec/nat traversal for freebsd6). A racoon -os sracok
csinaltak, az ipsec-tools portnal (abban van a racoon) make
install utan irjak is mint informaciot. Feltettem, es ezen plusz 
opciokkal forditottam egy uj kernelt:

options         IPSEC
options         IPSEC_ESP
options         IPSEC_NAT_T

Aztan csinaltam meg ilyet is:

/etc/ipsec.conf:
spdadd VPN_SERVER_IP[1701] 0.0.0.0/0 any -P out ipsec esp/transport//require;
spdadd 0.0.0.0/0 VPN_SERVER_IP[1701] any -P in ipsec esp/transport//require;

/etc/rc.conf:
ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"

Elvileg a NAT_T patch lenne hivatott megoldani a problemat,
illetve a patcheles utan hasznalhato "nat_traversal on" racoon
config opcio. Ennek ellenere tovabbra sem mukodik a dolog.

Connection log:

2007-02-06 21:27:57: INFO: VPN_SERVER_IP[4500] used as isakmp port (fd=5)
2007-02-06 21:27:57: INFO: VPN_SERVER_IP[4500] used for NAT-T
2007-02-06 21:27:57: INFO: VPN_SERVER_IP[500] used as isakmp port (fd=6)
2007-02-06 21:27:57: INFO: VPN_SERVER_IP[500] used for NAT-T
2007-02-06 21:28:05: INFO: respond new phase 1 negotiation: VPN_SERVER_IP[500]<=>CLIENT_PUBLIC_IP[500]
2007-02-06 21:28:05: INFO: begin Identity Protection mode.
2007-02-06 21:28:05: INFO: received broken Microsoft ID: MS NT5 ISAKMPOAKLEY
2007-02-06 21:28:05: INFO: received Vendor ID: FRAGMENTATION
2007-02-06 21:28:05: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02
2007-02-06 21:28:05: INFO: Selected NAT-T version: draft-ietf-ipsec-nat-t-ike-02
2007-02-06 21:28:05: INFO: Hashing VPN_SERVER_IP[500] with algo #1
2007-02-06 21:28:05: INFO: NAT-D payload #0 verified
2007-02-06 21:28:05: INFO: Hashing CLIENT_PUBLIC_IP[500] with algo #1
2007-02-06 21:28:05: INFO: NAT-D payload #1 doesn't match
2007-02-06 21:28:05: INFO: NAT detected: PEER
2007-02-06 21:28:05: INFO: Hashing CLIENT_PUBLIC_IP[500] with algo #1
2007-02-06 21:28:05: INFO: Hashing VPN_SERVER_IP[500] with algo #1
2007-02-06 21:28:05: INFO: Adding remote and local NAT-D payloads.
2007-02-06 21:28:05: INFO: NAT-T: ports changed to: CLIENT_PUBLIC_IP[4500]<->VPN_SERVER_IP[4500]
2007-02-06 21:28:05: INFO: KA list add: VPN_SERVER_IP[4500]->CLIENT_PUBLIC_IP[4500]
2007-02-06 21:28:05: ERROR: Expecting IP address type in main mode, but FQDN.
2007-02-06 21:28:05: ERROR: invalid ID payload.
2007-02-06 21:28:06: ERROR: Expecting IP address type in main mode, but FQDN.
2007-02-06 21:28:06: ERROR: invalid ID payload.
.....

A vege ismetlodik parszor, aztan a kliens timeout miatt bont.
Viszont NAT -olt kliens nelkul tokeletesen mukodik.
Gyanura ad okot termeszetesen "NAT-D payload #1 doesn't match"
meg a vegen az ERROR -ok, viszont nem talaltam ezekkel
kapcsolatban hasznalhato infot.

A racoon.conf igy nez ki:

#########################################################

path pre_shared_key "/usr/local/etc/racoon/psk.txt" ;

log notify;

padding
{
    maximum_length 20;
    randomize off;
    strict_check off;
    exclusive_tail off;
}

listen
{
     isakmp VPN_SERVER_IP [500];
     isakmp_natt VPN_SERVER_IP [4500];
}

remote anonymous {
    exchange_mode main;
    generate_policy off;
    nat_traversal on;
    proposal_check obey;
    proposal {
        encryption_algorithm 3des;
        hash_algorithm md5;
        authentication_method pre_shared_key;
        dh_group modp1024;
        }
}

sainfo anonymous {
    pfs_group modp1024;
    encryption_algorithm aes,blowfish,cast128,3des;
    authentication_algorithm hmac_sha256,hmac_sha1,hmac_md5;
    compression_algorithm deflate;
}

Az sl2tps -el nem akarok farasztani senkit, az biztosan mukodik,
az ipsec -nel akad el a dolog ugy tunik :(

-- 
Chal



További információk a(z) BSD levelezőlistáról