🔐 SSH Setup & Hardening di Linux

SSH (Secure Shell) adalah protokol yang digunakan untuk login remote, transfer file, dan eksekusi perintah secara aman melalui jaringan terenkripsi.
Namun, karena sering menjadi target serangan brute-force dan exploit, konfigurasi default SSH perlu diperkuat (hardening).


🔹 Instalasi & Setup Dasar

Instalasi SSH Server

# Debian/Ubuntu
sudo apt update && sudo apt install openssh-server -y

# CentOS/RHEL/Fedora
sudo yum install openssh-server -y
# atau
sudo dnf install openssh-server -y

Menjalankan Service

sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh

Konfigurasi Utama

File konfigurasi utama SSH ada di:

/etc/ssh/sshd_config

🔹 Hardening SSH

1. Nonaktifkan Root Login

Edit /etc/ssh/sshd_config:

PermitRootLogin no

2. Gunakan Port Custom

Ubah port default (22) ke port lain:

Port 2222

Lalu reload SSH:

sudo systemctl restart ssh

3. Batasi User yang Boleh Login

AllowUsers danang adminuser

4. Gunakan Hanya Protocol 2

Protocol 2

5. Nonaktifkan Password Authentication

Gunakan hanya key-based authentication:

PasswordAuthentication no
PubkeyAuthentication yes

6. Batasi Idle Timeout

ClientAliveInterval 300
ClientAliveCountMax 2

7. Gunakan Fail2Ban / Security Tools

# Instalasi Fail2Ban
sudo apt install fail2ban -y

🔹 Key-Based Authentication

Generate Key di Client

ssh-keygen -t rsa -b 4096

Copy Key ke Server

ssh-copy-id user@server

atau manual:

cat ~/.ssh/id_rsa.pub | ssh user@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

🔹 Tips & Trik Operasional

  1. Gunakan Port Knocking untuk keamanan ekstra.
  2. Aktifkan 2FA dengan google-authenticator atau libpam-google-authenticator.
  3. Gunakan firewall (ufw/nftables) untuk hanya mengizinkan akses SSH dari IP tertentu.
  4. Gunakan ssh-agent untuk mengelola key agar tidak sering memasukkan passphrase.
  5. Audit log SSH di:
    sudo journalctl -u ssh
    sudo tail -f /var/log/auth.log   # Debian/Ubuntu
    sudo tail -f /var/log/secure     # CentOS/RHEL

✅ Best Practices

  • Gunakan key-based authentication (hindari password).
  • Nonaktifkan root login.
  • Gunakan port non-standar.
  • Terapkan Fail2Ban atau rate-limiting untuk brute-force protection.
  • Batasi akses SSH hanya untuk user atau group tertentu.
  • Gunakan VPN atau jump-host (bastion) untuk akses lebih aman.
  • Update paket OpenSSH secara berkala.

⚙️ Kesimpulan

SSH adalah pintu masuk utama ke server Linux.
Dengan konfigurasi yang benar dan praktik hardening yang ketat, risiko serangan dapat diminimalkan tanpa mengganggu operasional.