Hướng Dẫn Thiết Lập Tường Lửa UFW Trên Ubuntu – Mở Port Chuẩn, Kèm Cheat Sheet Lệnh
Hướng dẫn thiết lập tường lửa với UFW trên Ubuntu là bước bảo mật quan trọng đầu tiên mà bất kỳ quản trị viên nào cũng cần thực hiện ngay sau khi khởi tạo máy chủ. Một máy chủ Linux vừa đưa lên Internet mà không có tường lửa bảo vệ sẽ trở thành mục […]
Hướng dẫn thiết lập tường lửa với UFW trên Ubuntu là bước bảo mật quan trọng đầu tiên mà bất kỳ quản trị viên nào cũng cần thực hiện ngay sau khi khởi tạo máy chủ. Một máy chủ Linux vừa đưa lên Internet mà không có tường lửa bảo vệ sẽ trở thành mục tiêu dò quét tự động của hàng ngàn botnet brute-force SSH mỗi ngày. Nếu bạn đang triển khai máy chủ tại ThueVPSGiaRe.vn, việc nắm vững cách làm chủ UFW sẽ giúp hệ thống luôn an toàn trước các truy cập trái phép.
NỘI DUNG BÀI VIẾT
- 1. UFW là gì? Tại sao nên dùng trên VPS Ubuntu?
- 2. So sánh UFW và iptables: Khi nào nên chọn UFW?
- 3. Điều kiện cần chuẩn bị trước khi cấu hình UFW
- 4. Hướng dẫn thiết lập tường lửa với UFW trên Ubuntu từng bước chi tiết
- 5. Xử lý sự cố: Bị khóa kết nối SSH sau khi bật UFW
- 6. Bảng tổng hợp các lệnh UFW thông dụng (Cheat Sheet)
- 7. Cảnh báo quan trọng: Mối quan hệ giữa UFW và Docker
- 8. Checklist an toàn toàn diện sau khi bật UFW
- 9. Câu hỏi thường gặp (FAQ)
1. UFW là gì? Tại sao nên dùng trên VPS Ubuntu?
UFW (viết tắt của Uncomplicated Firewall) là giao diện dòng lệnh quản lý tường lửa mặc định trên Ubuntu, được phát triển nhằm đơn giản hóa việc cấu hình netfilter/iptables phức tạp thành các câu lệnh ngắn gọn, trực quan, dễ nhớ mà không làm giảm đi độ tin cậy của hệ thống mạng.
Khi bạn dựng một máy chủ Linux phục vụ công việc, hệ thống luôn lắng nghe dữ liệu trên nhiều cổng khác nhau. Nếu không có bộ lọc kiểm soát, kẻ tấn công có thể thăm dò các dịch vụ nội bộ chưa được bảo vệ. UFW đóng vai trò như một chốt chặn cổng kiểm soát toàn bộ lưu lượng ra vào máy chủ. Thay vì phải vật lộn với những quy tắc chuỗi (chains) dài dòng của iptables, bạn chỉ cần gõ vài từ đơn giản bằng tiếng Anh là đã có thể cho phép hoặc chặn đứng một luồng dữ liệu.
Đối với người mới bắt đầu học quản trị hệ thống qua các bài hướng dẫn sử dụng VPS, UFW chính là công cụ trực quan nhất để bảo vệ máy chủ mà không sợ làm sập mạng do sai sót cú pháp.

