- 1. Đổi port SSH mặc định (tránh bị quét tự động)
- 2. Tắt đăng nhập bằng root
- 3. Chỉ dùng key, cấm password
- 4. Tạo user riêng và thêm vào sudo
- 5. Copy Public Key lên server
- 6. Dùng Fail2Ban chặn brute-force SSH
- 7. Cấu hình firewall (UFW)
- 8. Bật rate limit SSH (ngăn spam connection)
- 9. SSH Banner cảnh báo (hạn chế pháp lý và psy ops)
- 10. Theo dõi log SSH theo thời gian thực
- Checklist nhanh
- Kết luận
1. Đổi port SSH mặc định (tránh bị quét tự động)
Mặc định SSH chạy trên port 22 và luôn là mục tiêu đầu tiên. Đổi port không phải bảo mật tuyệt đối, nhưng giảm ngay 90% brute-force tự động.
sudo nano /etc/ssh/sshd_config
# chỉnh thành
Port 2222
Sau đó restart SSH:
sudo systemctl restart sshd
Khi kết nối:
ssh -p 2222 user@server
2. Tắt đăng nhập bằng root
Root login = hack một phát là xong. Không để root đăng nhập trực tiếp.
sudo nano /etc/ssh/sshd_config
PermitRootLogin no
3. Chỉ dùng key, cấm password
Password có thể bị brute-force, SSH key thì không.
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
4. Tạo user riêng và thêm vào sudo
Để thay thế root khi cần lệnh sudo:
sudo adduser deploy
sudo usermod -aG sudo deploy
5. Copy Public Key lên server
Trên máy local:
ssh-copy-id -p 2222 deploy@server
Nếu SSH không hỗ trợ ssh-copy-id, manual:
mkdir -p ~/.ssh
echo "PUBLIC_KEY" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
6. Dùng Fail2Ban chặn brute-force SSH
Fail2Ban theo dõi log và chặn IP spam SSH.
sudo apt install fail2ban
Tạo config:
sudo nano /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
filter = sshd
maxretry = 3
bantime = 24h
7. Cấu hình firewall (UFW)
Chỉ mở port cần dùng, khóa tất cả còn lại.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp
sudo ufw enable
8. Bật rate limit SSH (ngăn spam connection)
Chặn bot spam request trước khi Fail2Ban xử lý.
sudo ufw limit 2222/tcp
9. SSH Banner cảnh báo (hạn chế pháp lý và psy ops)
Không phải bảo mật, nhưng nhiều attacker bỏ cuộc khi thấy banner.
sudo nano /etc/issue.net
Unauthorized access is prohibited.
sudo nano /etc/ssh/sshd_config
Banner /etc/issue.net
10. Theo dõi log SSH theo thời gian thực
Xem IP nào đang cố access SSH:
tail -f /var/log/auth.log
Hoặc trên CentOS/RHEL:
journalctl -u sshd -f
Checklist nhanh
- Đổi port SSH
- Tắt root login
- Dùng SSH key
- Cấu hình firewall chỉ mở port cần thiết
- Fail2Ban chống brute-force
Kết luận
Hardening SSH không phức tạp, nhưng hiệu quả cực lớn. Sau 10 bước trên, bot quét port và brute-force gần như không còn cửa tấn công. Server an toàn hơn, bạn ngủ ngon hơn.
Bình luận