UFW là gì? Toàn tập về Ubuntu Firewall và các lệnh, cách cài đặt

NỘI DUNG

UFW là gì và tại sao nó lại trở thành công cụ không thể thiếu đối với quản trị viên hệ thống Linux? Tại InterData, chúng tôi nhận thấy rằng việc bảo mật VPS ngay từ bước đầu tiên là yếu tố then chốt để vận hành hệ thống ổn định. Bài viết này sẽ phân tích chi tiết về Uncomplicated Firewall – giải pháp tường lửa giúp bạn thiết lập hàng rào bảo vệ máy chủ mạnh mẽ chỉ với vài câu lệnh đơn giản, giải quyết nỗi lo về sự phức tạp của các công cụ truyền thống.

UFW là gì?

UFW (Uncomplicated Firewall) là một công cụ quản lý firewall trên Linux, được thiết kế nhằm đơn giản hóa việc cấu hình tường lửa, đặc biệt trên các hệ điều hành Ubuntu và Debian. Thay vì phải làm việc trực tiếp với các rule phức tạp của iptables, UFW cung cấp một lớp giao diện (frontend) giúp người quản trị thiết lập firewall thông qua các câu lệnh ngắn gọn, dễ đọc và ít rủi ro hơn.

Về bản chất, UFW không phải là một firewall độc lập. Công cụ này hoạt động như một lớp trừu tượng (abstraction layer) phía trên iptables, trên Ubuntu mới, backend mặc định là nftables – hệ thống firewall cốt lõi của Linux kernel. Trên các phiên bản Ubuntu hiện đại (20.04+), UFW mặc định sử dụng nftables làm backend, thay vì iptables truyền thống.

UFW là gì?

Khi bạn tạo rule bằng UFW, các rule đó sẽ được tự động chuyển đổi và áp dụng xuống iptables ở tầng thấp hơn. Nhờ vậy, người dùng vẫn tận dụng được sức mạnh của iptables nhưng không cần nắm rõ cấu trúc rule phức tạp của nó.

UFW được phát triển và duy trì bởi Canonical, công ty đứng sau Ubuntu, và thường được cài sẵn trên Ubuntu Server.

Ví dụ minh họa: Để mở cổng 80 (HTTP) cho Web Server:

Với iptables: Bạn cần hiểu về chain, protocol và state.

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Với UFW: Bạn chỉ cần ra lệnh “cho phép”.

ufw allow 80/tcp

Sự khác biệt này giúp giảm thiểu đáng kể thời gian thao tác và sai sót trong quá trình vận hành hệ thống.

Vì sao UFW phổ biến trên Ubuntu Server?

Theo thống kê từ W3Techs, Ubuntu hiện là bản phân phối Linux phổ biến nhất trên các máy chủ web, chiếm hơn 30% thị phần Linux server toàn cầu. Sự phổ biến của Ubuntu kéo theo việc công cụ UFW trở thành tiêu chuẩn mặc định trong việc cấu hình bảo mật cơ bản.

Dưới đây là những lý do khiến ufw ubuntu trở thành từ khóa được tìm kiếm hàng đầu:

Đơn giản hóa quy trình Firewall

Đối với các doanh nghiệp vừa và nhỏ hoặc các nhà phát triển cá nhân thuê VPS tại InterData, việc dành hàng giờ để học cú pháp iptables là không khả thi. UFW giúp họ thiết lập một bức tường lửa cơ bản (Basic Firewall) chỉ trong vòng chưa đầy 5 phút.

Vì sao UFW phổ biến trên Ubuntu Server

Giảm rủi ro cấu hình sai (Human Error)

Trong quản trị mạng, “cấu hình sai” nguy hiểm hơn “không cấu hình”. Việc viết sai một rule trong iptables có thể dẫn đến việc xung đột quy tắc hoặc vô tình mở cửa cho hacker. UFW tự động hóa các bước xử lý hậu cần, đảm bảo các rule được áp dụng đúng logic và thứ tự ưu tiên.

