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).
# 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
sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh
File konfigurasi utama SSH ada di:
/etc/ssh/sshd_config
Edit /etc/ssh/sshd_config
:
PermitRootLogin no
Ubah port default (22) ke port lain:
Port 2222
Lalu reload SSH:
sudo systemctl restart ssh
AllowUsers danang adminuser
Protocol 2
Gunakan hanya key-based authentication:
PasswordAuthentication no
PubkeyAuthentication yes
ClientAliveInterval 300
ClientAliveCountMax 2
# Instalasi Fail2Ban
sudo apt install fail2ban -y
ssh-keygen -t rsa -b 4096
ssh-copy-id user@server
atau manual:
cat ~/.ssh/id_rsa.pub | ssh user@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
google-authenticator
atau libpam-google-authenticator
. ssh-agent
untuk mengelola key agar tidak sering memasukkan passphrase. sudo journalctl -u ssh
sudo tail -f /var/log/auth.log # Debian/Ubuntu
sudo tail -f /var/log/secure # CentOS/RHEL
SSH adalah pintu masuk utama ke server Linux.
Dengan konfigurasi yang benar dan praktik hardening yang ketat, risiko serangan dapat diminimalkan tanpa mengganggu operasional.