Mục lụcHardening là gì và vì sao cần cân bằng bảo mật với tiện dụng1. Bảo mật vật lý và khởi động (việc 1-4)2. Phân vùng và mã hóa dữ liệu (việc 5-9)3. Quản lý phần mềm và dịch vụ (việc 10-15)4. Bảo mật mạng và giám sát (việc 16-20)
Bài viết được xuất bản lần đầu tháng 01/2021 và được biên tập, cập nhật lại năm 2026. Một số lệnh, công cụ hoặc phiên bản hệ điều hành có thể đã thay đổi theo thời gian; bạn nên đối chiếu với tài liệu chính thức của bản phân phối đang dùng khi áp dụng.
Lưu ý: CentOS 7 và CentOS 8 đã kết thúc vòng đời hỗ trợ (End of Life). Với hệ thống mới, bạn nên cân nhắc dùng Rocky Linux, AlmaLinux hoặc CentOS Stream. Tuy vậy, các nguyên tắc tăng cường bảo mật (hardening) dưới đây vẫn áp dụng được cho phần lớn bản phân phối Linux, từ máy chủ vật lý đến máy chủ ảo.
Hardening là gì và vì sao cần cân bằng bảo mật với tiện dụng
Một hệ thống vừa phải an toàn, vừa phải đủ "mở" để phục vụ các nhu cầu vận hành. Xây dựng hệ điều hành cân bằng giữa hai yếu tố này không đơn giản: nếu siết bảo mật quá mức, chính đội quản trị cũng khó làm việc; nếu quá lỏng, hệ thống dễ bị tấn công. Vì vậy phần lớn bản phân phối Linux đi kèm mức bảo mật vừa phải, kèm các tùy chọn để siết chặt hơn khi cần.
System hardening (tăng cường bảo mật hệ thống) là tập hợp các hành động giúp hệ thống an toàn hơn và trở thành mục tiêu khó khăn hơn với kẻ tấn công. Hình dung một hàng rào gỗ quanh sân: người có ý thức sẽ không bước vào, nhưng một đứa trẻ vẫn có thể trèo qua. Hardening giống như thay hàng rào gỗ bằng hàng rào sắt cao - không phải là không thể vượt qua, nhưng đủ khó để ngăn phần lớn các nỗ lực xâm nhập.
Điểm mấu chốt là sự cân bằng: bảo mật không nhất thiết phải đạt mức bất khả xâm phạm, chỉ cần đủ an toàn để khó bị đột nhập, trong khi hệ thống vẫn vận hành trơn tru mọi dịch vụ. Một máy chủ web được bảo mật tới mức không thể chạy được website trên đó là vô nghĩa - giống như hàng rào sắt nhưng không có cổng. Khi áp dụng các biện pháp dưới đây (ví dụ gỡ giao diện đồ họa GUI không cần thiết trên máy chủ, quản lý quyền sudo cẩn thận, tắt các dịch vụ thừa), hãy cân nhắc theo đúng nhu cầu thực tế để giữ được sự cân bằng đó.
1. Bảo mật vật lý và khởi động (việc 1-4)
1. Bảo vệ ở mức vật lý
Đảm bảo phòng server được khóa cẩn thận, có kiểm soát ra vào và camera an ninh. Người không có thẩm quyền tiếp cận phòng server có thể gỡ pin CMOS để xóa mật khẩu BIOS, hoặc boot một bản Linux Live để sao chép dữ liệu mà khó bị phát hiện.
2. Giảm thiểu tác động gián điệp
Với dữ liệu đặc biệt nhạy cảm, có thể dùng các biện pháp vật lý nâng cao như đặt server trong lồng Faraday hoặc áp dụng tiêu chuẩn TEMPEST để giảm rò rỉ thông tin qua sóng radio hoặc nguồn điện.
3. Bảo mật BIOS/UEFI
Đặt mật khẩu cho BIOS/UEFI, chặn boot từ thiết bị bên ngoài (CD/DVD/USB) và ngăn việc thay đổi cài đặt BIOS. Lưu ý kiểm tra mainboard có hỗ trợ các tính năng bảo mật này không.
4. Bảo mật Boot Loader
Đặt mật khẩu cho GRUB để ngăn việc khởi động vào chế độ single-user và đặt lại mật khẩu root nhằm chiếm quyền hệ thống.
2. Phân vùng và mã hóa dữ liệu (việc 5-9)
5. Sử dụng các phân vùng ổ đĩa riêng biệt
Khi cài đặt, nên tách các thành phần chính của hệ thống ra các phân vùng riêng, ví dụ: /(root), /boot, /home, /tmp, /var.
6. Sử dụng LVM và RAID
Phân vùng /var là nơi ghi log nên có thể tăng dung lượng rất nhanh. Bạn có thể dùng LVM để linh hoạt mở rộng dung lượng, hoặc dùng RAID (ví dụ RAID 1) để tăng khả năng dự phòng dữ liệu.
7. Chỉnh sửa cài đặt fstab
Với các phân vùng chỉ dùng để lưu dữ liệu, bạn có thể ngăn việc thực thi phần mềm bằng các tùy chọn mount trong fstab:
/dev/sda5 /nas ext4 defaults,nosuid,nodev,noexec 1 2 /dev/sda6 /tmp ext4 defaults,nosuid,nodev,noexec 0 0
Việc tạo phân vùng riêng cho /tmp với nosuid,nodev,noexec giúp ngăn leo thang đặc quyền và thực thi script trái phép.
8. Mã hóa ổ đĩa cấp block với LUKS
Mã hóa ổ đĩa giúp bảo vệ dữ liệu nhạy cảm nếu ổ đĩa bị đánh cắp. Bạn có thể tìm hiểu cách mã hóa ổ đĩa Linux với LUKS qua các tài liệu chuyên ngành.
9. Sử dụng PGP và Public Key
Ngoài LUKS, bạn có thể dùng PGP, Public Key và lệnh OpenSSL để mã hóa, giải mã các file nhạy cảm.
3. Quản lý phần mềm và dịch vụ (việc 10-15)
10. Chỉ cài những package thực sự cần thiết
Hạn chế cài phần mềm không cần thiết để giảm bề mặt tấn công và tránh các lỗ hổng phát sinh. Giảm thiểu số lượng package tồn tại trên hệ thống, chỉ cài khi thực sự cần.
11. Cập nhật phần mềm thường xuyên
Thường xuyên cập nhật để nhân Linux và các phần mềm được vá các lỗ hổng. Trên CentOS có thể dùng:
yum update
Trên các bản phân phối đời mới, lệnh tương ứng là dnf update.
12. Khóa tổ hợp phím Ctrl + Alt + Del
Ngăn người dùng khởi động lại hệ thống bằng tổ hợp phím Ctrl + Alt + Del:
systemctl mask ctrl-alt-del.target
13. Gỡ bỏ các package không cần thiết
Liệt kê và gỡ bỏ các package không dùng tới:
rpm -qa yum list installed >> installed.txt yum remove [tên-package]
14. Khởi động lại Systemd Service sau khi cập nhật
Sau khi cập nhật thành công, khởi động lại các dịch vụ liên quan. Ví dụ với HTTPD:
systemctl restart httpd.service
15. Xóa bỏ các Service không cần thiết
Xác định các dịch vụ đang chạy và gỡ những dịch vụ không dùng tới:
ss -tulpn systemctl list-units -t service yum remove postfix
Ví dụ, CentOS mặc định đi kèm Postfix chạy ở port 25; nếu server không dùng làm mail server, bạn có thể gỡ bỏ.
4. Bảo mật mạng và giám sát (việc 16-20)
16. Mã hóa dữ liệu truyền dẫn
Tránh các giao thức kém an toàn như Telnet, FTP hay các giao thức plain text (SMTP, HTTP, NFS, SMB). Ưu tiên SFTP, SCP để truyền file và SSH (hoặc VNC qua SSH tunnel) khi cần truy cập từ xa. Ví dụ chuyển VNC Console qua SSH:
ssh -L 5902:localhost:5901 remote_machine vncviewer localhost:5902
17. Quét các port trong mạng
Dùng Nmap từ một máy khác trong mạng để kiểm tra các port mở và rà soát lỗ hổng, đồng thời kiểm tra các quy tắc firewall:
nmap -sT -O 192.168.1.10
18. Lọc gói tin qua Firewall
Dùng firewalld để bảo vệ các cổng hệ thống, đóng/mở cổng cụ thể (đặc biệt các port dưới 1024):
yum install firewalld systemctl start firewalld.service systemctl enable firewalld.service firewall-cmd --list-all
19. Kiểm tra gói tin với Tcpdump
Dùng tcpdump để bắt và kiểm tra các gói tin trong mạng nhằm phát hiện traffic đáng ngờ. File bắt được có thể phân tích bằng các công cụ như Wireshark:
tcpdump -i eno16777736 -w tcpdump.pcap
20. Phòng ngừa tấn công DNS
Kiểm tra nội dung bộ phân giải, đặc biệt file /etc/resolv.conf - nơi định nghĩa các máy chủ DNS dùng để truy vấn domain. Việc này giúp phòng ngừa tấn công xen giữa (man-in-the-middle), giả mạo DNS (DNS spoofing) hoặc tấn công từ chối dịch vụ (DoS).
Bảo mật hệ thống là việc cần làm nhiều lớp. Bạn nên kết hợp với bài 10 biện pháp tăng cường bảo mật cho SSH Login và cách phòng chống mã độc cho máy chủ. Tìm hiểu thêm giải pháp Endpoint Security để được bảo vệ máy chủ tự động.
DỊCH VỤ HẠ TẦNG CLOUDZONE Cần tư vấn giải pháp Cloud, Máy chủ & Hạ tầng cho doanh nghiệp? Đội ngũ kỹ thuật Cloudzone sẵn sàng hỗ trợ và tư vấn miễn phí. 📞 0906.489.647 (Phone/SMS/Zalo) |