Được cài đặt mặc định và khuyến nghị

Hầu hết các hướng dẫn Hardening (tăng cường bảo mật) cho Ubuntu server đều bắt đầu bằng việc kích hoạt UFW. Nó có sẵn trên hệ thống (dù mặc định đang tắt), giúp người dùng không cần cài đặt thêm phần mềm từ bên thứ ba, giảm thiểu rủi ro về độ tin cậy của phần mềm.

Số liệu thực tế: Trong các bài kiểm tra bảo mật CIS Benchmark (Center for Internet Security) dành cho Ubuntu Linux, việc cài đặt và kích hoạt UFW/iptables là một trong những yêu cầu bắt buộc để đạt điểm chuẩn an toàn thông tin.

Ưu điểm và nhược điểm khi sử dụng công cụ UFW

Việc hiểu rõ hai mặt của công cụ UFW giúp người quản trị ra quyết định chính xác khi triển khai trên hệ thống Production.

Ưu điểm của UFW

  • Cú pháp dễ nhớ (User-friendly syntax): Các lệnh sử dụng từ khóa tiếng Anh đơn giản như allow (cho phép), deny (chặn), limit (giới hạn).
  • Thiết lập nhanh: Hỗ trợ tính năng “Application Profiles”. Ví dụ: khi bạn cài đặt Nginx, UFW tự động nhận diện profile “Nginx Full”, bạn chỉ cần kích hoạt profile này thay vì mở từng cổng thủ công.
  • Tích hợp Logging: Công cụ UFW cung cấp khả năng ghi nhật ký (logging) dễ dàng bật/tắt, giúp quản trị viên theo dõi các kết nối bị chặn hoặc được chấp nhận.
  • Khả năng mở rộng: Dù đơn giản, UFW vẫn cho phép cấu hình các file text thủ công (/etc/ufw/before.rules) để can thiệp sâu hơn nếu cần.

Ưu điểm và nhược điểm khi sử dụng UFW

Nhược điểm của UFW

  • Ít linh hoạt hơn iptables thuần: UFW được thiết kế cho các tác vụ phổ biến. Đối với các hệ thống mạng phức tạp yêu cầu NAT (Network Address Translation) nâng cao, mangle packet hoặc định tuyến gói tin dựa trên nội dung (packet content), UFW sẽ bộc lộ hạn chế.
  • Khó khăn trong việc Debug chi tiết: Do là lớp vỏ bọc, đôi khi lỗi phát sinh từ tầng dưới (iptables) nhưng UFW chỉ báo lỗi chung chung, gây khó khăn cho việc chẩn đoán chuyên sâu.
  • Không phù hợp cho Gateway Router phức tạp: Nếu bạn đang xây dựng một server đóng vai trò là Router chính cho cả một hệ thống mạng lớn với hàng trăm rule điều hướng, UFW có thể không phải là lựa chọn tối ưu về mặt quản lý.

So sánh UFW và Iptables: Nên dùng cái nào?

Câu hỏi “UFW vs Iptables” luôn là chủ đề tranh luận sôi nổi. Thực tế, chúng không đối đầu nhau mà là mối quan hệ hỗ trợ. Tuy nhiên, ở góc độ người dùng (User Experience), chúng ta có thể so sánh như sau:

Bảng so sánh chi tiết UFW vs Iptables:

Tiêu chí UFW (Uncomplicated Firewall) Iptables (Netfilter tool)
Độ khó Thấp – Dành cho người mới và Admin muốn sự nhanh gọn. Cao – Dành cho chuyên gia mạng.
Cú pháp Ngôn ngữ tự nhiên (allow, deny). Cú pháp kỹ thuật, nhiều flags (-A, -p, -j).
Mức độ kiểm soát Trung bình – Đủ dùng cho host-based firewall. Rất cao – Kiểm soát từng bit trong gói tin.
Rủi ro lỗi Thấp – Ít khả năng cấu hình sai nghiêm trọng. Cao – Dễ gây mất kết nối nếu thiếu kinh nghiệm.
Cấu hình mặc định Chặn tất cả chiều vào, mở tất cả chiều ra (Safe default). Chấp nhận tất cả (Accept all) cho đến khi có rule.