2. So sánh UFW và iptables: Khi nào nên chọn UFW?
Nhiều quản trị viên thường phân vân giữa việc tự viết luật bằng iptables hay sử dụng UFW. Thực chất, UFW không thay thế iptables mà hoạt động như một lớp vỏ bọc (frontend) thân thiện giao tiếp trực tiếp với iptables bên dưới nhân Linux.
| Tiêu chí so sánh | UFW (Uncomplicated Firewall) | iptables thuần |
|---|---|---|
| Độ khó học tập | Thấp, câu lệnh gần gũi với ngôn ngữ tự nhiên. | Cao, đòi hỏi hiểu rõ bảng lọc và quy tắc định tuyến mạng. |
| Cú pháp lệnh | Ngắn gọn (Ví dụ: ufw allow 80). |
Dài dòng (Ví dụ: iptables -A INPUT -p tcp --dport 80 -j ACCEPT). |
| Hỗ trợ IPv6 | Tự động cấu hình song song cho cả IPv4 và IPv6. | Phải tự viết bảng riêng qua công cụ ip6tables. |
| Khả năng tùy biến sâu | Đáp ứng tốt 90% nhu cầu vận hành web, app cơ bản. | Kiểm soát sâu từng gói tin, NAT phức tạp, packet mangling. |
| Đối tượng phù hợp | Chủ website, developer, máy chủ vừa và nhỏ. | Kỹ sư an ninh mạng, kiến trúc sư hạ tầng enterprise. |
Đối với máy chủ chạy độc lập, UFW cung cấp khả năng bảo vệ vững chắc mà không đòi hỏi người dùng phải ghi nhớ hàng chục tham số phức tạp. Trừ khi bạn xây dựng hệ thống Gateway, NAT đa tầng chuyên biệt, UFW luôn là lựa chọn tối ưu về mặt thời gian và hạn chế tối đa rủi ro gõ nhầm lệnh.
3. Điều kiện cần chuẩn bị trước khi cấu hình UFW
Trước khi bắt đầu gõ lệnh, bạn cần chuẩn bị môi trường đạt các yêu cầu cơ bản sau nhằm đảm bảo quá trình thiết lập không làm gián đoạn liên lạc máy chủ:
- Hệ điều hành: Ubuntu 20.04, 22.04 hoặc 24.04 LTS. Các nguyên lý đều được hỗ trợ nguyên bản.
- Quyền truy cập: Tài khoản có đặc quyền
sudohoặc tài khoảnroot. - Xác định đúng cổng SSH: Mặc định cổng SSH là 22. Nếu máy chủ đã đổi sang cổng khác (ví dụ: 2222, 5555), bạn cần ghi nhớ chính xác con số này.
- Đảm bảo tên máy chủ đã được nhận diện rõ ràng: Nếu cần tinh chỉnh lại tên máy, bạn có thể tham khảo bài viết thay đổi hostname trên Ubuntu trước khi triển khai cấu hình tường lửa.
- Chuẩn bị sẵn kênh cứu hộ Console/VNC: Hãy đảm bảo bạn có quyền truy cập vào bảng điều khiển máy chủ của nhà cung cấp đề phòng trường hợp cấu hình sai cổng kết nối.
4. Hướng dẫn thiết lập tường lửa với UFW trên Ubuntu từng bước chi tiết
Dưới đây là quy trình thực hiện theo tài liệu chính thức từ Ubuntu. Hãy thao tác tuần tự từng bước để giữ cho hệ thống luôn trong tầm kiểm soát.
Bước 1: Kiểm tra và cài đặt UFW
Hầu hết các bản phân phối Ubuntu tiêu chuẩn đều được cài đặt sẵn UFW. Bạn có thể kiểm tra xem gói phần mềm đã có mặt chưa bằng lệnh:
sudo ufw status
Nếu hệ thống báo lệnh không tồn tại (command not found), bạn cài đặt bổ sung thông qua trình quản lý gói apt:
sudo apt update && sudo apt install ufw -y

Bước 2: Cấu hình hỗ trợ IPv6 (Khuyên dùng)
Nếu máy chủ của bạn được cấp cả địa chỉ IPv6, hãy cấu hình để UFW quản lý luật cho cả hai giao thức IPv4 và IPv6 cùng lúc. Mở tệp tin cấu hình mặc định:
sudo nano /etc/default/ufw
Tìm dòng IPV6=no và đổi lại thành:
IPV6=yes
Nhấn tổ hợp Ctrl + O, Enter để lưu lại và Ctrl + X để thoát trình soạn thảo.

Bước 3: Thiết lập chính sách mặc định (Default Policies)
Nguyên tắc vàng trong bảo mật mạng là: Chặn toàn bộ truy cập đi vào và chỉ mở những cổng thực sự sử dụng. Hãy thiết lập từ chối mọi kết nối đến (incoming) và cho phép máy chủ truy cập ra ngoài bình thường (outgoing):
sudo ufw default deny incoming
sudo ufw default allow outgoing
Khi áp dụng hai lệnh này, máy chủ sẽ trở thành pháo đài đóng kín, ngăn chặn mọi yêu cầu kết nối từ mạng bên ngoài tới các cổng dịch vụ nội bộ.
⚠ CẢNH BÁO QUAN TRỌNG:
TUYỆT ĐỐI KHÔNG bật tường lửa (lệnh ufw enable) ở bước này. Vì bạn vừa áp dụng chính sách chặn toàn bộ kết nối đến, nếu kích hoạt ngay lập tức mà chưa cho phép SSH, phiên làm việc của bạn sẽ bị ngắt và bạn sẽ bị khóa khỏi máy chủ hoàn toàn.
Bước 4: Mở cổng kết nối SSH
Để duy trì phiên làm việc từ xa, bạn bắt buộc phải tạo luật mở cổng SSH trước khi kích hoạt tường lửa. Bạn có thể mở cổng theo tên dịch vụ chuẩn:
sudo ufw allow ssh
Hoặc mở chỉ đích danh số cổng mặc định 22 qua giao thức TCP:
sudo ufw allow 22/tcp
Trong trường hợp bạn đã đổi cổng SSH sang một cổng tùy chỉnh khác (ví dụ: cổng 2222), bạn bắt buộc phải dùng lệnh:
sudo ufw allow 2222/tcp
Bước 5: Kích hoạt tường lửa UFW
Sau khi đã chắc chắn cổng SSH đã được phép nhận dữ liệu, tiến hành kích hoạt tường lửa:
sudo ufw enable
Hệ thống sẽ hiển thị một cảnh báo xác nhận: Command may disrupt existing ssh connections. Proceed with operation (y|n)? Hãy nhập y rồi bấm phím Enter.
Kiểm tra lại trạng thái hoạt động cùng các quy tắc vừa thêm bằng lệnh:
sudo ufw status verbose

