Ik wil OpenVPN adressen alloceren voor mijn clients, hiervoor wil ik mijn bestaande /64 IPv6 range van XS4ALL gebruiken. Ik heb op een aantal sites gelezen dat je het beste je bestaande range kan subnetten naar een /112 voor de clients. So far, not much progress... Mijn setup voor IPv4 werkt al erg mooi voor een jaar, maar nu wil ik ook IPv6 adressen gebruiken. Dit wil ik alloceren via de CCD manier.
...
Ik gebruik OpenVPN 2.4.0-6+deb9u2 op Raspbian 9 (Stretch), wat dan dus draait op een Raspberry Pi 3B+.
...
Ik draai zowel een tunnel via UDP als TCP. Ik gebruik mijn UDP tunnel voor het experimenteren met IPv6. Het volgende heb ik al geprobeerd.
Mijn oude config met alleen IPv4 (enige verschil is dat het TCP is, IPv6 config is IPv4 + IPv6) ziet er als volgt uit.
Het volgende heb ik nu voor mijn UDP (IPv4 + IPv6) tunnel. De indented lines zijn de lines die toegevoegd zijn. Sommige lines zijn commented omdat ik ze (nog) niet nodig heb.
2001:aaaa:bbbb:1::/64 = Het subnet dat ik van XS4ALL heb gekregen.
2001:aaaa:bbbb:1:10:1:1::/112 = Het subnet dat ik voor mijn clients wil gebruiken (direct verbindbaar met 'de wereld').
Mijn mobiel heeft al een IPv6 adres via de UDP tunnel, door deze CCD config.
eth0 is verbonden met het internet, die heb ik een vast IPv6 adres gegeven.
Ik heb het volgende verder in sysctl.conf.
Mijn mobiel die verbonden is via de UDP (IPv4 + IPv6) tunnel heeft alleen internet via IPv4. Ik zie in iptables geen drops, ook geen accepts for that matter in de FORWARD chain. Client en server kunnen elkaar niet pingen, internet connectie via IPv6 is voor de client ook niet mogelijk.
Een paar configs/blogs die ik gecheckt heb.
https://community.openvpn.net/openvpn/wiki/IPv6
https://blog.apnic.net/2017/06/09/using-openvpn-ipv6/
https://cuzimageek.wordpr...6/09/21/openvpn-and-ipv6/
https://feeding.cloud.gee...v6-and-openvpn-on-linode/
https://techblog.synagila...-a-ipv6-tunnel-over-ipv4/
https://blog.kmp.or.at/ipv6-enabled-openvpn/
https://tomsalmon.eu/2013/04/openvpn-ipv6-with-tun-device/
https://blog.angenieux.in...n-ipv4-ipv6-nat-sans-ndp/
https://forums.openvpn.net/viewtopic.php?t=21051
https://www.bjoerns-techblog.de/2017/07/openvpn-und-ipv6/
Hoewel ze allemaal nuttig zijn en ik de benodigde config changes daar wel uit kan halen, werkt het alsnog niet. Mijn guess is dat het met routing te maken heeft, met name hoe de routes ingesteld staan in de server config.
Dit staat in de openvpn.log bijvoorbeeld.
Iemand tips?
...
...
Ik gebruik OpenVPN 2.4.0-6+deb9u2 op Raspbian 9 (Stretch), wat dan dus draait op een Raspberry Pi 3B+.
...
Ik draai zowel een tunnel via UDP als TCP. Ik gebruik mijn UDP tunnel voor het experimenteren met IPv6. Het volgende heb ik al geprobeerd.
Mijn oude config met alleen IPv4 (enige verschil is dat het TCP is, IPv6 config is IPv4 + IPv6) ziet er als volgt uit.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| local 10.1.0.1 port 1194 port-share 127.0.0.1 443 proto tcp dev tun ca server/example.com/pki/ca.crt cert server/example.com/pki/issued/vpn.example.com.crt key server/example.com/pki/private/vpn.example.com.key dh server/example.com/dh.pem tls-auth server/example.com/ta.key 0 crl-verify server/example.com/pki/crl.pem server 10.1.1.0 255.255.255.0 push "route 10.1.0.0 255.255.255.0" client-config-dir server/example.com/ccd ccd-exclusive topology subnet learn-address /usr/local/sbin/learn-address.sh script-security 2 push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 10.1.0.1" push "dhcp-option DOMAIN home.lan" push "dhcp-option DOMAIN home.vpn" keepalive 10 30 remote-cert-tls client auth SHA256 cipher AES-128-GCM tls-cipher TLS-DHE-RSA-WITH-AES-128-GCM-SHA256 tls-version-min 1.2 or-highest comp-lzo no push "comp-lzo no" user openvpn group nogroup persist-key persist-tun status /var/log/openvpn-status.log log-append /var/log/openvpn.log verb 3 sndbuf 0 rcvbuf 0 push "sndbuf 0" push "rcvbuf 0" |
Het volgende heb ik nu voor mijn UDP (IPv4 + IPv6) tunnel. De indented lines zijn de lines die toegevoegd zijn. Sommige lines zijn commented omdat ik ze (nog) niet nodig heb.
2001:aaaa:bbbb:1::/64 = Het subnet dat ik van XS4ALL heb gekregen.
2001:aaaa:bbbb:1:10:1:1::/112 = Het subnet dat ik voor mijn clients wil gebruiken (direct verbindbaar met 'de wereld').
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
| local 10.1.0.1
#local 2001:aaaa:bbbb:1:10:1:0:1 # Is voor IPv6 socket (activeer ik later)
port 1194
proto udp
#proto udp6 # Is voor IPv6 socket (activeer ik later)
dev tun
ca server/example.com/pki/ca.crt
cert server/example.com/pki/issued/vpn.example.com.crt
key server/example.com/pki/private/vpn.example.com.key
dh server/example.com/dh.pem
tls-auth server/example.com/ta.key 0
crl-verify server/example.com/pki/crl.pem
server 10.1.1.0 255.255.255.0
server-ipv6 2001:aaaa:bbbb:1:10:1:1::/112 # Assign de tunnel een IPv6 IP
push "route 10.1.0.0 255.255.255.0"
push "route-ipv6 2001:aaaa:bbbb:1::/64" # Push de XS4ALL range naar de clients
push "route-ipv6 2000::/3" # Push een default route naar het internet
client-config-dir server/example.com/ccd
ccd-exclusive
topology subnet
learn-address /usr/local/sbin/learn-address.sh
script-security 2
push "redirect-gateway def1 bypass-dhcp"
#push "redirect-gateway ipv6" # Is voor iOS, gebruik ik niet
push "dhcp-option DNS 10.1.0.1"
push "dhcp-option DOMAIN home.lan"
push "dhcp-option DOMAIN home.vpn"
keepalive 10 30
remote-cert-tls client
auth SHA256
cipher AES-128-GCM
tls-cipher TLS-DHE-RSA-WITH-AES-128-GCM-SHA256
tls-version-min 1.2 or-highest
comp-lzo no
push "comp-lzo no"
user openvpn
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 5
sndbuf 0
rcvbuf 0
push "sndbuf 0"
push "rcvbuf 0" |
Mijn mobiel heeft al een IPv6 adres via de UDP tunnel, door deze CCD config.
code:
1
2
| ifconfig-push 10.1.1.3 255.255.255.0 ifconfig-ipv6-push 2001:aaaa:bbbb:1:10:1:1:3/112 2001:aaaa:bbbb:1:10:1:1:1 |
eth0 is verbonden met het internet, die heb ik een vast IPv6 adres gegeven.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.1.0.1
netmask 255.255.255.0
gateway 10.1.0.10
dns-nameservers 10.1.0.1 10.1.0.10
dns-search home.lan home.vpn
iface eth0 inet6 static
address 2001:aaaa:bbbb:1:10:1:0:1
netmask 64
gateway gateway fe80::7eff:aaaa:bbbb:cccc
accept_ra 1
privext 2 |
Ik heb het volgende verder in sysctl.conf.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #kernel.domainname = example.com #kernel.printk = 3 4 1 3 net.ipv4.conf.default.rp_filter=1 net.ipv4.conf.all.rp_filter=1 net.ipv4.tcp_syncookies=1 net.ipv4.ip_forward=1 #net.ipv6.conf.all.forwarding=1 #net.ipv4.conf.all.accept_redirects = 0 #net.ipv6.conf.all.accept_redirects = 0 #net.ipv4.conf.all.send_redirects = 0 #net.ipv4.conf.all.accept_source_route = 0 #net.ipv6.conf.all.accept_source_route = 0 net.ipv4.conf.all.log_martians = 1 #kernel.sysrq=1 #fs.protected_hardlinks=0 #fs.protected_symlinks=0 net.ipv4.tcp_rfc1337 = 1 net.ipv6.conf.all.forwarding=1 net.ipv6.conf.all.proxy_ndp=1 |
Mijn mobiel die verbonden is via de UDP (IPv4 + IPv6) tunnel heeft alleen internet via IPv4. Ik zie in iptables geen drops, ook geen accepts for that matter in de FORWARD chain. Client en server kunnen elkaar niet pingen, internet connectie via IPv6 is voor de client ook niet mogelijk.
Een paar configs/blogs die ik gecheckt heb.
https://community.openvpn.net/openvpn/wiki/IPv6
https://blog.apnic.net/2017/06/09/using-openvpn-ipv6/
https://cuzimageek.wordpr...6/09/21/openvpn-and-ipv6/
https://feeding.cloud.gee...v6-and-openvpn-on-linode/
https://techblog.synagila...-a-ipv6-tunnel-over-ipv4/
https://blog.kmp.or.at/ipv6-enabled-openvpn/
https://tomsalmon.eu/2013/04/openvpn-ipv6-with-tun-device/
https://blog.angenieux.in...n-ipv4-ipv6-nat-sans-ndp/
https://forums.openvpn.net/viewtopic.php?t=21051
https://www.bjoerns-techblog.de/2017/07/openvpn-und-ipv6/
Hoewel ze allemaal nuttig zijn en ik de benodigde config changes daar wel uit kan halen, werkt het alsnog niet. Mijn guess is dat het met routing te maken heeft, met name hoe de routes ingesteld staan in de server config.
Dit staat in de openvpn.log bijvoorbeeld.
code:
1
2
| rWRwRwRwRwRSat Aug 4 13:48:51 2018 us=319238 intrepid.home.vpn/62.251.111.222:44356 MULTI: bad source address from client [10.1.0.13], packet dropped RwRSat Aug 4 13:48:52 2018 us=640405 intrepid.home.vpn/62.251.111.222:44356 MULTI: bad source address from client [2001:aaa:bbbb:1:10:1:1:3], packet dropped |
Iemand tips?
...
