Hướng dẫn sử dụng phần mềm firewall phổ biến trên Linux
Bài viết dưới đây hướng dẫn cách để người dùng có thể nắm cơ bản việc cài đặt và cấu hình ban đầu cho việc sử dụng firewall phổ biến trên hệ điều hành nhân Linux
1 UFW (Uncomplicated Firewall)
1.1 Giới thiệu khái quát
- Đúng như tên gọi, UFW (viết tắt của Uncomplicated Firewall) là một phần mềm tường lửa dễ sử dụng, được phát triển bởi Canonical nhằm đơn giản hóa việc quản lý tường lửa trên các hệ điều hành Ubuntu và Debian.
- UFW cung cấp một giao diện dòng lệnh thân thiện để thao tác với iptables, giúp người dùng thiết lập các quy tắc lọc mạng mà không cần hiểu sâu về cú pháp phức tạp của iptables.
- Với cú pháp đơn giản, UFW đặc biệt phù hợp cho người dùng phổ thông, quản trị viên mới bắt đầu, hoặc các hệ thống không yêu cầu cấu hình tường lửa quá phức tạp.
1.2 Tính năng nổi bật
- Cú pháp đơn giản, dễ nhớ.
- Hỗ trợ cả IPv4 và IPv6, logging bật/tắt dễ dàng
- Có profiles định sẵn cho các dịch vụ phổ biến như SSH, HTTP, MySQL
- Chính sách mặc định: chặn toàn bộ inbound, cho phép outbound
- Tích hợp khởi động cùng hệ thống
1.3 Ưu, nhược điểm
- Ưu điểm:
- Phù hợp cả người mới và quản trị phổ thông
- Thiết lập nhanh chóng với chính sách an toàn đã định sẵn
- Giao diện CLI rõ ràng, ít lỗi khi viết thủ công rule
- Nhược điểm:
- Chức năng hạn chế
- Hỗ trợ ít distro, chỉ phù hợp với Ubuntu/Debian
- Không thích hợp để quản lý tập trung
1.4 Hướng dẫn cài đặt và cấu hình
- Trong bài hướng dẫn này tôi sẽ hướng dẫn cấu hình trên hệ điều hành Ubuntu 22.04.
- Về cấu trúc của một câu lệnh tổng quát (lưu ý lệnh dưới được chạy trên user root):
ufw <command> <rule-specification>
- Trong đó:
- command (lệnh): Gồm các hành động người dùng muốn thực hiện. Một vài lệnh phổ biến như: allow, deny, status, enable, disable…
- rule-specification (tham số): Gồm các tham số bổ sung chỉ định cổng, giao thức, IP…
- Với ví dụ này bước đầu tiên kiểm tra tình trạng hoạt động của UFW với lệnh sau:
ufw status
. Khi chưa bật thì kết quả trả về là inactive như hình.

- Bởi vì mặc định khi bật UFW sẽ chắn tất cả các kết nối đến VPS, để đảm bảo không gián đoạn kết nối SSH đến VPS thì ta cần cho phép kết nối đến port SSH (22).
ufw allow 22
Hoặc
ufw allow ssh

- Ngoài ra người dùng có thể thêm những rule khác để phù hợp với nhu cầu sử dụng.
- Sau đó tiến hành bật UFW để rule đã thêm được áp dụng:
ufw enable

- Kiểm tra lại hoạt động của UFW và các rule đã được thêm vào.
ufw status
Hoặc
ufw show added

2 IPTABLES
2.1 Giới thiệu khái quát
- Iptables là một công cụ dòng lệnh mạnh mẽ dùng để thiết lập, duy trì và kiểm soát các quy tắc lọc gói tin mạng trên hệ thống Linux. Nó là thành phần giao tiếp với Netfilter, một hệ thống trong nhân (kernel) Linux, cho phép quản trị viên kiểm soát luồng dữ liệu ra vào máy chủ theo nhiều tiêu chí như địa chỉ IP, cổng, giao thức, trạng thái kết nối…
- Iptables hoạt động bằng cách xử lý các gói tin thông qua các bảng (tables) và chuỗi quy tắc (chains), trong đó mỗi quy tắc sẽ quyết định số phận của một gói tin: cho phép, từ chối, chuyển tiếp, ghi log, hoặc sửa đổi.
2.2 Tính năng nổi bật
- Lọc gói (packet filtering) dựa trên IP, port, protocol, trạng thái kết nối.
- NAT – dùng cho chia sẻ IP, port forwarding.
- Giám sát trạng thái kết nối (stateful inspection): NEW, ESTABLISHED, RELATED, INVALID.
- Tạo custom chain, logging, đánh dấu, routing nâng cao.
- Hỗ trợ đầy đủ IPv4, IPv6, ARP (qua ip6tables, arptables…).
2.3 Ưu, nhược điểm
- Ưu điểm:
- Quyền kiểm soát chi tiết, rất phù hợp với hệ thống phức tạp.
- Được cài đặt sẵn trong hầu hết các bản phân phối Linux.
- Rất mạnh, xử lý mọi nghiệp vụ firewall: NAT, filtering, mangle, raw, custom chain…
- Nhược điểm:
- Cú pháp phức tạp, dễ nhầm lẫn, yêu cầu hiểu sâu về mạng & Netfilter.
- Quản lý rule thủ công dễ sai sót, update rule dễ bỏ sót hoặc gây lỗi.
- Hiệu năng kém khi số lượng rule nhiều
2.4 Hướng dẫn cài đặt và cấu hình
- Về cấu trúc của một câu lệnh tổng quát (lưu ý lệnh dưới được chạy trên user root):
iptables <table> <chain> <action> <parameters/options>
- Trong đó:
- table (bảng): Chỉ định bảng mà bạn thao tác. Mặc định là filter, ngoài ra có: nat, magle, raw, security.
- chain (chuỗi): Nơi áp dụng luật. Ví dụ: INPUT, OUTPUT, FORWARD, PREROUTING
- action (hành động): Quy tắc áp dụng. Ví dụ: -A (thêm rule), -D (xóa rule), -I (chèn thêm rule ở đầu danh sách)…
- parameters/options (tham số hoặc điều kiện khác): Ví dụ: -p tcp (giao thức TCP), –dport 22 (cổng đích 22), -j ACCEPT (cho phép)…
- Thực hành với thực tế. Đầu tiên ta cần kiểm tra các rule đang tồn tại bằng lệnh:
iptables -nvL

- Thêm rule cho phép kết nối tất cả kết nối đến VPS với port 22 (SSH).
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- Kiểm tra lại rule đã thêm vào bằng lệnh.
iptables -nvL
Hoặc
iptables -S
Trên đây là các hướng dẫn cơ bản để sử dụng một vài firewall thông dụng trên Linux. Chúc quý khách có những trải nghiệm hài lòng nhất khi sử dụng dịch này của chúng tôi.