Overview
This is a repackaged software product wherein additional charges apply for hardening, security configuration, and support.
WHAT IS HEADSCALE
Headscale is an open-source, self-hosted implementation of the Tailscale coordination server. It speaks the same control protocol as Tailscale's hosted SaaS, so any standard tailscale client (Linux, macOS, Windows, iOS, Android) can register against it and join a private WireGuard-based mesh VPN.
By running your own control plane you keep node metadata, auth flows, and ACL evaluation inside your own AWS account - none of it transits controlplane.tailscale.com. Headscale supports MagicDNS, ACLs, pre-auth keys, ephemeral nodes, route advertisement, and tag-based authorization. BSD-3-Clause license, written in Go, single statically linked binary.
WHAT THIS AMI ADDS
Security hardening:
- Noise protocol private key generated per instance at first boot - never reused across deployments
- Default user and reusable 24-hour pre-auth key created automatically at first boot - operator runs tailscale up and is on the network
- gRPC API and Prometheus metrics bound to 127.0.0.1 only - never reachable from outside the instance
- UFW firewall pre-configured - only the Tailscale endpoint (TCP 8080) is exposed; SSH on 22 only
- fail2ban, AppArmor
- CVE scan - every image is scanned for vulnerabilities before release
OS hardening (CIS Level 1):
- CIS Ubuntu 24.04 LTS Level 1 benchmark applied via ansible-lockdown
- auditd, SSH hardening, Kernel hardening, IMDSv2 enforced
Compliance artifacts:
- SBOM - CycloneDX 1.6 at /etc/lynxroute/sbom.json
- CIS Conformance Report at /etc/lynxroute/cis-report.html
- CIS Tailored Profile at /usr/share/doc/lynxroute/CIS_TAILORED_PROFILE.md
Highlights
- Security baked in: noise key per instance, default user + reusable pre-auth key generated at first boot, gRPC and Prometheus metrics bound to loopback only - unlike bare Headscale AMIs where you have to run `headscale users create`, mint keys, and remember to keep the gRPC/metrics interfaces off the public network yourself
- CIS Level 1 hardened Ubuntu 24.04 LTS: auditd, fail2ban, AppArmor, SSH key-only, IMDSv2 enforced. CVE-scanned before every release. SBOM (CycloneDX) and CIS Conformance Report included.
- Self-hosted Tailscale control plane: own the auth flow and node coordination metadata, no traffic to controlplane.tailscale.com. BSD-3-Clause license - fully auditable, no vendor lock-in, ever.
Details
Introducing multi-product solutions
You can now purchase comprehensive solutions tailored to use cases and industries.
Features and programs
Financing for AWS Marketplace purchases
Pricing
Free trial
Dimension | Cost/hour |
|---|---|
t3.small Recommended | $0.02 |
t3.micro | $0.01 |
t3.large | $0.03 |
t3.medium | $0.02 |
m6i.large | $0.03 |
Vendor refund policy
We do not offer refunds for this product. AWS infrastructure charges (EC2, EBS, data transfer) are billed separately by AWS and are not refundable by us.
How can we make this page better?
Legal
Vendor terms and conditions
Content disclaimer
Delivery details
64-bit (x86) Amazon Machine Image (AMI)
Amazon Machine Image (AMI)
An AMI is a virtual image that provides the information required to launch an instance. Amazon EC2 (Elastic Compute Cloud) instances are virtual servers on which you can run your applications and workloads, offering varying combinations of CPU, memory, storage, and networking resources. You can launch as many instances from as many different AMIs as you need.
Version release notes
Version 0.28.0 - Initial release (May 2026)
- Headscale 0.28.0 on Ubuntu 24.04 LTS
- CIS Level 1 hardening applied (ansible-lockdown/UBUNTU24-CIS)
- CVE-scanned before every release
- Noise protocol private key generated per instance at first boot
- Default user and reusable 24-hour pre-auth key created at first boot
- gRPC API and Prometheus metrics bound to 127.0.0.1 only
- UFW firewall pre-configured (TCP 8080 only)
- fail2ban, auditd, AppArmor pre-configured
- SBOM (CycloneDX 1.6) at /etc/lynxroute/sbom.json
- CIS Conformance Report (OpenSCAP) at /etc/lynxroute/cis-report.html
- IMDSv2 enforced
Additional details
Usage instructions
- Launch instance (t3.small recommended)
- Open Security Group - allow TCP 8080 from the networks where your Tailscale clients live
- SSH: ssh -i key.pem ubuntu@<PUBLIC_IP>
- Read credentials: sudo cat /root/headscale-credentials.txt
- On a Tailscale client, register against the server URL printed in the credentials file: tailscale up --login-server=http://<PUBLIC_IP>:8080 --authkey=<KEY_FROM_CREDENTIALS>
- Verify on the server: sudo headscale nodes list
A default user (id=1) and a reusable pre-auth key valid for 24 hours are created at first boot. Issue a fresh key any time: sudo headscale preauthkeys create --user 1 --reusable --expiration 24h
Manage users, nodes, and routes: sudo headscale users list sudo headscale nodes list sudo headscale routes list
Credentials are saved to /root/headscale-credentials.txt at first boot. For production, place an HTTPS reverse proxy (Nginx + Let's Encrypt or ALB + ACM) in front of port 8080 and set server_url in /etc/headscale/config.yaml to the public HTTPS URL before any client registers.
Resources
Vendor resources
Support
Vendor support
Visit us online: https://lynxroute.com
For Headscale documentation: https://headscale.net For Headscale upstream issues: https://github.com/juanfont/headscale/issues For AWS infrastructure issues:
AWS infrastructure support
AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.