So sánh UFW và Iptables

Trường hợp nên dùng UFW

  • Quản trị viên cấu hình VPS đơn lẻ (Web Server, Database Server).
  • Người mới làm quen với Linux hoặc Ubuntu.
  • Các môi trường Dev/Test cần triển khai nhanh.
  • Hệ thống không yêu cầu định tuyến gói tin phức tạp.

Trường hợp nên dùng Iptables (hoặc Nftables)

  • Quản trị viên mạng (Network Engineer) cần xây dựng Gateway, Router mềm.
  • Hệ thống yêu cầu các rule lọc gói tin dựa trên trạng thái phức tạp hoặc sửa đổi gói tin (packet mangling).
  • Khi cần tối ưu hóa hiệu suất cực cao cho các hệ thống chịu tải lớn (High Load), việc viết rule trực tiếp đôi khi giúp giảm thiểu độ trễ dù rất nhỏ.

Khi nào bạn nên sử dụng UFW?

Dựa trên kinh nghiệm triển khai hạ tầng tại InterData, chúng tôi khuyến nghị sử dụng UFW trong các ngữ cảnh sau:

VPS cá nhân và Blog

Nếu bạn đang vận hành một blog WordPress, một trang web cá nhân hoặc một server chạy Docker đơn giản, ufw cho vps là lựa chọn số 1. Nó đủ mạnh để chặn các cuộc dò quét cổng (port scanning) và ngăn chặn truy cập trái phép mà không tốn tài nguyên hệ thống.

Server chạy Web/App phổ biến

Với các ứng dụng tiêu chuẩn như Nginx, Apache, Node.js, MySQL,… Công cụ UFW đáp ứng hoàn hảo nhu cầu mở/đóng port. Khả năng rate limiting (giới hạn tốc độ kết nối) của UFW cũng hỗ trợ tốt việc ngăn chặn Bruteforce attack vào cổng SSH (Port 22).

Môi trường không yêu cầu rule phức tạp

Trong các mô hình kiến trúc Microservices hiện đại, tường lửa thường được xử lý ở lớp ngoài (Cloud Firewall của nhà cung cấp) hoặc lớp cân bằng tải (Load Balancer). Khi đó, firewall trên từng node server (Host-based firewall) chỉ cần làm nhiệm vụ cơ bản là whitelist IP nội bộ. UFW thực hiện việc này rất gọn gàng và hiệu quả.

Nếu bạn đang tìm một dịch vụ VPS Linux ổn định, dễ quản trị và tối ưu chi phí, VPS Linux của InterData là lựa chọn đáng cân nhắc. Hạ tầng VPS sử dụng phần cứng hiệu năng cao, ổ cứng SSD NVMe tốc độ nhanh, giúp website và ứng dụng Linux vận hành mượt mà, độ trễ thấp. Người dùng được toàn quyền root, dễ dàng cài đặt UFW, iptables hay bất kỳ stack nào theo nhu cầu thực tế. Bên cạnh đó, InterData còn có datacenter tại Việt Nam, kết nối nội địa nhanh, hỗ trợ kỹ thuật 24/7, phù hợp cho cả cá nhân, doanh nghiệp nhỏ lẫn SysAdmin quản lý nhiều server.

Điều kiện cần có trước khi cài đặt UFW

Trước khi tiến hành cài đặt UFW, hệ thống của bạn cần đáp ứng một số yêu cầu cơ bản sau:

  • Hệ điều hành: Bất kỳ bản phân phối Linux nào đang được cài đặt và sử dụng trên máy
  • Quyền truy cập: Có quyền root hoặc sử dụng được lệnh sudo

