Console Login

Zero-Trust Infrastructure: Why Your VPN Concentrator is a Single Point of Failure

Zero-Trust Implementation: Moving Beyond the "Castle and Moat"

Let’s be honest: the traditional "castle and moat" security model is a relic. If you are still relying on a single VPN concentrator or a massive firewall at the edge to protect your soft, gooey internal network, you are one phished credential away from a total breach. I've cleaned up enough ransomware incidents to know that once an attacker is inside a standard VLAN, they move laterally faster than you can `grep` the logs.

By August 2025, the standard for securing infrastructure—especially here in Norway where Datatilsynet watches compliance like a hawk—is Zero Trust. But Zero Trust isn't a product you buy from a vendor. It’s a paranoid architecture where no user, device, or service is trusted by default, even if it’s sitting in the same rack in Oslo.

1. The Network Overlay: WireGuard Mesh

Forget IPsec. It’s bloated and slow. For a secure overlay network between your servers (whether they are in CoolVDS's Oslo zone or scattered across Europe), use WireGuard. It offers smaller attack surfaces and superior cryptographic primitives.

We don't trust the datacenter LAN. We build an encrypted mesh on top of it. Here is a standard configuration for a peer in a mesh topology running on Ubuntu 24.04 LTS:

# /etc/wireguard/wg0.conf [Interface] Address = 10.100.0.1/24 ListenPort = 51820 PrivateKey = # Packet filtering at the interface level PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE [Peer] # Database Node PublicKey = AllowedIPs = 10.100.0.2/32 Endpoint = 185.xxx.xxx.xxx:51820 PersistentKeepalive = 25

This setup ensures that traffic between your web nodes and database nodes is encrypted, regardless of the physical medium. On CoolVDS NVMe instances, the CPU overhead for WireGuard encryption is negligible due to modern AES-NI instruction sets (though WireGuard uses ChaCha20, it's extremely efficient on x86_64).

2. Service-to-Service Identity: mTLS

Network segmentation limits the blast radius, but it doesn't authenticate the service. If an attacker compromises a web server, can they query the database? Yes. Can they drop tables? Hopefully not.

Mutual TLS (mTLS) ensures that the client validates the server, and the server validates the client. Nginx supports this natively. You don't need a heavy service mesh like Istio if you run a simpler architecture; plain Nginx works perfectly.

server { listen 443 ssl; server_name internal-api.coolvds.local; ssl_certificate /etc/nginx/certs/server.crt; ssl_certificate_key /etc/nginx/certs/server.key; # Client Certificate Verification ssl_client_certificate /etc/nginx/certs/ca.crt; ssl_verify_client on; location / { proxy_pass http://localhost:8080; } }

If ssl_verify_client is set to on, Nginx will reject any connection that doesn't present a certificate signed by your internal CA. No cert, no handshake. The request never even hits your application logic.

Pro Tip: Automate certificate rotation. Certificates should live for days, not years. Use HashiCorp Vault or a simple step-ca instance to issue short-lived certificates. If a key is stolen, it’s useless within 24 hours.

3. SSH: Kill the Static Keys

If you are still copying public keys to ~/.ssh/authorized_keys, stop. It’s unmanageable at scale and a nightmare for offboarding employees. Use an SSH Certificate Authority (CA).

You sign a user's public key with a CA key that the server trusts. The certificate has an expiration date and principals (permissions).

Step 1: Generate CA Keys (Do this offline/securely)

ssh-keygen -t ed25519 -f /etc/ssh/user_ca -C "user_ca"

Step 2: Configure the Server (sshd_config)

# /etc/ssh/sshd_config TrustedUserCAKeys /etc/ssh/user_ca.pub AuthenticationMethods publickey

Step 3: Sign a User Key

ssh-keygen -s user_ca -I "dev_johndoe" -n root,deploy -V +8h -z 1 id_ed25519.pub

This command creates a certificate valid for only 8 hours. Even if a developer's laptop is stolen in a coffee shop in Grünerløkka, the key is useless by the next morning.

4. The Physical Reality: Data Sovereignty

Software Zero Trust is critical, but physical sovereignty is the foundation. You cannot have a trusted system if the hardware resides in a jurisdiction with intrusive data laws that conflict with GDPR. This is why location matters.

Feature Hyperscale Cloud (US Owned) CoolVDS (Norway)
Jurisdiction US CLOUD Act applies Norwegian/EEA Law
Latency to NIX 10-25ms < 2ms
Hardware Control Opaque Transparent Specs (NVMe)

When we designed the CoolVDS infrastructure, we built it to be the "reference implementation" for secure hosting. We don't oversubscribe our CPU cores, meaning when your WireGuard process needs to encrypt 10Gbps of traffic, the cycles are there. We host directly in Oslo, ensuring your data never crosses a border unless you explicitly route it there.

Conclusion

Zero Trust requires work. It requires configuring iptables, managing CAs, and understanding network flows. But the alternative is waiting for a breach. By combining modern cryptographic primitives with legally compliant, high-performance local infrastructure like CoolVDS, you build a fortress that is actually usable.

Don't let latency kill your security posture. Deploy a secure, Zero-Trust ready instance on CoolVDS today and get root access in under 55 seconds.