How to Deploy a Zero Trust Cluster

🚀 Teleport is a modern open-source platform for secure access to your infrastructure: SSH, Kubernetes, databases, web apps, and even Windows desktops (RDP).
Teleport Setup open-source ZTNA Platform
✅ Requirements
- A Linux server with a public IP address and DNS name (e.g.,
teleport.<your-domain>
) - One or more Windows and Linux machines
- Basic terminal access (Linux + Windows)
📌 Step 1: Configure DNS
Create the following A records for your domain:
|
|
This is required for Let’s Encrypt (ACME) to issue a valid TLS certificate.
📥 Step 2: Install Teleport on Linux
Install the latest stable version of Teleport:
|
|
⚙️ Step 3: Generate Teleport Configuration
|
|
This creates /etc/teleport.yaml
with TLS auto-renewal using Let’s Encrypt.
My working configuration
|
|
▶️ Step 4: Start Teleport
|
|
Then open your browser and visit:
|
|
👤 Step 5: Create a Teleport Admin User
|
|
Teleport will print an invite link like:
|
|
Open the link to set a password and register your MFA device.
🔐 Configure Windows RDP Access
🪟 Step 1: Prepare Windows for RDP
- On your Windows machine, open Command Prompt (cmd.exe) as Administrator and dowload:
|
|
- Double-click the
.exe
installer to run the Teleport Windows Auth Setup program. - Choose certificat
- Restart the computer after installation.
🔐 Step 2: Generate Join Token for RDP on Linux Server
- SSH into your Teleport Auth Server and run:
|
|
- Copy the token output to your RDP proxy server, e.g.,
/tmp/token
⚙️ Step 2: Configure windows_desktop_service on RDP Proxy
Update or create the relevant section in /etc/teleport.yaml
:
|
|
Then restart the service:
|
|
🌐 Configure Internal Web Application Access
🔐 Step 1: Generate Join Token for App Service
Run on the Auth server:
|
|
Copy the token to the target server that will proxy your internal app.
⚙️ Step 2: Configure app_service in teleport.yaml
Edit /etc/teleport.yaml
on the node that will serve the app:
|
|
Restart teleport
|
|
🔍 Troubleshooting
-
ACME TLS fails?
- Ensure port 80 and 443 are open
- Check DNS records
-
Windows host not visible?
- Check RDP is enabled on the Windows machine
- Check firewall rules
-
Web UI unreachable?
- Check
teleport.yaml
- Check logs:
journalctl -u teleport
ordocker logs teleport
- Check
💡 Need a Docker setup? Want to automate the RDP proxy deployment? Check out my GitHub repo or contact me directly.