Hướng dẫn cài đặt UFW trên các hệ điều hành Linux phổ biến

Dưới đây là các lệnh giúp cấu hình firewall ubuntu nhanh chóng:

Cài đặt UFW trên Ubuntu

Theo mặc định, UFW đã được tích hợp sẵn trên hầu hết các bản phân phối dựa trên Ubuntu. Trong trường hợp UFW đã bị gỡ bỏ trước đó, bạn có thể cài đặt lại bằng cách chạy lệnh sau:

# apt-get install ufw -y

Cài đặt UFW trên Debian

Để cài đặt UFW trên Debian, bạn sử dụng lệnh:

# apt-get install ufw -y

Cài đặt UFW trên CentOS

Mặc định, UFW không có sẵn trong kho phần mềm của CentOS. Do đó, trước tiên bạn cần cài đặt kho EPEL vào hệ thống bằng lệnh:

# yum install epel-release -y

Sau khi kho EPEL đã được cài đặt, tiến hành cài UFW với lệnh:

# yum install --enablerepo="epel" ufw -y

Sau khi cài đặt xong, bạn cần khởi động UFW và thiết lập để firewall tự động hoạt động bằng lệnh:

# ufw enable

Tiếp theo, kiểm tra trạng thái của UFW để xác nhận dịch vụ đang chạy:

# ufw status

Kết quả hiển thị:

Status: active

Trong trường hợp bạn muốn tắt UFW, có thể sử dụng lệnh sau:

# ufw disable

Các quy tắc và lệnh UFW thường dùng trong thực tế

Kiểm tra trạng thái UFW đang bật hay tắt

Để kiểm tra xem UFW hiện tại có đang hoạt động hay không, bạn sử dụng lệnh sau:

sudo ufw status
Kiểm tra ufw có bật hay không

Qua kết quả trả về, ta có thể thấy rằng UFW vẫn chưa được bật.

Cách bật UFW trên Ubuntu:

Để kích hoạt bật UFW, bạn chạy lệnh:

sudo ufw enable
Bật UFW

Sau khi thực hiện, hệ thống sẽ bật firewall UFW.

Bạn có thể kiểm tra lại trạng thái bằng lệnh:

sudo ufw status
xem trên ufw chặn hoặc cho phép những gì

Lúc này, UFW đã được bật và bắt đầu áp dụng các quy tắc firewall.

Cách tắt UFW khi cần thiết

Trong trường hợp cần tạm thời vô hiệu hóa UFW, bạn dùng lệnh:

sudo ufw disable

Lệnh này sẽ tắt toàn bộ các quy tắc firewall đang áp dụng.

tắt UFW

Chặn một địa chỉ IP cụ thể bằng UFW

Ví dụ, để chặn địa chỉ IP 172.16.1.222, bạn sử dụng lệnh:

sudo ufw deny from [ip muốn chặn]
Chặn địa chỉ IP

Sau đó, bạn có thể kiểm tra lại danh sách các rule đang áp dụng bằng:

sudo ufw status
xem IP đã chặn

Chặn một mạng con (subnet) bằng UFW

Nếu bạn muốn chặn toàn bộ mạng con 172.16.10.0/24, hãy dùng lệnh:

sudo ufw deny from [mạng con muốn chặn]

Chặn kết nối từ IP đến một Network Interface cụ thể

Để chặn các kết nối từ một IP đến interface eth0, bạn chạy lệnh:

sudo ufw deny in on eth0 from [ip muốn chặn]

Cho phép một địa chỉ IP được kết nối

Ví dụ, để cho phép IP 172.16.1.30 kết nối đến server, bạn sử dụng lệnh:

sudo ufw allow from [IP muốn cho phép]
Cho phép các IP kết nối

Sau đó, kiểm tra lại các rule bằng:

