vereisten:
- moet goed werken op android
- moderne encryptie
- snelle (her) verbinding
- voor toegang tot administratie paginas. portainer, reverse proxy manager, proxmox
- admin apps komen in eigen netwerk: admin-vpn
mogelijke kandidaten:
- openvpn
- + ouder
- + veelgebruikt
- – langzaam met verbinden
- – niet native op android.
- wireguard
- + minimale codebase
- + snelle verbinding, geen handshakes
- – de android app is gebrekkig
- shadowsocks
- +originele ontwikkelaar onder druk van overheid gestopt
- +verder ontwikked door community
- +outline client in f droid
- – outine.org is een spinoff van google
- – geen docker install method
- ipsec/IKEv2
- + wijd in gebruik
- + snelle reconnects
- – ontwikkeld door cisco/microsoft
- + gplv2 ompementatie : libreswan
- + libreswan in linux distros opgenomen
- + IKE2 native ondersteund in android
keuze valt daarom op een open impementatie van IKE2
populaire docker image (10+ miljoen pulls)
hwdsl2/ipsec-vpn-server – Docker Image | Docker Hub
compose file:
version: '3'
volumes:
ikev2-vpn-data:
networks:
managementnet:
driver: bridge
name: 'managementnet'
services:
vpn:
image: hwdsl2/ipsec-vpn-server
restart: always
env_file:
- ./vpn.env
required: false
environment:
- VPN_DNS_SRV1=9.9.9.9 # required to not use googles dns, prefer quad9
- VPN_IKEV2_ONLY=yes
ports:
- "500:500/udp"
- "4500:4500/udp"
privileged: false
cap_add:
- NET_ADMIN
devices:
- "/dev/ppp:/dev/ppp"
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.accept_redirects=0
- net.ipv4.conf.all.send_redirects=0
- net.ipv4.conf.all.rp_filter=0
- net.ipv4.conf.default.accept_redirects=0
- net.ipv4.conf.default.send_redirects=0
- net.ipv4.conf.default.rp_filter=0
- net.ipv4.conf.eth0.send_redirects=0
- net.ipv4.conf.eth0.rp_filter=0
hostname: ipsec-vpn-server
container_name: vpn.koehoorn.net
volumes:
- ikev2-vpn-data:/etc/ipsec.d
- /lib/modules:/lib/modules:ro
verbeteringen op default config:
- gebruik quad9 ipv google dns: https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/docs/advanced-usage.md#use-alternative-dns-servers
- run as unprivileged container docker-ipsec-vpn-server/docs/advanced-usage.md at master · hwdsl2/docker-ipsec-vpn-server · GitHub
- only offer IKEv2, VPN_IKEV2_ONLY=yes docker-ipsec-vpn-server/docs/advanced-usage.md at master · hwdsl2/docker-ipsec-vpn-server · GitHub