hi,
mit folgenden schritten hab ich eine vpn-verbindung mit shrew zu einer fritzbox hinbekommen:
testumgebung (anonymisiert):
"alice" (fritzbox, zu der ich verbinden will):
fritzbox 7270 (fw 54.04.80) ip:192.168.1.1
alice.dyndns.org
"bob" (das bin ich):
ubuntu 9.10
shrew 2.1.4
netzwerk: fritzbox 7240 (192.168.0.1), verbunden über wlan
shrew-config:
n:version:2
n:network-ike-port:500
n:network-mtu-size:1380
n:client-addr-auto:1
n:network-natt-port:4500
n:network-natt-rate:15
n:network-frag-size:540
n:network-dpd-enable:1
n:client-banner-enable:1
n:network-notify-enable:1
n:client-wins-used:0
n:client-wins-auto:1
n:client-dns-used:0
n:client-dns-auto:0
n:client-splitdns-used:0
n:client-splitdns-auto:0
n:phase1-dhgroup:2
n:phase1-keylen:256
n:phase1-life-secs:3600
n:phase1-life-kbytes:0
n:vendor-chkpt-enable:0
n:phase2-keylen:256
n:phase2-life-secs:3600
n:phase2-life-kbytes:0
n:policy-nailed:0
n:policy-list-auto:0
s:network-host:alice.dyndns.org <- dyndns-name von alice
s:client-auto-mode:pull
s:client-iface:virtual
s:network-natt-mode:enable
s:network-frag-mode:enable
s:auth-method:mutual-psk
s:ident-client-type:ufqdn
s:ident-server-type:address
s:ident-client-data:bob@gmx.de <- e-mail-adresse von bob
b:auth-mutual-psk:MTIzNDU2Nzg5MA== <- psk "1234567890" verschlüsselt mit base64
s:phase1-exchange:aggressive
s:phase1-cipher:aes
s:phase1-hash:sha1
s:phase2-transform:esp-aes
s:phase2-hmac:sha1
s:ipcomp-transform:deflate
n:phase2-pfsgroup:2
s:policy-list-include:192.168.1.0 / 255.255.255.0 <- adressbereich von alice
fritzbox-config:
vpncfg {
connections {
enabled = yes;
conn_type = conntype_user;
name = "bob@gmx.de"; /* e-mail-adresse von bob */
always_renew = no;
reject_not_encrypted = no;
dont_filter_netbios = yes;
localip = 0.0.0.0;
local_virtualip = 0.0.0.0;
remoteip = 0.0.0.0;
remote_virtualip = 192.168.1.201; /* ip-adresse für bob */
remoteid {
user_fqdn = "bob@gmx.de"; /* e-mail-adresse von bob */
}
mode = phase1_mode_aggressive;
phase1ss = "all/all/all";
keytype = connkeytype_pre_shared;
key = "1234567890"; /* psk unverschlüsselt */
cert_do_server_auth = no;
use_nat_t = yes;
use_xauth = no;
use_cfgmode = no;
phase2localid {
ipnet {
ipaddr = 192.168.1.0; /* adressbereich von alice */
mask = 255.255.255.0;
}
}
phase2remoteid {
ipaddr = 192.168.1.201; /* ip-adresse für bob */
}
phase2ss = "esp-all-all/ah-none/comp-all/pfs";
accesslist =
"permit ip 192.168.1.0 255.255.255.0 192.168.1.201 255.255.255.255"; /* adressbereich und ip-adresse anpassen*/
}
ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",
"udp 0.0.0.0:4500 0.0.0.0:4500";
}
änderungen in /etc/sysctl.conf
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.eth0.rp_filter=0
net.ipv4.conf.eth1.rp_filter=0
net.ipv4.conf.pan0.rp_filter=0
net.ipv4.conf.tap0.rp_filter=0
änderungen in /etc/sysctl.d/10-network-security.conf
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.eth0.rp_filter=0
net.ipv4.conf.eth1.rp_filter=0
net.ipv4.conf.pan0.rp_filter=0
net.ipv4.conf.tap0.rp_filter=0
->neustart
wenn shrew "tunnel enabled" anzeigt, bringt ein ping auf die fritzbox von alice gewissheit, ob auch tatsächlich was durch den tunnel durchgeht:
ping 192.168.1.1 (bzw. ip-adresse der fritzbox von alice)
-die adressbereiche der beiden netze müssen unterschiedlich sein (hier 192.168.1.0 und 192.168.0.0)
-in der fritzbox von bob müssen keine änderungen vorgenommen werden - möglicherweise ist das bei andern geräten anders
-wenn der tunnel aufgebaut wird, aber kein ping durchkommt, hilft mitunter ein neustart. keine ahnung wo's hängt.
-um sicherzustellen, dass die vpn prinzipiell funktioniert, rate ich zuerst die verbindung über den windows-client zu testen, auch wenns weh tut 😉
-die shrew-config hatte ich vom shrew-windows-client exportiert und direkt nach .ike/sites/ kopiert (ohne zu importieren)
-direkt mit der anleitung von avm gings nicht: http://www.avm.de/de/Service/Service-Portale/Service-Portal/VPN_Interoperabilitaet/15729.php?portal=VPN
-base64-encoder für den psk: http://www.motobit.com/util/base64-decoder-encoder.asp
routing-tabelle vor dem verbindungsaufbau (route -n):
Ziel Router Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 2 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth1
routing-tabelle, wenn verbindung aufgebaut:
Ziel Router Genmask Flags Metric Ref Use Iface
192.168.1.0 192.168.1.201 255.255.255.0 UG 0 0 0 tap0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 tap0
192.168.0.0 0.0.0.0 255.255.255.0 U 2 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth1