Fast Byte - Thuê VPS Giá Rẻ
Hướng dẫn chung

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 […]

Ảnh đại diện adminadmin18 phút đọ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.

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.

UFW là gì

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 sudo hoặc tài khoản root.
  • 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

cài đặt UFW

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.

Cấu hình hỗ trợ IPv6

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

Kiểm tra trạng thái hoạt động cùng các quy tắc của UFW

Thuê VPS giá rẻ

CPU Intel Gold, SSD NVMe U.2, từ 50K/tháng

Môi trường thực hành Linux chi phí tối ưu

Bạn cần một máy chủ riêng biệt để tự tay rèn luyện cấu hình UFW, triển khai web server và làm chủ bảo mật Linux? Các gói máy chủ ảo tại Fast Byte cung cấp đầy đủ quyền root cùng cổng mạng 100 Mbps và băng thông không giới hạn hàng tháng.

Khởi tạo máy chủ thực hành

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:

  1. 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.
  2. Đăng nhập tài khoản: Điền thông tin người dùng root và mật khẩu máy chủ tại màn hình Console.
  3. 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
  4. 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
  5. 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.

Thuê VPS giá rẻ

Hạ tầng KVM độc lập, Console cứu hộ 24/7

Toàn quyền quản trị, an tâm cứu hộ

Máy chủ ảo Fast Byte vận hành trên công nghệ ảo hóa KVM cung cấp môi trường độc lập, tài nguyên thực cùng giao diện Console trực tiếp giúp bạn thoải mái tùy biến mạng, thử nghiệm bảo mật mà không sợ mất kiểm soát máy chủ.

Xem các gói VPS thực hành

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 verbose hiển thị Status: activeDefault: 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.1 hoặc các giao diện mạng riêng nội bộ.

Thuê VPS giá rẻ

Phần cứng Intel Gold & Ổ cứng NVMe U.2

Nền tảng ổn định cho dự án và website cá nhân

Fast Byte mang tới giải pháp máy chủ riêng với mức giá chỉ từ 50K/tháng, trang bị ổ cứng SSD NVMe U.2 tốc độ đọc ghi vượt trội cùng cổng mạng 100 Mbps ổn định. Môi trường lý tưởng để lập trình viên, sinh viên CNTT học tập Linux và triển khai website an toàn.

Khám phá bảng giá ngay

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/tcpsudo 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.

Xem bảng giá máy chủ giá rẻ

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.

Chia sẻ: Facebook LinkedIn
Quay lại trang blog

Bài viết liên quan

Cách Cài Đặt & Sử Dụng Portainer Quản Lý Docker
Hướng dẫn chung

Cách Cài Đặt & Sử Dụng Portainer Quản Lý Docker, Docker Swarm Toàn Diện

Khi vận hành nhiều ứng dụng container hóa trên máy chủ, việc thao tác hoàn toàn thông qua giao diện dòng lệnh (Docker CLI) thường tiềm ẩn nhiều trở ngại. Quản trị viên phải ghi nhớ hàng loạt cú pháp lệnh phức tạp, khó nắm bắt tổng quan tài nguyên hệ thống theo thời gian […]

Thanh Lam Nguyễn
Đọc bài viết