1. Vì sao SSH là điểm bảo mật quan trọng nhất?
Với một Web Server, SSH là cánh cửa quản trị duy nhất.
Nếu cánh cửa này không được bảo vệ tốt:
Hacker không cần khai thác web
Không cần tấn công database
Chỉ cần brute-force SSH là đủ gây sự cố nghiêm trọng
Trong rất nhiều hệ thống bị xâm nhập, SSH là điểm vào đầu tiên.
Vì vậy:
Bảo mật SSH không phải là tuỳ chọn, mà là bắt buộc.
2. Nguyên tắc thiết lập SSH cho production
Trong loạt bài này, cấu hình SSH tuân theo các nguyên tắc:
Không đăng nhập trực tiếp bằng
rootKhông dùng mật khẩu cho SSH
Chỉ cho phép user cần thiết
Giảm bề mặt tấn công (port, rule)
Tránh cấu hình “quá tay” gây tự khóa
3. Tạo user quản trị riêng
3.1. Vì sao không dùng root?
Root có toàn quyền
Dễ bị tấn công brute-force
Khó kiểm soát lịch sử thao tác
Nguyên tắc:
Root chỉ dùng thông qua sudo. Khó chịu, nhưng ráng cũng quen ACE nhé.
3.2. Tạo user quản trị
Ví dụ tạo user nickname
Đặt mật khẩu mạnh
Lưu thông tin user cẩn thận
3.3. Cấp quyền sudo
Kiểm tra:
Nếu user không có quyền sudo, không tiếp tục các bước sau.
4. Thiết lập SSH key (bắt buộc)
4.1. Vì sao dùng SSH key?
So với mật khẩu:
SSH key an toàn hơn rất nhiều
Không thể brute-force theo cách thông thường
Dễ quản lý, dễ thu hồi
Nguyên tắc:
Production không dùng SSH password.
4.2. Tạo SSH key trên máy quản trị
Ví dụ mình đang dùng MacOS nhé. Mình không rõ trên Windows
Trên máy cá nhân:
Không đặt passphrase cũng được (tuỳ chính sách)
File mặc định:
~/.ssh/id_ed25519
4.3. Copy public key lên server
Hoặc copy thủ công vào:
Kiểm tra quyền:
5. Kiểm tra đăng nhập bằng key
Trước khi chỉnh SSH config:
Mở một session SSH khác
Đăng nhập bằng key
Nếu chưa đăng nhập được bằng key: KHÔNG được chỉnh file cấu hình SSH.
6. Cấu hình SSH daemon an toàn
6.1. Mở file cấu hình
6.2. Các cấu hình khuyến nghị
Giải thích ngắn gọn:
Đổi port: giảm scan tự động
Cấm root login
Cấm password
Chỉ cho phép user xác định
Tự ngắt kết nối idle
6.3. Kiểm tra cú pháp trước khi restart
Nếu không có lỗi, tiếp tục.
6.4. Restart SSH service
7. Kiểm tra lại sau khi cấu hình
Mở session SSH mới:
Không đóng session cũ cho đến khi xác nhận đăng nhập thành công
Nguyên tắc:
Không bao giờ chỉnh SSH chỉ với một cửa sổ đang mở.
Tham khảo để truy cập ssh nhanh hơn nữa: Truy cập ssh nhanh bằng ssh tenmaychu thay vì nhập đủ thông tin đăng nhập
8. Thiết lập firewall cho SSH (chuẩn bị)
Sau khi đổi port:
Mở port mới trong firewall
Đóng port 22 mặc định
(Bước này sẽ được thực hiện chi tiết trong bài cấu hình UFW.)
9. Những sai lầm phổ biến khi cấu hình SSH
Tắt password trước khi cài key
Đổi port nhưng quên mở firewall
Không test SSH key
Chỉnh AllowUsers sai username
Những lỗi này thường dẫn đến:
Tự khóa chính mình khỏi server.
10. Checklist SSH cho production
User quản trị riêng
User có quyền sudo
SSH key hoạt động
Root login bị vô hiệu
Password authentication tắt
Port SSH không mặc định
11. Bài tiếp theo
Trong Bài 9, chúng ta sẽ tiếp tục hoàn thiện nền bảo mật:
Cấu hình timezone, locale, hostname
Những cấu hình này tuy nhỏ, nhưng ảnh hưởng trực tiếp đến:
Log
Cron
Giám sát hệ thống
- Đăng nhập để gửi ý kiến