Hướng dẫn cấu hình tường lửa UFW trên Ubuntu 24.04 LTS chi tiết từ A-Z
Tường lửa (Firewall) là lớp phòng thủ quan trọng đầu tiên đối với bất kỳ máy chủ Linux nào khi kết nối với Internet. Trên hệ điều hành Ubuntu, UFW (Uncomplicated Firewall) được tích hợp sẵn nhằm đơn giản hóa việc quản lý các quy tắc iptables / nftables phức tạp bằng các câu lệnh vô cùng ngắn gọn và trực quan.
Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách thiết lập UFW chuẩn hóa trên máy chủ Ubuntu (từ phiên bản 20.04, 22.04 đến Ubuntu 24.04 LTS), đảm bảo máy chủ an toàn tuyệt đối mà không sợ bị khóa kết nối SSH từ xa.

1. UFW là gì? Tại sao nên sử dụng UFW trên Ubuntu?
Khi quản trị VPS hoặc Server Linux, các dịch vụ như SSH, Web Server (Nginx/Apache), Database (PostgreSQL/MySQL), Docker container đều lắng nghe trên các cổng (port) mạng. Nếu không có tường lửa kiểm soát, hacker có thể quét cổng (port scanning) và tấn công lỗ hổng trực tiếp vào máy chủ của bạn.
Các ưu điểm nổi bật của UFW:
- Mặc định & Nhẹ nhàng: Được phát triển bởi Canonical, tích hợp sẵn trên Ubuntu.
- Cú pháp đơn giản: Không cần nhớ các chuỗi quy tắc dài của
iptables. - Hỗ trợ IPv4 & IPv6: Tự động áp dụng quy tắc đồng thời cho cả hai giao thức mạng.
- Hỗ trợ App Profiles: Cho phép bật/tắt dịch vụ theo tên phần mềm (VD:
Nginx Full,OpenSSH).
2. Bước 1: Kiểm tra trạng thái UFW & Thiết lập Policy mặc định
Trước khi bật tường lửa, luôn thiết lập quy tắc mặc định (Default Policy):
- Chặn toàn bộ truy cập từ ngoài vào (Incoming: Deny)
- Cho phép mọi kết nối đi ra ngoài (Outgoing: Allow)
# Kiểm tra trạng thái hiện tại của UFW
sudo ufw status verbose
# Thiết lập chặn toàn bộ kết nối đi vào mặc định
sudo ufw default deny incoming
# Cho phép tất cả kết nối từ server đi ra ngoài
sudo ufw default allow outgoing

3. Bước 2: Mở Cổng SSH (Port 22) & Bật Tường Lửa UFW
⚠️ CẢNH BÁO QUAN TRỌNG: Phải mở cổng SSH (
port 22hoặc cổng SSH tùy chỉnh của bạn) TRƯỚC KHI kích hoạt UFW. Nếu không mở SSH trước, bạn sẽ bị mất kết nối và không thể SSH lại vào VPS!
# Mở cổng SSH chuẩn (TCP 22)
sudo ufw allow 22/tcp
# Hoặc giới hạn tần suất kết nối SSH để chống Brute-Force (khuyên dùng)
sudo ufw limit 22/tcp
# Kích hoạt UFW tường lửa
sudo ufw enable
Sau khi gõ sudo ufw enable, hệ thống sẽ hỏi xác nhận: Command may disrupt existing ssh connections. Proceed with operation (y|n)? Bấm y và nhấn Enter.

4. Bước 3: Mở Cổng Dịch Vụ Web, Docker & Giới Hạn Theo Địa Chỉ IP Nội Bộ
Tùy vào dịch vụ đang chạy trên server, bạn có thể mở các cổng cụ thể:
A. Mở cổng Web HTTP (80) & HTTPS (443)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
B. Mở cổng theo dải IP nội bộ (LAN / VPN)
Nếu bạn chạy các dịch vụ quản trị nội bộ (như Docker Dashboard, Portainer, Proxmox, Postgres) và chỉ muốn cho phép máy tính trong mạng gia đình kết nối:
# Chỉ cho phép dải IP 192.168.1.0/24 truy cập vào port 8080
sudo ufw allow from 192.168.1.0/24 to any port 8080 proto tcp
C. Xem danh sách quy tắc theo số thứ tự (Numbered Rules)
sudo ufw status numbered

5. Bước 4: Sử dụng UFW App Profiles (Tùy chọn ứng dụng)
Nhiều phần mềm nổi tiếng khi cài đặt trên Ubuntu sẽ đăng ký sẵn hồ sơ ứng dụng (App Profile) với UFW. Bạn chỉ cần bật tên profile thay vì gõ số port thủ công.
# Liệt kê danh sách các App Profiles có sẵn
sudo ufw app list
# Cho phép cả HTTP (80) & HTTPS (443) thông qua profile Nginx Full
sudo ufw allow 'Nginx Full'
# Xem chi tiết các cổng mà App Profile đang sử dụng
sudo ufw app info 'Nginx Full'

6. Bước 5: Quản lý Quy Tắc, Xóa Rule & Bật Logging Ghi Log
A. Xóa quy tắc tường lửa theo số thứ tự
Để xóa một quy tắc thừa hoặc nhầm lẫn:
# Xem số thứ tự quy tắc
sudo ufw status numbered
# Xóa quy tắc số 4
sudo ufw delete 4
B. Bật nhật ký ghi log tường lửa (UFW Logging)
Để theo dõi các IP lạ cố gắng tấn công vào máy chủ:
# Bật ghi log
sudo ufw logging on
# Xem log thực tế bị UFW chặn (BLOCK)
sudo tail -f /var/log/ufw.log

7. Tổng kết các lệnh UFW thường dùng nhất
| Lệnh UFW | Chức năng |
|---|---|
sudo ufw status verbose |
Xem trạng thái tường lửa chi tiết |
sudo ufw default deny incoming |
Chặn toàn bộ kết nối đi vào |
sudo ufw default allow outgoing |
Cho phép toàn bộ kết nối đi ra |
sudo ufw allow 22/tcp |
Mở cổng SSH 22 |
sudo ufw limit 22/tcp |
Giới hạn tần suất kết nối SSH |
sudo ufw allow 80,443/tcp |
Mở cổng Web HTTP & HTTPS |
sudo ufw delete [number] |
Xóa quy tắc theo ID thứ tự |
sudo ufw enable / disable |
Bật / Tắt tường lửa UFW |
sudo ufw reload |
Tải lại các quy tắc UFW |
Hy vọng qua bài hướng dẫn này, bạn đã nắm vững cách thiết lập tường lửa UFW chuẩn hóa trên Ubuntu để bảo vệ an toàn cho máy chủ VPS của mình!


