Paket 1 · Fondasi DevOpsModul F — Tailscale & Private Access

Menggunakan Tailscale untuk SSH dan Remote Server Tanpa Public IP

Praktik mengakses SSH server di balik NAT atau CGNAT menggunakan Tailscale, MagicDNS, Tailscale SSH, dan ACL.

Server di rumah, kantor, atau VM Proxmox sering berada di balik NAT/CGNAT sehingga tidak bisa diakses langsung. Tailscale memungkinkan SSH tanpa membuka port atau memiliki public IP.

Dua cara SSH lewat Tailscale

CaraCara kerjaKelebihan
SSH biasa lewat IP tailnetsshd tetap berjalan, koneksi lewat interface TailscaleFamiliar, kontrol penuh
Tailscale SSHTailscale menangani autentikasi dan otorisasi SSHTidak perlu kelola authorized_keys

Keduanya valid. Tailscale SSH lebih praktis untuk tim; SSH biasa lebih fleksibel untuk konfigurasi khusus.

1. SSH biasa lewat Tailscale

Pastikan kedua perangkat sudah terhubung:

tailscale status
tailscale ip -4

Dari laptop:

ssh deploy@100.64.0.10

Atau dengan MagicDNS:

ssh deploy@web-ct

Konfigurasi ~/.ssh/config:

Host web-ct
    HostName web-ct
    User deploy
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 30

Tidak perlu port forwarding

Karena koneksi melewati interface Tailscale, Anda tidak perlu membuka port 22 di router. Cukup pastikan firewall host mengizinkan SSH dari interface tailnet.

2. Tailscale SSH

Tailscale SSH memungkinkan autentikasi SSH menggunakan identitas tailnet, tanpa mengelola authorized_keys secara manual.

Aktifkan di server

tailscale up --ssh

Atau saat pertama kali:

tailscale up --ssh --hostname=web-ct

Cek status:

tailscale status

Hubungkan dari client

ssh deploy@web-ct

Tailscale akan memeriksa ACL dan identitas Anda. Jika diizinkan, sesi SSH terbuka.

ACL untuk Tailscale SSH

Contoh aturan:

{
  "ssh": [
    {
      "action": "accept",
      "src": ["group:admin"],
      "dst": ["tag:server"],
      "users": ["root", "deploy"]
    },
    {
      "action": "accept",
      "src": ["group:developer"],
      "dst": ["tag:app"],
      "users": ["deploy"]
    }
  ]
}
FieldArti
srcSiapa yang boleh connect
dstNode tujuan
usersUser Linux yang boleh dipakai
actionaccept, check, atau deny

check bisa dipakai untuk mewajibkan persetujuan ulang (re-authentication) pada aksi sensitif.

3. SSH dari perangkat mobile

Aplikasi Tailscale tersedia untuk Android/iOS. Setelah login, Anda bisa memakai aplikasi SSH client untuk terhubung ke IP tailnet atau nama MagicDNS. Ini berguna untuk administrasi darurat.

4. Kasus CGNAT

Jika ISP memakai CGNAT:

  • Port forwarding di router tidak akan berfungsi.
  • Public IP bisa berubah sewaktu-waktu.
  • Tailscale tetap bekerja karena koneksi keluar dari node.

Alur:

Laptop (tailnet) ──encrypted──▶ Tailscale ──▶ Server di balik CGNAT

Jika koneksi langsung gagal, Tailscale memakai relay DERP. Cek:

tailscale ping web-ct
tailscale netcheck

Output akan menunjukkan apakah koneksi direct atau via DERP.

5. Keamanan akses

  • Gunakan tag untuk server agar ACL mudah diatur.
  • Batasi user SSH yang diizinkan.
  • Nonaktifkan login password pada sshd bila memakai SSH biasa.
  • Pantau login dengan journalctl -u ssh atau audit Tailscale.
  • Hapus node yang tidak dipakai dari admin console.
  • Pertimbangkan key expiry dan rotasi akses.

Tailscale bukan pengganti hardening

Tailscale mengamankan jalur akses, tetapi server tetap perlu update, firewall lokal, dan konfigurasi SSH yang aman. Jangan menganggap tailnet otomatis membuat server kebal.

Praktik: akses server tanpa public IP

  1. Install Tailscale di server dan laptop.
  2. Login dengan akun yang sama.
  3. Di server, jalankan tailscale up --ssh.
  4. Buat ACL yang mengizinkan group admin SSH ke tag:server.
  5. Dari laptop, jalankan:
    ssh deploy@web-ct
  6. Pastikan tidak ada port forwarding di router.
  7. Cek tailscale status dan journalctl -u ssh bila gagal.

Troubleshooting

GejalaKemungkinan
No route to hostNode offline atau ACL menolak
Permission deniedUser tidak diizinkan ACL/sshd
Koneksi lambatMemakai DERP, cek tailscale ping
Nama tidak resolveMagicDNS belum aktif
SSH hanya dari localhostsshd listen di 127.0.0.1

Ringkasan

  • Tailscale memungkinkan SSH ke server tanpa public IP dan tanpa port forwarding.
  • Gunakan SSH biasa lewat IP tailnet atau Tailscale SSH dengan ACL.
  • MagicDNS menyederhanakan nama host.
  • Selalu kombinasikan dengan hardening server dan pengelolaan akses.

Selanjutnya

Hubungkan seluruh jaringan Proxmox di Tailscale Private Network untuk Proxmox, VM, dan LXC.

On this page