Hệ thống Linux sử dụng các phương pháp khác nhau để quản lý tường lửa tùy thuộc vào phiên bản. Cụ thể, CentOS 7 có sự thay đổi lớn trong cấu hình tường lửa so với các phiên bản trước, mặc định sử dụng firewalld thay vì iptables như trên CentOS 6.x.
Xác định trình quản lý Firewall trên CentOS 8
Để kiểm tra xem hệ thống đang sử dụng firewalld hay iptables, bạn có thể thực hiện các lệnh sau:
Kiểm tra iptables:
systemctl status iptables.service
Nếu kết quả hiển thị "Unit iptables.service could not be found", điều đó cho thấy iptables không phải là trình quản lý tường lửa mặc định.
Kiểm tra firewalld:
systemctl status firewalld.service
Nếu bạn nhận được thông tin chi tiết về firewalld.service với trạng thái "Active: active (running)", điều này xác nhận firewalld đang hoạt động trên hệ thống.
Quản lý với Firewalld
1. Kiểm tra trạng thái dịch vụ Firewalld
Sử dụng lệnh sau để xem trạng thái của dịch vụ firewalld:
systemctl status firewalld.service
Trạng thái "Active: active (running)" cho thấy dịch vụ đang chạy. Ngược lại, "Active: inactive (dead)" chỉ ra dịch vụ đã dừng.
2. Kiểm tra trạng thái hoạt động của Firewall
Lệnh sau sẽ cho biết tường lửa đang hoạt động hay không:
firewall-cmd --state
3. Khởi động, Khởi động lại, Dừng và Tự động khởi động Firewalld
- Khởi động dịch vụ:
service firewalld start - Khởi động lại dịch vụ:
service firewalld restart - Dừng dịch vụ:
service firewalld stop - Vô hiệu hóa tự động khởi động cùng hệ thống:
systemctl disable firewalldLưu ý: Lệnh này chỉ ngăn tường lửa tự khởi động khi hệ thống khởi động lại, nhưng dịch vụ đang chạy vẫn tiếp tục hoạt động cho đến khi bị dừng thủ công hoặc hệ thống khởi động lại. Sau khi tắt tính năng tự động khởi động, bạn có thể cần khởi động lại dịch vụ để áp dụng thay đổi hoặc đợi lần khởi động hệ thống tiếp theo.
- Kích hoạt tự động khởi động cùng hệ thống:
systemctl enable firewalld.service
4. Xem cấu hình Firewall
Để xem tất cả các quy tắc và cấu hình hiện tại của tường lửa:
firewall-cmd --list-all
Nếu Firewalld chưa chạy, lệnh này sẽ báo lỗi. Hãy đảm bảo dịch vụ đang hoạt động trước khi thực hiện.
5. Quản lý Cổng Mở
- Kiểm tra xem một cổng có được mở hay không:
firewall-cmd --query-port=PORT/PROTOCOLVí dụ:
firewall-cmd --query-port=8080/tcp - Mở một cổng vĩnh viễn:
firewall-cmd --permanent --add-port=PORT/PROTOCOLVí dụ:
firewall-cmd --permanent --add-port=8080/tcpQuan trọng: Sau khi thêm quy tắc vĩnh viễn, bạn cần tải lại cấu hình tường lửa để áp dụng thay đổi.
- Gỡ bỏ một cổng vĩnh viễn:
firewall-cmd --permanent --remove-port=PORT/PROTOCOLVí dụ:
firewall-cmd --permanent --remove-port=8080/tcp - Xem tất cả các cổng đã mở:
firewall-cmd --list-port
6. Cập nhật Quy tắc Firewall
- Tải lại cấu hình (không ngắt kết nối):
firewall-cmd --reloadLệnh này áp dụng các thay đổi quy tắc mà không làm gián đoạn các kết nối hiện có.
- Tải lại toàn bộ cấu hình (có thể ngắt kết nối):
firewall-cmd --complete-reloadLệnh này tương tự như khởi động lại dịch vụ và có thể làm ngắt các kết nối đang hoạt động.
Quản lý với IPTables (Tham khảo)
Mặc dù không còn là mặc định trên các phiên bản mới, iptables vẫn được sử dụng trên một số hệ thống.
- Xem trạng thái tường lửa:
service iptables status - Tạm thời dừng tường lửa:
service iptables stop - Vĩnh viễn dừng tường lửa (trên các hệ thống cũ hơn):
chkconfig iptables off - Khởi động lại tường lửa:
service iptables restart