Hướng Dẫn Thiết Lập Tường Lửa FirewallD Trên CentOS 7
FirewallD là trình quản lý tường lửa mặc định trên CentOS 7. Bài viết hướng dẫn cài đặt, khái niệm zone, mở/đóng port và service, rich rule chặn IP, port forwarding và các thao tác thường dùng từ A–Z.
FirewallD là gì?
FirewallD là dịch vụ quản lý tường lửa mặc định trên CentOS 7 / RHEL 7, hoạt động như lớp giao tiếp phía trên iptables. Điểm mạnh là hỗ trợ thay đổi quy tắc động (không cần xoá toàn bộ rồi nạp lại) và chia theo "zone" (vùng tin cậy) — rất tiện cho VPS.
Mọi lệnh dưới đây chạy với quyền root (hoặc thêm sudo phía trước).
Khái niệm cốt lõi cần nắm
- Zone (vùng): nhóm quy tắc theo mức độ tin cậy. Hay dùng: public (mặc định, dành cho mạng công cộng), trusted (tin mọi kết nối), drop (chặn hết, không phản hồi).
- Service: tên dịch vụ định nghĩa sẵn (http, https, ssh, ftp...) thay vì nhớ số port.
- Runtime vs Permanent: quy tắc runtime áp dụng ngay nhưng mất khi reboot; thêm --permanent để lưu vĩnh viễn, sau đó cần --reload để nạp.
Bước 1: Cài đặt và khởi động FirewallD
CentOS 7 thường có sẵn. Nếu chưa, cài: yum install -y firewalld
Khởi động và cho tự chạy khi boot:
- Bật dịch vụ: systemctl start firewalld
- Cho chạy cùng hệ thống: systemctl enable firewalld
- Kiểm tra trạng thái: systemctl status firewalld
Nếu trước đó dùng iptables service, nên tắt để tránh xung đột: systemctl disable iptables
Bước 2: Kiểm tra cấu hình hiện tại
- Xem firewalld có đang chạy: firewall-cmd --state
- Xem zone mặc định: firewall-cmd --get-default-zone
- Xem toàn bộ quy tắc của zone đang dùng: firewall-cmd --list-all
- Liệt kê mọi zone: firewall-cmd --get-zones
- Xem danh sách service định nghĩa sẵn: firewall-cmd --get-services
Bước 3: Mở port và service
Mở theo tên service (gọn, khuyên dùng)
- Mở HTTP và HTTPS: firewall-cmd --permanent --add-service=http rồi firewall-cmd --permanent --add-service=https
- Nạp lại: firewall-cmd --reload
Mở theo số port
- Mở 8080/TCP vĩnh viễn: firewall-cmd --permanent --add-port=8080/tcp
- Mở dải port 6000-6010/UDP: firewall-cmd --permanent --add-port=6000-6010/udp
- Nạp lại: firewall-cmd --reload
Gỡ (đóng) port hoặc service
- Đóng port: firewall-cmd --permanent --remove-port=8080/tcp
- Gỡ service: firewall-cmd --permanent --remove-service=http
- Nhớ chạy firewall-cmd --reload sau khi thay đổi.
Bước 4: Đổi cổng SSH cho an toàn
Nếu đổi SSH sang cổng khác (ví dụ 2222) thì phải mở cổng đó trước khi đổi, kẻo bị khoá ngoài:
- Mở cổng mới: firewall-cmd --permanent --add-port=2222/tcp
- Nạp lại: firewall-cmd --reload
- Sửa cổng trong /etc/ssh/sshd_config rồi systemctl restart sshd
- Đăng nhập thử bằng cổng mới THÀNH CÔNG rồi mới gỡ cổng 22.
Bước 5: Rich rule — chặn / cho phép theo IP
Rich rule cho quy tắc chi tiết hơn.
- Chỉ cho 1 IP truy cập SSH: firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.2.3.4" service name="ssh" accept'
- Chặn hẳn một IP xấu: firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="5.6.7.8" reject'
- Sau đó nạp lại: firewall-cmd --reload
Bước 6: Port forwarding (chuyển tiếp cổng)
Chuyển lưu lượng từ cổng này sang cổng/IP khác. Cần bật masquerade trước:
- Bật masquerade: firewall-cmd --permanent --add-masquerade
- Chuyển 80 sang 8080 nội bộ: firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080
- Nạp lại: firewall-cmd --reload
Một số thao tác hữu ích khác
- Panic mode (chặn mọi kết nối khi bị tấn công): firewall-cmd --panic-on; tắt lại: firewall-cmd --panic-off
- Gán interface vào zone: firewall-cmd --permanent --zone=public --change-interface=eth0
- Đặt zone mặc định: firewall-cmd --set-default-zone=public
Lưu ý quan trọng
- Luôn thêm --permanent cho quy tắc cần giữ, rồi --reload; nếu không, reboot là mất.
- Cẩn thận khi thao tác SSH từ xa: mở cổng mới và kiểm tra kết nối trước khi đóng cổng cũ.
- Nhiều VPS cloud còn có tường lửa tầng ngoài (Security Group). Mở ở firewalld rồi vẫn phải mở ở tầng đó.
Kết luận
FirewallD giúp quản lý tường lửa CentOS 7 linh hoạt qua zone, service và rich rule. Quy trình chuẩn: kiểm tra trạng thái, mở port/service cần thiết kèm --permanent, rồi --reload. Với bảo mật nâng cao thì dùng rich rule để giới hạn theo IP.
Nếu bạn thuê VPS tại Tdhost và cần hỗ trợ cấu hình tường lửa, mở cổng dịch vụ hay chống truy cập trái phép, đội ngũ kỹ thuật hỗ trợ 24/7 — liên hệ ngay để được xử lý nhanh.