sudo ufw status
Dùng lệnh sau để xem kết nối ip

Cho phép IP kết nối thông qua Network Interface cụ thể

Để cho phép IP 172.16.1.222 kết nối thông qua interface eth0, bạn dùng lệnh:

sudo ufw allow in on eth0 from [ip]

Kiểm tra lại các rule đã áp dụng:

sudo ufw status

Cách xóa các quy tắc UFW đã thiết lập

Để xóa một rule đã cho phép IP 172.16.1.30 kết nối trước đó, bạn sử dụng:

sudo ufw delete allow from [IP]

Như vậy, quy tắc này đã được xóa thành công.

Xóa quy tắc UFW theo ID

Ngoài cách xóa trực tiếp, bạn cũng có thể xóa rule dựa trên ID của quy tắc.

Trước tiên, liệt kê danh sách rule kèm ID:

sudo ufw status numbered
dùng ID của các quy tắc để xóa

Sau khi xem danh sách, để xóa rule có ID = 1, bạn chạy:

sudo ufw delete 1
xóa quy tắc theo ID

Liệt kê các ứng dụng có sẵn trong UFW

Để xem các cấu hình ứng dụng mà UFW hỗ trợ sẵn, sử dụng lệnh:

sudo ufw app list

Cách cho phép kết nối SSH bằng UFW

Cho phép tất cả các kết nối SSH thông qua cấu hình mặc định:

sudo ufw allow OpenSSH

Hoặc chỉ định trực tiếp cổng SSH (mặc định là 22):

sudo ufw allow 22

Cho phép SSH từ IP hoặc mạng con cụ thể

Để chỉ cho phép SSH từ IP 172.16.1.31, bạn dùng lệnh:

sudo ufw allow from 172.16.1.31 proto tcp to any port 22

Cho phép toàn bộ mạng con 172.16.1.0/24 kết nối SSH:

sudo ufw allow from 172.16.1.0/24 proto tcp to any port 22

Cho phép Rsync từ IP hoặc mạng con cụ thể

Rsync là công cụ đồng bộ dữ liệu, thường sử dụng cổng 873.

Cho phép IP 172.16.1.31 kết nối Rsync:

sudo ufw allow from 172.16.1.31 to any port 873

Cho phép toàn bộ mạng con 172.16.1.0/24 kết nối Rsync:

sudo ufw allow from 172.16.1.0/24 to any port 873

Cho phép Nginx HTTP và HTTPS qua UFW

Trước tiên, kiểm tra các profile Nginx có sẵn:

sudo ufw app list | grep Nginx
Cho phép Nginx HTTP, HTTPS

Cho phép cả HTTP và HTTPS (cổng 80 và 443):

sudo ufw allow "Nginx Full"

Chỉ cho phép HTTP (cổng 80):

sudo ufw allow http

Chỉ cho phép HTTPS (cổng 443):

sudo ufw allow https

Những điểm cần đặc biệt lưu ý khi làm việc với UFW và iptables

Lưu ý về rule mặc định khi bật hoặc tắt UFW

Một điểm quan trọng cần ghi nhớ là khi bật hoặc tắt UFW, các rule mặc định của các chain trong iptables sẽ thay đổi. Ví dụ, khi disable UFW, các chain INPUTOUTPUT sẽ có rule mặc định là ACCEPT. Ngược lại, khi UFW được bật, các rule mặc định này sẽ được thiết lập theo chính sách mà UFW áp dụng.

Cần lưu cấu hình trước khi áp dụng iptables

Khi thao tác trực tiếp với iptables, bạn không nên áp dụng cấu hình ngay mà cần lưu lại toàn bộ rule vào một file. Sau đó, cấu hình firewall sẽ được nạp lại từ file này để đảm bảo tính nhất quán và tránh lỗi ngoài ý muốn.

Trước tiên, tạo một thư mục để lưu các file cấu hình iptables:

mkdir /etc/iptables

