Làm ngay trong 5 phút: Quét thử SSH Server của bạn
Vừa thuê một con VPS mới hay đang quản lý dàn server chạy cả năm trời? Đừng vội tin vào cấu hình mặc định của nhà cung cấp. Thực tế, nhiều bản phân phối Linux vẫn để mở các thuật toán cũ kỹ nhằm duy trì tính tương thích, vô tình tạo ra lỗ hổng cho kẻ xấu khai thác.
Cài đặt ssh-audit trên Ubuntu/Debian chỉ mất vài giây:
sudo apt update
sudo apt install ssh-audit -y
Nếu dùng Mac hoặc muốn bản mới nhất qua Python pip:
pip3 install ssh-audit
Bây giờ, hãy thử kiểm tra ngay (thay IP bằng địa chỉ server của bạn):
ssh-audit 1.2.3.4
Giao diện sẽ hiện ra ba tông màu rõ rệt: Xanh (An toàn), Vàng (Cảnh báo) và Đỏ (Nguy hiểm). Nếu thấy một danh sách “đỏ lòm” tại mục Ciphers hay MACs, server của bạn đang cần được cấp cứu gấp.
Tại sao cấu hình mặc định thường… không ổn?
Nhiều quản trị viên thắc mắc tại sao Ubuntu hay CentOS vẫn giữ lại các thuật toán yếu. Lý do duy nhất là khả năng tương thích. Họ muốn đảm bảo những máy khách từ thập kỷ trước vẫn kết nối được. Tuy nhiên, trong môi trường botnet quét port 22 hàng nghìn lần mỗi ngày như hiện nay, sự nhân nhượng này là cực kỳ mạo hiểm.
Trong một lần audit hệ thống cho khách hàng, mình từng phát hiện server vẫn dùng diffie-hellman-group1-sha1. Đây là thuật toán từ “thời tiền sử”, vốn dễ dàng bị bẻ gãy hoặc bị tấn công hạ cấp (downgrade attack) chỉ với phần cứng tầm trung. ssh-audit sẽ vạch trần những lỗ hổng như Terrapin (CVE-2023-48795) mà mắt thường không bao giờ nhìn thấy trong file cấu hình.
Giải mã các thành phần ssh-audit kiểm tra
Công cụ này tập trung phân tích 4 lớp bảo mật cốt lõi:
- Host Keys: Định danh của server. Hãy ưu tiên
ed25519hoặcrsa-sha2-512. Nếu thấyssh-rsa(dùng SHA-1), hãy xóa nó ngay lập tức. - Key Exchange (KEX): Cách hai bên thỏa thuận khóa bí mật.
curve25519-sha256hiện là lựa chọn không có đối thủ về tốc độ và bảo mật. - Ciphers: Lớp áo mã hóa dữ liệu. Chỉ nên dùng
chacha20-poly1305hoặcaes-gcm. - MACs: Đảm bảo dữ liệu không bị sửa đổi trên đường truyền.
Đọc báo cáo: Đừng chỉ nhìn vào màu sắc
Điểm cộng lớn nhất của ssh-audit là phần Recommendations ở cuối bài quét. Thay vì chỉ báo lỗi khô khan, nó sẽ “cầm tay chỉ việc” bằng cách liệt kê chính xác các dòng lệnh cần copy-paste. Bạn sẽ tiết kiệm được ít nhất 30 phút ngồi tra cứu tài liệu kỹ thuật.
Tối ưu cấu hình SSH chuẩn “pháo đài”
Sau khi xác định được điểm yếu, hãy bắt tay vào thắt chặt an ninh. Mở file cấu hình chính bằng lệnh:
sudo nano /etc/ssh/sshd_config
Dưới đây là bộ khung cấu hình chuẩn hiện đại mình thường áp dụng. Nó loại bỏ hoàn toàn các thuật toán lỗi thời và chỉ giữ lại những gì mạnh mẽ nhất:
# Trao đổi khóa bảo mật cao
KexAlgorithms curve25519-sha256,[email protected],diffie-hellman-group16-sha512,diffie-hellman-group18-sha512
# Thuật toán mã hóa hiện đại chống tấn công Terrapin
Ciphers [email protected],[email protected],[email protected]
# Xác thực dữ liệu mạnh (EtM)
MACs [email protected],[email protected],[email protected]
# Thuật toán Host Key an toàn
HostKeyAlgorithms ssh-ed25519,[email protected],rsa-sha2-512,rsa-sha2-256
Trước khi khởi động lại, hãy kiểm tra xem có lỗi cú pháp nào không:
sudo sshd -t
sudo systemctl restart ssh
Cảnh báo: Hãy chắc chắn SSH Client của bạn (như PuTTY mới nhất hoặc Termius) hỗ trợ các thuật toán này. Nếu dùng bản quá cũ, bạn có thể tự khóa mình khỏi server ngay lập tức!
Kinh nghiệm thực tế để server luôn an toàn
Nếu bạn chưa kịp thiết lập SSH Key, hãy sử dụng công cụ tạo mật khẩu tại toolcraft.app/vi/tools/security/password-generator. Công cụ này chạy hoàn toàn trên trình duyệt, đảm bảo mật khẩu cực kỳ phức tạp không bị lộ qua mạng.
Ngoài việc siết thuật toán, bạn nên áp dụng thêm 3 mẹo nhỏ nhưng cực kỳ hiệu quả:
- Đổi cổng SSH mặc định: Chuyển từ port 22 sang một số ngẫu nhiên (ví dụ 2289) giúp cắt đuôi tới 90% các đợt scan tự động từ botnet.
- Khai tử Password: Chuyển sang dùng SSH Key và tắt hẳn
PasswordAuthentication. Đây là rào cản vững chắc nhất trước các cuộc tấn công Brute-force. - Giới hạn IP truy cập: Nếu có IP tĩnh, hãy dùng Firewall (UFW) để chỉ cho phép chính bạn được quyền gõ cửa server.
Bảo mật là một hành trình liên tục, không phải việc làm một lần rồi thôi. Mỗi khi cập nhật hệ thống, hãy dành 1 phút chạy lại ssh-audit để chắc chắn mọi thứ vẫn trong tầm kiểm soát. Chúc bạn xây dựng được một hệ thống vững như bàn thạch!

