SSH là gì? Giao thức quản trị server an toàn

SSH hay Secure Shell là một giao thức mạng dùng để truy cập và quản lý server từ xa một cách an toàn, mã hóa toàn bộ dữ liệu truyền đi qua kết nối không an toàn như Internet.

Trong DevOps và SRE, SSH là công cụ thiết yếu để truy cập server Linux. Nó không chỉ dùng cho interactive login mà còn là lớp transport cho các công cụ automation như Ansible, Git hay rsync. Việc quản lý SSH Key và cấu hình bảo mật cho SSH Daemon là yêu cầu bắt buộc để bảo vệ hạ tầng khỏi các cuộc tấn công chiếm quyền điều khiển.

Ví dụ: Khi bạn chạy lệnh git push lên GitHub hoặc deploy code bằng Jenkins, bên dưới các công cụ này đang sử dụng SSH để xác thực và truyền tải dữ liệu.

Mặc định SSH chạy trên port 22 và sử dụng kiến trúc client-server.

SSH cho biết điều gì?

Logs của dịch vụ SSH thường nằm tại /var/log/auth.log hoặc /var/log/secure và cung cấp nhiều thông tin quan trọng:

  • Access Attempts: Ai đang cố gắng đăng nhập vào server từ địa chỉ IP nào.
  • Auth Failures: Các lần login thất bại, dấu hiệu rõ ràng của Brute Force Attack.
  • User Activity: Thời điểm user đăng nhập và đăng xuất session.

Nếu thấy hàng ngàn dòng log báo Failed password for root, đó là tín hiệu server của bạn đang bị botnet quét và cần áp dụng biện pháp chặn IP ngay.

SSH khác Telnet và FTP ra sao?

Trước khi có SSH, quản trị viên dùng Telnet và FTP. Sự khác biệt lớn nhất nằm ở bảo mật:

  • Telnet/FTP: Truyền toàn bộ dữ liệu bao gồm username và password dưới dạng plain text. Bất kỳ ai capture được gói tin trên mạng cũng có thể đọc được mật khẩu.
  • SSH: Mã hóa toàn bộ phiên làm việc ngay từ lúc handshake. Kẻ nghe lén chỉ thấy các dữ liệu rác không thể giải mã.

Hiện nay Telnet gần như đã tuyệt chủng trong môi trường production và bị thay thế hoàn toàn bởi SSH.

SSH Key vs Password

Xác thực bằng mật khẩu truyền thống có nhiều rủi ro và không thuận tiện cho automation. SSH Key Pair ra đời để giải quyết vấn đề này:

  • Private Key: Được giữ bí mật trên máy cá nhân của user.
  • Public Key: Được copy lên server vào file authorized_keys.

Khi đăng nhập, server sẽ gửi một challenge được mã hóa bằng Public Key. Chỉ người nắm giữ Private Key mới giải mã được để chứng minh danh tính.

Cơ chế này giúp thiết lập passwordless login an toàn hơn nhiều vì Private Key khó bị đoán hơn password thông thường.

SSH Tunneling và Port Forwarding

Một tính năng mạnh mẽ của SSH là khả năng tạo tunnel để chuyển tiếp traffic:

  • Local Port Forwarding: Mở port trên máy local để truy cập service trên remote server. Ví dụ dùng để kết nối vào database nội bộ chỉ lắng nghe localhost trên server.
  • Remote Port Forwarding: Mở port trên remote server để truy cập ngược lại service trên máy local. Thường dùng để demo website đang chạy trên laptop cho khách hàng xem qua internet.
  • Dynamic Port Forwarding: Biến SSH Client thành SOCKS proxy để duyệt web an toàn qua server trung gian.

Hardening SSH cho Production

Để bảo vệ server, bạn cần sửa file cấu hình /etc/ssh/sshd_config với các nguyên tắc tối thiểu:

  • Disable Root Login: Không cho phép đăng nhập trực tiếp bằng tài khoản root.
  • Disable Password Authentication: Bắt buộc dùng SSH Key.
  • Change Default Port: Đổi port 22 sang port khác để tránh các script quét tự động đơn giản.
  • Use AllowUsers: Chỉ cho phép một danh sách user cụ thể được quyền SSH.

Checklist quản lý SSH

  • Đã tắt xác thực bằng mật khẩu chưa?
  • Đã cấu hình Fail2Ban để tự động ban IP tấn công brute force chưa?
  • Private Key có được phân quyền 600 để tránh bị user khác trên máy đọc trộm không?
  • Đã sử dụng SSH Agent Forwarding thay vì copy Private Key lên Bastion Host chưa?
  • Đã định kỳ rotate SSH Key và xóa key của nhân viên đã nghỉ việc chưa?

Kết luận

SSH là giao thức tiêu chuẩn để quản trị và vận hành hệ thống Linux từ xa.

Để đảm bảo an toàn, hãy luôn ưu tiên dùng SSH Key, tắt truy cập root, tận dụng SSH Tunneling cho các kết nối bảo mật và giám sát chặt chẽ auth log để phát hiện các truy cập bất thường.

Thông tin nổi bật

Sự kiện phát trực tiếp​

Event Thumbnail

Báo cáo quan trọng

Article Thumbnail
Article Thumbnail
Chia sẻ bài viết:
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận

Tiêu điểm chuyên gia