Cách lưu và khôi phục cấu hình iptables

Sau khi hoàn tất việc cấu hình iptables, bạn lưu toàn bộ rule hiện tại vào một file bằng lệnh:

iptables-save > /etc/iptables/rules.v4

Khi cần áp dụng lại cấu hình đã lưu, bạn sử dụng lệnh:

iptables-restore < /etc/iptables/rules.v4

Cách làm này giúp đảm bảo các rule firewall được áp dụng đúng như cấu hình ban đầu.

Theo mặc định, iptables chỉ có ba chain chính là INPUT, OUTPUTFORWARD. Tuy nhiên, khi bạn cài đặt và sử dụng UFW, hệ thống sẽ tự động tạo thêm nhiều chain khác. Các chain này được sinh ra dựa trên nội dung cấu hình nằm trong thư mục /etc/ufw, và được UFW sử dụng để quản lý firewall một cách đơn giản hơn.

Câu hỏi thường gặp (FAQs)

Dưới đây là giải đáp cho những thắc mắc phổ biến của người dùng về UFW:

1. UFW có an toàn không?

Có. UFW sử dụng chính nền tảng Netfilter bên trong nhân Linux – công nghệ bảo mật đã được kiểm chứng qua hàng thập kỷ. Sử dụng UFW không làm giảm đi tính bảo mật so với việc dùng iptables trực tiếp, miễn là bạn cấu hình đúng nguyên tắc (chặn mặc định, chỉ mở những gì cần thiết).

2. UFW có thay thế hoàn toàn iptables không?

Không hoàn toàn. UFW là giao diện quản lý. Trên các hệ thống Linux hiện đại, iptables đang dần được thay thế bởi nftables. UFW hiện tại cũng đã hỗ trợ backend là nftables. Vì vậy, có thể nói UFW là công cụ quản lý thay thế cho việc gõ lệnh iptables, chứ không thay thế công nghệ lọc gói tin bên dưới.

3. Dùng UFW có làm chậm server không?

Không đáng kể. UFW chỉ là công cụ tạo rule. Việc xử lý gói tin do nhân Linux đảm nhiệm. Ảnh hưởng đến hiệu suất CPU và RAM là cực kỳ thấp, gần như bằng không đối với các server hiện đại.

4. UFW có phù hợp cho production không?

Hoàn toàn phù hợp. Rất nhiều hệ thống Production lớn vẫn sử dụng UFW để quản lý bảo mật mức Host (Host-level security) nhờ sự ổn định và dễ bảo trì của nó.

5. Người mới học Linux có nên dùng UFW?

Rất nên. Đây là bước đệm tuyệt vời để hiểu về khái niệm port, protocol, allow/deny trước khi đi sâu vào các kiến thức mạng phức tạp hơn.

6. Tôi lỡ tay bật UFW mà quên allow SSH, phải làm sao?

Đây là lỗi thường gặp. Nếu bạn dùng VPS tại InterData hoặc các nhà cung cấp khác, bạn có thể truy cập vào tính năng Console/VNC (màn hình điều khiển trực tiếp qua trình duyệt) để đăng nhập và tắt UFW bằng lệnh sudo ufw disable, sau đó cấu hình lại rule SSH.

UFW (Uncomplicated Firewall) là minh chứng cho triết lý “Đơn giản là sức mạnh” của Linux. Nó loại bỏ sự phức tạp không cần thiết, giúp quản trị viên tập trung vào mục tiêu quan trọng nhất: Bảo vệ hệ thống.

Dù bạn là một sinh viên đang tập tành quản trị mạng hay một SysAdmin quản lý hàng chục server, việc nắm vững UFW là gì và cách sử dụng nó là kỹ năng bắt buộc. Tuy nhiên, hãy luôn nhớ nguyên tắc vàng: Luôn cho phép kết nối SSH trước khi bật tường lửa để tránh tự nhốt mình ở ngoài.