Sau chương này bạn sẽ nắm được
Các kỹ thuật bảo mật Linux từ tường lửa đến cơ chế xác thực SSH an toàn
Vùng & Quy tắc firewalld
Quản lý vùng (zone), dịch vụ, cổng và các quy tắc chi tiết (rich rules) trong firewalld
Cơ bản về iptables
Tìm hiểu chuỗi INPUT/OUTPUT/FORWARD, chính sách ACCEPT/DROP/REJECT và lưu quy tắc
fail2ban
Tự động chặn IP tấn công, cấu hình jail.local và quản lý danh sách cấm
TCP Wrappers
Sử dụng hosts.allow và hosts.deny để kiểm soát truy cập dịch vụ theo máy khách
Tăng cường bảo mật SSH
Tắt đăng nhập root, xác thực bằng khóa và tối ưu hóa sshd_config
Xác thực khóa SSH
Sử dụng ssh-keygen, ssh-copy-id và quản lý tệp authorized_keys
Nội dung kỹ thuật chi tiết
Các câu lệnh và cấu hình quan trọng cho bảo mật mạng Linux
C1. firewalld - Quản lý tường lửa động
firewalld là giải pháp tường lửa mặc định trên RHEL 7+, Fedora, CentOS. Nó sử dụng khái niệm vùng (zone) để xác định mức độ tin cậy cho kết nối mạng. Mọi thay đổi có thể áp dụng ngay lập tức (runtime) hoặc lưu vĩnh viễn (permanent).
Lưu ý: Flag --permanent lưu cấu hình vào ổ đĩa, cần chạy --reload để áp dụng. Nếu không có flag này, thay đổi sẽ mất sau khi khởi động lại máy.
C2. iptables - Bộ lọc gói tin cấp thấp
iptables là công cụ tường lửa truyền thống trên Linux, làm việc trực tiếp với Netfilter trong nhân (kernel). Gồm 3 chuỗi chính: INPUT (gói tin đến), OUTPUT (gói tin đi), FORWARD (chuyển tiếp). Các đích đến (target): ACCEPT, DROP, REJECT.
Cảnh báo: Lệnh iptables -P INPUT DROP sẽ chặn mọi kết nối đến nếu không có quy tắc ACCEPT trước đó. Luôn thêm quy tắc cho SSH trước khi đặt chính sách DROP!
C3. fail2ban - Tự động chặn tấn công dò mật khẩu
fail2ban giám sát nhật ký (log) của các dịch vụ, phát hiện các IP có hành vi tấn công dò mật khẩu (brute-force) và tự động chặn chúng thông qua iptables hoặc firewalld. Cấu hình chủ yếu qua tệp jail.local.
C4. TCP Wrappers - Kiểm soát truy cập dịch vụ
Sử dụng hai tệp cấu hình để kiểm soát truy cập theo máy chủ (host). Thứ tự ưu tiên: Đọc hosts.allow trước (nếu khớp thì CHO PHÉP), sau đó mới đến hosts.deny (nếu khớp thì CHẶN). Nếu không khớp cả hai, mặc định là CHO PHÉP.
C5. Củng cố SSH - Bảo mật dịch vụ SSH
Cấu hình tệp sshd_config là bước quan trọng nhất để bảo vệ máy chủ. Hãy tắt đăng nhập bằng root, tắt xác thực mật khẩu, giới hạn người dùng và thay đổi cổng mặc định.
C6. Xác thực dựa trên khóa SSH
Xác thực bằng khóa SSH an toàn hơn mật khẩu vì không thể bị dò tìm. Ed25519 là thuật toán hiện đại, an toàn và hiệu quả hơn so với RSA truyền thống.
Ưu điểm Ed25519: Khóa ngắn hơn (256-bit so với 2048-bit của RSA), tốc độ tạo nhanh hơn và mức độ bảo mật tương đương RSA 3072-bit. Đây là lựa chọn được khuyến nghị hiện nay.
Lab Thực Hành: Bảo mật toàn diện máy chủ Linux
Thực hiện từng bước trên hệ thống RHEL/Fedora/CentOS để củng cố an ninh mạng
Kiểm tra và cấu hình firewalld
Xem trạng thái, danh sách các dịch vụ đang mở và thêm http/https/ssh vĩnh viễn
Chặn một địa chỉ IP cụ thể
Sử dụng quy tắc chi tiết (rich rule) để chặn một IP nghi ngờ tấn công
Cài đặt và cấu hình fail2ban
Cài đặt từ kho dnf, tạo tệp cấu hình riêng và bảo vệ dịch vụ SSH
Kiểm tra trạng thái fail2ban
Xem danh sách các IP đang bị chặn và lịch sử tấn công
Cấu hình TCP wrappers
Chỉnh sửa hosts.allow và hosts.deny để giới hạn SSH theo dải mạng
Tạo cặp khóa SSH
Sử dụng Ed25519 trên máy khách cùng với mật khẩu bảo vệ khóa (passphrase)
Đưa khóa công khai lên máy chủ
Sử dụng ssh-copy-id để tự động thiết lập quyền truy cập cho máy khách
Củng cố tệp cấu hình sshd_config
Khóa hoàn toàn đăng nhập bằng mật khẩu và tài khoản root sau khi khóa SSH đã hoạt động
10 Câu hỏi ôn tập Chương 26
Kiểm tra hiểu biết về bảo mật mạng trên hệ điều hành Linux
firewall-cmd --add-port=8443/tcp --permanent sau đó chạy thêm firewall-cmd --reload để áp dụng cấu hình đã lưu vào bộ nhớ.--permanent chỉ ghi các quy tắc vào tệp XML trên ổ đĩa để không bị mất khi khởi động lại. Lệnh --reload sẽ đọc lại các tệp đó và nạp vào tường lửa đang chạy mà không làm ngắt các kết nối mạng hiện hữu.