Khi tiếp nhận một máy chủ mới, dù là một Virtual Machine (VM) trên Cloud hay một hệ thống Bare-Metal, bước ưu tiên không phải là Deployment Service. Quy trình tối quan trọng phải là Hardening hệ điều hành. Việc bỏ qua giai đoạn củng cố bảo mật ban đầu này là một rủi ro đáng kể đối với tính toàn vẹn và Availability của môi trường Production.
Dưới đây là tổng hợp các biện pháp bảo mật đã được chuẩn hóa mà tôi luôn áp dụng để gia cố các máy chủ Linux trong môi trường Production.
I. Củng Cố Giao Thức Kết Nối An Toàn (SSH Service Hardening)
SSH là giao thức quản trị từ xa chính. Cấu hình SSHD (SSH Daemon) mặc định thường không đủ an toàn.
-
Vô Hiệu Hóa Đăng Nhập Trực Tiếp Bằng Tài Khoản Root (Disable Direct Root Login): Hạn chế tối đa việc sử dụng tài khoản
rootcho kết nối ban đầu. Người dùng phải đăng nhập bằng tài khoản Admin thông thường, sau đó sử dụngsudođể Privilege Escalation khi cần thiết.Trong tệp cấu hình
/etc/ssh/sshd_config:PermitRootLogin no -
Bắt Buộc Sử Dụng Cơ Chế Xác Thực Bằng Cặp Khóa (Key-Based Authentication): Loại bỏ hoàn toàn xác thực dựa trên mật khẩu để chống lại các cuộc tấn công Brute-Force.
Trong
/etc/ssh/sshd_config:PasswordAuthentication no -
Thay Đổi Cổng Giao Tiếp Mặc Định (Port Obfuscation): Chuyển cổng TCP mặc định (22) sang một cổng không chuẩn (ví dụ: 20022) để giảm thiểu Attack Surface từ các Botnet.
-
Hạn Chế Truy Cập Theo Địa Chỉ Nguồn (Source IP Restriction): Sử dụng System Firewall (ví dụ:
iptableshoặcfirewall-cmd) để chỉ cho phép các IP tĩnh hoặc Management Subnet đáng tin cậy truy cập vào cổng SSH đã được chỉ định. -
Giới Hạn Người Dùng Được Phép Kết Nối (User Whitelisting): Xác định rõ ràng những tài khoản người dùng nào được quyền thiết lập phiên SSH.
Trong
/etc/ssh/sshd_config:AllowUsers sys_admin monitoring_user
II. Quản Lý Đặc Quyền Người Dùng và Sudo (Privilege and Sudo Management)
Kiểm soát chặt chẽ cơ chế Privilege Escalation là mấu chốt để ngăn chặn việc chiếm quyền điều khiển hệ thống sau khi tài khoản thông thường bị Compromise.
-
Áp Dụng Nguyên Tắc Đặc Quyền Tối Thiểu (Principle of Least Privilege): Chỉ cấp quyền
sudocho các tài khoản Administrator chính. Đối với Service Accounts hoặc người dùng có nhiệm vụ cụ thể, chỉ cấp quyềnsudocho những lệnh thực thi cần thiết.Cấu hình trong
/etc/sudoershoặc tệp tương ứng trong/etc/sudoers.d/:app_runner ALL=(ALL) NOPASSWD: /usr/sbin/logrotate /etc/logrotate.d/application_log -
Ghi Nhật Ký Toàn Diện Các Sự Kiện Sudo (Sudo Command Logging): Đảm bảo mọi lệnh được thực thi thông qua
sudophải được ghi lại trong một tệp Audit Log riêng biệt.Defaults logfile="/var/log/secure/privileged_commands.log"
III. Kiểm Soát Tài Khoản Người Dùng và Chu Kỳ Sống (User Lifecycle Management)
Các tài khoản bị bỏ quên là một lỗ hổng bảo mật nghiêm trọng.
-
De-Provisioning Tài Khoản Không Hoạt Động: Khi người dùng không còn quyền truy cập hệ thống, tài khoản của họ phải được xóa (de-provisioned) khỏi Server, bao gồm cả Home Directory và Mail Spool.
userdel --remove expired_user -
Kiểm Kê Tài Khoản Định Kỳ (User Auditing): Thường xuyên rà soát danh sách tài khoản người dùng và tài khoản hệ thống để phát hiện các tài khoản bất thường hoặc không hợp lệ.
IV. Thiết Lập Chính Sách Tường Lửa Mạng (Firewall Policy)
Chính sách tường lửa phải dựa trên mô hình Deny-by-Default.
-
Thiết Lập Chính Sách Mặc Định Hạn Chế:
- INPUT Chain: Từ chối mặc định tất cả các kết nối đến (Incoming Traffic).
- OUTPUT Chain: Cho phép hoặc từ chối có chọn lọc các kết nối đi (Outgoing Traffic).
-
Lọc Lưu Lượng Truy Cập Ra Ngoài (Egress Filtering): Hạn chế lưu lượng truy cập từ máy chủ ra Internet chỉ đến các điểm đến cần thiết (ví dụ: Configuration Management Server, Internal Package Repository, Centralized Log Service).
# Chặn mặc định lưu lượng đi ra iptables -P OUTPUT DROP # Cho phép kết nối đến Internal Package Repository iptables -A OUTPUT -d 10.0.1.50 -p tcp --dport 8080 -j ACCEPT
V. Tăng Cường Quy Tắc Xác Thực và Mật Khẩu (PAM Integration)
Pluggable Authentication Modules (PAM) cho phép tùy chỉnh sâu các quy tắc xác thực.
-
Triển Khai Cơ Chế Khóa Tài Khoản Tự Động (Account Lockout Mechanism): Sử dụng mô-đun như
pam_faillockđể tự động khóa tài khoản sau một số lần đăng nhập không thành công trong một khoảng thời gian cụ thể, nhằm chống lại các cuộc tấn công Credential Guessing. -
Thực Thi Độ Phức Tạp Mật Khẩu (Password Complexity Enforcement): Sử dụng
pam_pwqualityđể thiết lập các tiêu chuẩn mật khẩu nghiêm ngặt, yêu cầu độ dài tối thiểu (Minimum Length) và sự hiện diện của các lớp ký tự khác nhau (Uppercase, Lowercase, Numeric, Special Character). -
Quản Lý Chu Kỳ Mật Khẩu (Password Rotation Policy): Thiết lập các tham số trong
/etc/login.defsđể buộc người dùng phải thay đổi mật khẩu định kỳ, thiết lập thời gian sống tối đa (PASS_MAX_DAYS) và tối thiểu (PASS_MIN_DAYS).PASS_MAX_DAYS 90 PASS_MIN_DAYS 7
VI. Ghi Nhật Ký, Kiểm Toán và Xác Thực Đa Yếu Tố (Logging, Auditing, and MFA)
Khả năng giám sát và phản ứng là thành phần không thể thiếu của hệ thống bảo mật.
-
Kích Hoạt Xác Thực Đa Yếu Tố (Multi-Factor Authentication – MFA/2FA): Áp dụng MFA (ví dụ: Google Authenticator OTP) cho tất cả các tài khoản quản trị để thêm một lớp bảo mật ngoài mật khẩu.
-
Ghi Nhật Ký Hệ Thống Tập Trung (Centralized Log Forwarding): Thiết lập cơ chế chuyển tiếp (Log Forwarding) tất cả các nhật ký quan trọng (
auth.log,syslog, Application Log) đến một nền tảng SIEM (Security Information and Event Management) hoặc Log Management tập trung (ví dụ: ELK Stack). Điều này hỗ trợ:- Real-time Analysis và Alerting.
- Đảm bảo Log Integrity ngay cả khi server bị Compromise.
-
Tích Hợp Dịch Vụ Kiểm Toán Hệ Thống (Auditd Integration): Sử dụng Linux Audit Framework (
auditd) để giám sát các sự kiện Kernel-level, đặc biệt là việc truy cập hoặc sửa đổi các tệp cấu hình và nhị phân quan trọng.
Hardening Server là một Continuous Process, không phải là một Checklist được hoàn thành một lần. Bằng cách thiết lập những thói quen này ngay từ khi Provisioning Server, bạn đã đặt nền móng vững chắc cho một môi trường Production ổn định và an toàn.







