Skip to content

Een VPN uit onderdelen: PPP, tap-devices en netcat

Een VPN is twee taken: iets dat een virtuele link maakt, en iets dat de bytes draagt. PPP doet de eerste sinds 1994 en het kan het niet schelen wat de tweede is — daarom zijn PPTP, L2TP en elke inbellijn die je ooit gebruikt hebt hetzelfde protocol over verschillende dragers. Netcat is een drager. Dit bouwt het op beide manieren. Eerst pppd: de pty-optie en wat die met een pseudo-terminal doet, de TCP-versie die iedereen eerst probeert, waarom een streamprotocol binnen TCP onder verlies smelt, de UDP-versie die je moet nemen, de asynchrone HDLC-framing en de ACCM die bepaalt hoeveel bandbreedte er opgaat aan het escapen van stuurtekens, adressering en routering en IPV6CP, en de link overeind houden als de drager sterft zonder het te zeggen. Daarna dezelfde tunnel helemaal zonder PPP — een tap-device, één datagram per frame over UDP, het lengteprefix dat je over TCP zelf moet verzinnen, tun tegen tap, en bridging. Daarna het deel waar netcat geen antwoord op heeft: de drager in TLS wikkelen met ncat, stunnel en openssl, en in DTLS met socat, wat de vorm is die je eigenlijk wilt. Het is nooit echt het juiste gereedschap, en dat is nu juist het punt: het laat zien hoe egress zich gedraagt zodra een aanvaller root heeft binnen je netwerk en uitgaande toegang niet standaard geblokkeerd was, en waarom default-deny aan de rand de enige controle is die ooit echt was.

14 september 2026 Â· 61 min Â· 13202 woorden Â· Damien Dye