Bước 6: Mở port cho Web Server (HTTP/HTTPS)
Đối với máy chủ chạy ứng dụng web, bạn cần mở cổng 80 (truy cập HTTP) và cổng 443 (truy cập mã hóa bảo mật HTTPS). Để tìm hiểu thêm về Apache hoặc khi triển khai các hệ thống dùng LiteSpeed web server, Nginx, bạn mở cả hai cổng bằng lệnh:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Ngoài ra, UFW hỗ trợ hồ sơ ứng dụng (Application Profiles). Bạn có thể xem danh sách cấu hình nhận diện tự động qua lệnh:
sudo ufw app list
Nếu bạn cài đặt Nginx hoặc Apache, bạn có thể cấp phép nhanh chóng qua profile:
sudo ufw allow 'Nginx Full'
# Hoặc nếu dùng Apache:
sudo ufw allow 'Apache Full'
Bước 7: Mở cổng cho ứng dụng chuyên biệt (Database, Panel, Remote Desktop)
Khi bạn cài đặt giao diện đồ họa để đăng nhập VPS Ubuntu bằng Remote Desktop, bạn cần mở thêm cổng XRDP (3389):
sudo ufw allow 3389/tcp
Nếu bạn tự host ứng dụng như Immich trên VPS qua cổng 2283 hoặc sử dụng bảng điều khiển aaPanel (cổng 8888), CyberPanel (cổng 8090), hãy thêm lệnh mở tương ứng:
sudo ufw allow 2283/tcp
sudo ufw allow 8888/tcp
Lưu ý về cổng cơ sở dữ liệu: Tuyệt đối không mở công khai cổng MySQL (3306) hay PostgreSQL (5432) cho toàn bộ Internet. Nếu cần kết nối từ xa, chỉ mở riêng cho địa chỉ IP cố định của bạn:
sudo ufw allow from 123.45.67.89 to any port 3306 proto tcp
Bước 8: Chặn địa chỉ IP nguy hiểm hoặc dải mạng phá hoại
Khi phát hiện có IP đáng ngờ liên tục quét lỗi hoặc tấn công brute-force vào máy chủ, bạn chặn ngay lập tức bằng lệnh:
sudo ufw deny from 203.0.113.100
Trường hợp cần chặn nguyên một dải mạng con (Subnet CIDR):
sudo ufw deny from 203.0.113.0/24
Bước 9: Kiểm tra thứ tự và xóa quy tắc không còn sử dụng
Để xóa một luật trên UFW, phương pháp chuẩn xác và ít nhầm lẫn nhất là xem danh sách kèm số thứ tự:
sudo ufw status numbered
Hệ thống sẽ trả về danh sách có đánh số ở đầu dòng (ví dụ: [ 1], [ 2]). Nếu muốn xóa quy tắc tại dòng số 2, bạn thực thi:
sudo ufw delete 2
5. Xử lý sự cố: Bị khóa kết nối SSH sau khi bật UFW
Bị mất kết nối SSH là sự cố phổ biến nhất của người mới học quản trị máy chủ, nguyên nhân do kích hoạt tường lửa nhưng chưa cho phép cổng kết nối hoặc cho phép sai số cổng SSH đang hoạt động.
Khi rơi vào tình huống này, cửa sổ Terminal hiện tại sẽ mất tín hiệu và bạn không thể mở phiên SSH mới. Để khắc phục, hãy thực hiện các bước sau:
- Truy cập qua Web Console hoặc VNC: Đăng nhập vào trang quản trị máy chủ của đơn vị cung cấp dịch vụ, mở tính năng Console HTML5 hoặc VNC. Giao diện này kết nối trực tiếp vào phần cứng ảo hóa độc lập với mạng ngoài.
- Đăng nhập tài khoản: Điền thông tin người dùng
rootvà mật khẩu máy chủ tại màn hình Console. - Tắt khẩn cấp tường lửa: Chạy câu lệnh tắt UFW để thông luồng mạng:
sudo ufw disable - Xác thực lại cổng SSH thực tế: Kiểm tra tệp cấu hình SSH daemon xem máy chủ đang nghe trên cổng nào:
sudo grep -i Port /etc/ssh/sshd_config - Cấp phép đúng cổng và kích hoạt lại: Thực hiện lệnh cho phép đúng cổng đang dùng rồi mới bật lại UFW.
Nếu hệ thống gặp lỗi quá nghiêm trọng hoặc bị ghi đè nhiều quy tắc dẫn đến xung đột mạng, giải pháp nhanh nhất là cài lại hệ điều hành VPS chỉ với vài cú nhấp chuột trên bảng điều khiển để bắt đầu lại từ đầu.
6. Bảng tổng hợp các lệnh UFW thông dụng (Cheat Sheet)
Bảng dưới đây tổng hợp các câu lệnh UFW thường dùng nhất trong quá trình vận hành hằng ngày, giúp bạn tra cứu nhanh chóng khi cần thao tác trên máy chủ.
| Mục đích thao tác | Câu lệnh tương ứng |
|---|---|
| Xem trạng thái chi tiết | sudo ufw status verbose |
| Xem danh sách luật có số thứ tự | sudo ufw status numbered |
| Bật / Tắt tường lửa | sudo ufw enable / sudo ufw disable |
| Mở một cổng hoặc dải cổng | sudo ufw allow 8080/tcp hoặc sudo ufw allow 6000:6005/tcp |
| Giới hạn tần suất kết nối (Chống Brute-force) | sudo ufw limit ssh |
| Chặn một địa chỉ IP truy cập cổng nhất định | sudo ufw deny from 1.2.3.4 to any port 22 |
| Xóa luật theo định nghĩa gốc | sudo ufw delete allow 80/tcp |
| Bật hoặc tắt ghi nhật ký (Log) | sudo ufw logging on / sudo ufw logging off |
| Khôi phục toàn bộ cấu hình về mặc định | sudo ufw reset |
7. Cảnh báo quan trọng: Mối quan hệ giữa UFW và Docker
Một trong những cạm bẫy bảo mật nghiêm trọng trên máy chủ Ubuntu là cơ chế can thiệp mạng của Docker Engine. Khi bạn khởi chạy một container với tham số map cổng (ví dụ: docker run -p 8080:80 ...), Docker sẽ tự động chèn các quy tắc định tuyến trực tiếp vào bảng PREROUTING của iptables.
Hành vi này dẫn đến hiện tượng Docker bypass UFW: các cổng được Docker mở sẽ phơi bày hoàn toàn ra mạng Internet công cộng ngay cả khi bạn đã chạy lệnh sudo ufw default deny incoming hoặc không hề tạo quy tắc cho phép cổng đó trên UFW.
Để ngăn chặn tình trạng rò rỉ cổng ngoài ý muốn này, bạn có các giải pháp sau:
- Ràng buộc container với localhost: Khi chạy ứng dụng, chỉ cho phép lắng nghe trên dải loopback:
docker run -p 127.0.0.1:8080:80 .... Sau đó sử dụng Nginx làm Reverse Proxy bên ngoài để kiểm soát luồng truy cập qua UFW. - Sử dụng tiện ích quản lý phụ trợ: Triển khai các công cụ như
ufw-dockerđể tự động liên kết các quy tắc chuỗi giữa Docker và UFW một cách an toàn.
8. Checklist an toàn toàn diện sau khi bật UFW
Sau khi hoàn tất cấu hình tường lửa UFW, bạn nên rà soát lại toàn bộ máy chủ thông qua danh mục kiểm tra dưới đây:
- ✔ Xác nhận lại trạng thái: Đảm bảo
ufw status verbosehiển thịStatus: activevàDefault: deny (incoming), allow (outgoing). - ✔ Đổi cổng SSH mặc định: Thay đổi cổng 22 sang một cổng số lớn (ví dụ: 49152 đến 65535) và chỉ mở cổng này trên UFW nhằm giảm 95% lượng log quét tự động.
- ✔ Kích hoạt tính năng UFW Rate Limit: Sử dụng lệnh
sudo ufw limit sshđể tự động khóa IP nếu thực hiện nhiều hơn 6 lần thử đăng nhập trong 30 giây. - ✔ Cài đặt thêm Fail2ban: Kết hợp UFW với Fail2ban để tự động đọc log hệ thống và đẩy các IP vi phạm brute-force vào danh sách chặn của UFW.
- ✔ Đóng các dịch vụ nội bộ: Đảm bảo Redis (cổng 6379), MongoDB (cổng 27017) và MySQL chỉ lắng nghe trên
127.0.0.1hoặc các giao diện mạng riêng nội bộ.
9. Câu hỏi thường gặp (FAQ)
UFW là gì và có được cài đặt sẵn trên Ubuntu không?
UFW là công cụ quản trị tường lửa đơn giản trên Linux. Trên hầu hết các phiên bản hệ điều hành Ubuntu máy chủ tiêu chuẩn, UFW đều được tích hợp sẵn ở trạng thái vô hiệu hóa (inactive). Nếu thiếu, bạn có thể bổ sung nhanh qua lệnh apt install ufw.
Bật UFW có làm mất kết nối SSH đang mở không?
Nếu bạn đã thực hiện lệnh sudo ufw allow 22/tcp trước khi kích hoạt, phiên SSH hiện tại sẽ không bị ngắt kết nối. Tuy nhiên, nếu bạn kích hoạt khi chưa cho phép cổng SSH, toàn bộ kết nối hiện tại và mới đều sẽ bị tường lửa chặn đứng.
Cách mở port 80 và 443 trên UFW cho website như thế nào?
Bạn chỉ cần chạy hai lệnh: sudo ufw allow 80/tcp và sudo ufw allow 443/tcp. Ngoài ra, nếu đang chạy máy chủ web Nginx hoặc Apache, bạn có thể cho phép mở gộp cả hai cổng bằng lệnh cấu hình hồ sơ ứng dụng tương ứng.
UFW và iptables khác nhau thế nào, người mới nên dùng cái nào?
iptables là cơ chế lọc gói mạng chuyên sâu với cú pháp tương đối phức tạp, trong khi UFW là lớp giao diện đơn giản xây dựng trên iptables. Với các nhu cầu quản trị máy chủ thông thường, UFW là công cụ được ưu tiên sử dụng để thiết lập nhanh và an toàn.
Làm thế nào để khôi phục UFW về cài đặt mặc định khi cấu hình sai?
Bạn chỉ cần chạy lệnh sudo ufw reset. Toàn bộ các quy tắc tùy chỉnh đã thêm sẽ bị xóa sạch và tường lửa sẽ tự động chuyển về trạng thái tắt (disabled), cho phép bạn xây dựng lại cấu hình từ đầu mà không cần cài lại hệ thống.
Lời kết
Việc thực hành bài bản theo hướng dẫn thiết lập tường lửa với UFW trên Ubuntu là nền tảng cốt lõi giúp hệ thống của bạn đứng vững trước các nguy cơ tấn công mạng. Hãy luôn ghi nhớ quy tắc then chốt: cấp phép cho cổng SSH trước khi bật tường lửa, áp dụng nguyên tắc chỉ mở những cổng thực sự cần thiết và thường xuyên theo dõi nhật ký máy chủ. Sự kết hợp giữa một bức tường lửa UFW chuẩn mực cùng các giải pháp phòng ngừa như Fail2ban sẽ bảo vệ an toàn cho mọi ứng dụng vận hành.
Khởi tạo máy chủ thực hành bảo mật ngay hôm nay
Toàn quyền root trên nền tảng ảo hóa KVM, cấu hình cao trong tầm giá, sẵn sàng triển khai hệ điều hành Ubuntu chỉ sau vài phút.
Nội dung bài viết mang tính tham khảo kỹ thuật. Các lệnh và quy trình cấu hình trong bài viết được kiểm chứng trên các phiên bản Ubuntu 20.04, 22.04 và 24.04 LTS dưới quyền root hoặc tài khoản có đặc quyền sudo. Tùy thuộc vào chính sách mạng của từng nhà cung cấp hạ tầng, kiến trúc ảo hóa và môi trường ứng dụng cụ thể, các tham số có thể cần điều chỉnh tương ứng. Quản trị viên nên thực hiện kiểm thử trên môi trường thử nghiệm trước khi áp dụng trên các cụm máy chủ production đang hoạt động.



