Belajar NetBSD - SSH & Remote Access Hardening
Episode 13 of 23

Belajar NetBSD - SSH & Remote Access Hardening

Mengamankan akses remote NetBSD: konfigurasi sshd_config dengan key ed25519, menonaktifkan root dan password login, tunneling SSH, serta perlindungan brute force dengan fail2ban.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 12 sebelumnya kita telah membangun firewall npf yang menjaga pintu jaringan. Namun satu pintu tetap harus terbuka jika kita ingin mengelola server dari jauh: SSH. Pada episode ini kita akan mengamankan SSH dan remote access di NetBSD — menyesuaikan sshd_config untuk key ed25519, menonaktifkan login root dan password, memanfaatkan tunneling, serta melindungi dari serangan brute force dengan fail2ban.

Kondisi Awal

Setelah instalasi NetBSD, OpenSSH sudah terpasang di base system dan sshd diaktifkan. Dari episode 6 kita tahu bagaimana cara mengaktifkannya:

Pastikan sshd aktif di /etc/rc.conf
sshd=YES

Mulai service jika belum berjalan:

Menjalankan service sshd
service sshd start
Konfirmasi status
service sshd status
sshd is running as pid 1234.

Sekarang mari kita kunci gerbangnya.

Membuat Key ed25519

Autentikasi berbasis key jauh lebih aman daripada password — dan ed25519 adalah jenis key modern yang aman dan cepat. Di sisi klien (mesin kalian), buat pasangan key:

Membuat key ed25519 di mesin klien
ssh-keygen -t ed25519 -C "arman@nbsd11"
Contoh output ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/arman/.ssh/id_ed25519):

Key publik (id_ed25519.pub) itulah yang akan didaftarkan di server. Salin ke server NetBSD:

Menyalin public key ke server
ssh-copy-id arman@192.168.1.50
Contoh output ssh-copy-id
/usr/bin/ssh-copy-id: INFO: Number of key(s) added: 1

Jika ssh-copy-id tidak tersedia, tambahkan secara manual:

Menambahkan public key secara manual
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "ssh-ed25519 AAAA... arman@nbsd11" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Uji login dengan key:

Login memakai key ed25519
ssh arman@192.168.1.50
Contoh sesi login
Enter passphrase for key '/home/arman/.ssh/id_ed25519':
NetBSD/nbsd11 (console) login: 

Warning

Pastikan login berbasis key berhasil sebelum menonaktifkan password. Jika key gagal, kalian bisa terkunci di luar server sendiri. Uji dulu dari sesi terpisah sebelum mengubah konfigurasi.

Mengunci sshd_config

Konfigurasi utama OpenSSH ada di /etc/ssh/sshd_config. Mari amankan baris per baris:

1. Nonaktifkan Login Root

Di sshd_config
PermitRootLogin no

2. Nonaktifkan Login Password

Di sshd_config
PasswordAuthentication no

3. Batasi Pengguna yang Boleh Masuk

Di sshd_config
AllowUsers arman devops

4. Batasi Percobaan dan Waktu

Di sshd_config
MaxAuthTries 3
LoginGraceTime 30

5. Matikan DNS Reverse Lookup

Di sshd_config
UseDNS no

UseDNS no menghindari penundaan login ketika server mencoba resolusi DNS balik — kombinasi dengan firewall, ini membuat koneksi terasa jauh lebih cepat.

Menampilkan Hasil Akhir

Isi sshd_config (bagian keamanan)
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers arman devops
MaxAuthTries 3
LoginGraceTime 30
UseDNS no

Setelah mengubah, terapkan konfigurasi:

Verifikasi lalu reload sshd
sshd -t
service sshd restart
Output sshd -t yang bersih
sshd -t (no output berarti valid)

Selalu uji dengan sshd -t sebelum reload — satu typo bisa mengunci kalian.

SSH Tunneling

SSH bukan hanya untuk login; ia juga bisa membuat tunnel terenkripsi. Ini sangat berguna untuk mengakses layanan internal dengan aman.

Local Forwarding (Port Tunneling)

Meneruskan port lokal ke layanan di dalam jaringan server:

Tunneling port lokal ke layanan remote
ssh -L 8080:localhost:80 arman@192.168.1.50
Contoh pemakaian tunnel
# Buka browser di mesin lokal ke http://localhost:8080
# lalu akses diarahkan ke port 80 di server remote

Dynamic Forwarding (SOCKS Proxy)

Membuat proxy SOCKS lokal yang merutekan semua traffic lewat server:

Membuat SOCKS proxy lewat SSH
ssh -D 1080 arman@192.168.1.50
Contoh pemakaian
# Set browser/proxy ke socks5://localhost:1080
# Traffic terenkripsi sampai server

Perlindungan Brute Force: fail2ban

Meski password dimatikan, tetap ada kemungkinan serangan terhadap layanan lain yang memakai password. fail2ban memindai log dan memblokir alamat IP yang terlalu sering gagal. Install dari pkgsrc:

Install fail2ban dari pkgsrc
cd /usr/pkgsrc/security/py-fail2ban
make install clean

Konfigurasi jail dasar untuk sshd ada di /usr/pkg/etc/fail2ban/jail.local:

Isi jail.local
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/authlog
maxretry = 5
bantime = 3600

Aktifkan dan mulai service:

Mengaktifkan fail2ban
echo 'fail2ban=YES' >> /etc/rc.conf
service fail2ban start
Konfirmasi status jail
fail2ban-client status sshd

Dengan maxretry 5, IP yang gagal 5 kali login akan di-ban 1 jam. fail2ban bisa diintegrasikan dengan npf untuk memblokir di level firewall.

Praktik Terbaik Akses Remote

AturanAlasan
Key ed25519 saja, tanpa passwordPassword bisa ditebak/dicuri
Root tidak boleh login SSHPaksa login sebagai user, lalu doas/sudo
Batasi dengan AllowUsersPrinsip least privilege
Gunakan port default atau customCustom port tidak menambah keamanan, tetapi mengurangi noise
Maksimalkan MaxAuthTries rendahPerlambat brute force
fail2ban aktifBlokir IP yang menyerang

Penutup

Pada episode 13 ini, kalian telah mengamankan akses remote NetBSD: membuat key ed25519, menyesuaikan sshd_config untuk menonaktifkan root dan password, memanfaatkan tunneling SSH, serta melindungi server dari brute force dengan fail2ban.

Inti yang harus dibawa pulang:

  • Autentikasi berbasis key ed25519 menggantikan password — uji dulu sebelum menonaktifkan password.
  • Di sshd_config: PermitRootLogin no, PasswordAuthentication no, AllowUsers, MaxAuthTries, dan UseDNS no.
  • Selalu sshd -t sebelum reload.
  • Gunakan tunneling (-L/-D) untuk akses layanan internal dengan aman.
  • fail2ban memblokir IP yang menyerang — aktifkan dan pantau jails-nya.

Di episode 14 selanjutnya kita akan mengamankan komunikasi terenkripsi: TLS, OpenSSL, dan sertifikat — membuat key dan CSR, sertifikat self-signed, mengelola trust dengan ca-certificates, serta otomasi sertifikat Let's Encrypt. Sampai jumpa di episode 14!

Belajar NetBSD - SSH & Remote Access Hardening | Belajar NetBSD