UFW Blocklist là giải pháp nhẹ, dễ dùng để tăng cường bảo mật cho VPS bằng cách tự động chặn các dải IP độc hại đã được cộng đồng tổng hợp. Nếu bạn đang vận hành máy chủ Ubuntu/Debian và muốn giảm nguy cơ bị quét cổng, brute-force SSH, hay tấn công DDoS ở lớp mạng, việc tích hợp danh sách chặn vào UFW sẽ giúp lọc sớm lưu lượng không tin cậy trước khi đến dịch vụ của bạn.
Bài viết này hướng dẫn cài đặt và cấu hình UFW Blocklist một cách bài bản, từ chuẩn bị hệ thống, cài đặt UFW, nhập blocklist, đến lịch cập nhật tự động và kiểm tra nhật ký. Kết thúc, bạn sẽ có tường lửa hoạt động ổn định, cập nhật định kỳ và tuân thủ nguyên tắc “mặc định từ chối – chỉ cho phép cần thiết”.
UFW là gì?
UFW (Uncomplicated Firewall) là công cụ tường lửa mặc định trên Ubuntu, giúp quản lý iptables dễ dàng bằng các lệnh đơn giản. Mục tiêu của UFW là làm cho việc cấu hình bảo mật mạng trở nên nhanh, rõ ràng và phù hợp cho cả người mới lẫn quản trị hệ thống. Với UFW, bạn có thể cho phép hoặc chặn cổng, giao thức, địa chỉ IP, thiết lập chính sách mặc định, ghi log và tạo profile ứng dụng.
Ưu điểm nổi bật của UFW là cú pháp ngắn gọn: ví dụ, cho phép SSH dùng “ufw allow 22”, chặn HTTP dùng “ufw deny 80”, bật tường lửa “ufw enable”, xem trạng thái “ufw status”. UFW cũng hỗ trợ IPv6, giới hạn kết nối (rate limiting) để chống brute force, và tích hợp profile sẵn cho các dịch vụ phổ biến như OpenSSH, Nginx, Apache.
UFW đặc biệt hữu ích cho máy chủ và VPS, nơi bảo mật cổng mạng là ưu tiên hàng đầu. Nó giúp thu hẹp bề mặt tấn công, giảm rủi ro truy cập trái phép và cải thiện tuân thủ bảo mật. Người dùng desktop cũng có thể dùng UFW để kiểm soát ứng dụng truy cập mạng.
Tóm lại, UFW là giải pháp tường lửa nhẹ, mạnh và dễ dùng cho Linux, đặc biệt Ubuntu. Nếu bạn muốn cấu hình nhanh mà vẫn an toàn, UFW là lựa chọn đáng tin cậy.
Cách bật UFW đơn giản
Bật UFW (Uncomplicated Firewall) trên Ubuntu rất đơn giản và an toàn cho hệ thống. Thực hiện theo bước sau: cập nhật hệ thống sudo apt update, cài UFW nếu chưa có sudo apt install ufw. Kiểm tra trạng thái sudo ufw status. Cho phép SSH trước khi bật để tránh mất kết nối: sudo ufw allow ssh. Bật tường lửa: sudo ufw enable. Thiết lập mặc định: sudo ufw default deny incoming và sudo ufw default allow outgoing. Thêm rule phổ biến: sudo ufw allow 80/tcp, sudo ufw allow 443/tcp. Xem log: sudo ufw status verbose. Tắt hoặc khởi động lại: sudo ufw disable, sudo ufw reload. Đây là cách bật UFW đơn giản, hiệu quả!
Cách cài đặt UFW Blockslist
UFW Blocklist là giải pháp tích hợp vào UFW (Uncomplicated Firewall) trên Ubuntu, tự động tải danh sách IP độc hại từ IPsum và chặn ở mức kernel bằng ipset. Giải pháp này nhẹ, hiệu năng cao, gần như không cần bảo trì, phù hợp cho máy chủ có IP công khai hoặc thiết bị gateway gia đình.
Điểm nổi bật của UFW Blocklist
- Tích hợp trực tiếp vào UFW trên Ubuntu.
- Chặn gói vào, ra và chuyển tiếp (inbound, outbound, forwarding).
- Sử dụng ipset của Linux cho hiệu năng cấp kernel.
- Làm mới danh sách IP mỗi ngày (cron.daily).
- Nguồn blocklist từ IPsum (stamparm/ipsum).
- Đã kiểm thử trên:
- Armbian 22.05.3 Focal (Ubuntu 20.04.4 LTS)
- Ubuntu 22.04 LTS (Jammy Jellyfish)
- Ubuntu 24.04 LTS (Noble Numbat) – báo cáo bởi @koenr
- Tối ưu cho tài nguyên thấp và hạn chế ghi lên bộ nhớ sau khi cài đặt.
Yêu cầu hệ thống
- Ubuntu 20.04/22.04/24.04 hoặc Armbian Focal tương thích.
- Quyền sudo.
- UFW đang sử dụng (khuyến nghị đã bật).
- Kết nối Internet để tải IPsum.
Cài đặt UFW Blocklist (từng bước)
- Cài ipset
sudo apt update
sudo apt install -y ipset
- Sao lưu script after.init gốc của UFW
sudo cp /etc/ufw/after.init /etc/ufw/after.init.orig
- Tải và cài đặt ufw-blocklist
git clone https://github.com/poddmo/ufw-blocklist.git
cd ufw-blocklist
sudo cp after.init /etc/ufw/after.init
sudo cp ufw-blocklist-ipsum /etc/cron.daily/ufw-blocklist-ipsum
sudo chown root:root /etc/ufw/after.init /etc/cron.daily/ufw-blocklist-ipsum
sudo chmod 750 /etc/ufw/after.init /etc/cron.daily/ufw-blocklist-ipsum
- Tải danh sách IP ban đầu từ IPsum (mức 4)
curl -sS -f --compressed -o ipsum.4.txt 'https://raw.githubusercontent.com/stamparm/ipsum/master/levels/4.txt'
sudo chmod 640 ipsum.4.txt
sudo cp ipsum.4.txt /etc/ipsum.4.txt
- Khởi động ufw-blocklist
sudo /etc/ufw/after.init start
- Theo dõi tiến độ nạp danh sách vào ipset
sudo ipset list ufw-blocklist-ipsum -terse | grep 'Number of entries'
Lưu ý: Nạp danh sách lớn sẽ mất thời gian tùy cấu hình máy.
Sử dụng và vận hành
- UFW sẽ tự động start/stop blocklist khi bạn
ufw enable,ufw disablehoặcufw reload. - Tham khảo tài liệu UFW của Ubuntu để cấu hình cơ bản tường lửa.
Lệnh quản trị bổ sung từ after.init
- Xem trạng thái:
sudo /etc/ufw/after.init status
Trạng thái hiển thị:
- Số lượng IP trong blocklist.
- Hit count (số gói bị chặn).
- 10 dòng log gần nhất.
- Xóa toàn bộ blocklist và reset bộ đếm iptables:
sudo /etc/ufw/after.init flush-all
- Thêm IP thủ công (phù hợp để thử nghiệm):
sudo ipset add ufw-blocklist-ipsum a.b.c.d
- Khôi phục đầy đủ danh sách bằng job hằng ngày:
sudo /etc/cron.daily/ufw-blocklist-ipsum
Script này sẽ tải danh sách mới nhất từ IPsum và cập nhật ipset.
Kiến trúc hoạt động (tóm tắt)
- after.init: tích hợp vào quy trình khởi tạo của UFW để tạo ipset và gắn rule iptables tương ứng.
- ipset: lưu danh sách IP bị chặn ở mức kernel, cho phép tra cứu cực nhanh.
- cron.daily/ufw-blocklist-ipsum: tải và làm mới danh sách IPsum mỗi ngày, không gây ghi đĩa liên tục sau cài đặt.
Kiểm tra và xác minh
- Kiểm tra ipset tồn tại:
sudo ipset list ufw-blocklist-ipsum
- Xem rule UFW/iptables tương ứng:
sudo iptables -S | grep ufw-blocklist
sudo ip6tables -S | grep ufw-blocklist
- Kiểm tra log chặn:
sudo journalctl -u ufw --since "1 hour ago" | grep -i DROP
# hoặc nếu UFW log ra /var/log/ufw.log
sudo tail -n 100 /var/log/ufw.log | grep -i DROP
Mẹo tối ưu và lưu ý
- Mức danh sách IPsum:
- Mặc định hướng dẫn dùng mức 4. Bạn có thể thử các mức khác (ví dụ 3 hoặc 5) tùy nhu cầu, cân bằng giữa độ phủ và độ nhiễu.
- Thay đường dẫn tải tương ứng:
levels/<level>.txt.
- Đảm bảo UFW bật:
sudo ufw enable
sudo ufw status verbose
- Tránh false positive:
- Trước khi áp dụng mức cao, kiểm tra nhật ký dịch vụ để đảm bảo không chặn nhầm IP hợp lệ.
- Có thể whitelist IP tin cậy bằng rule UFW trước các rule chặn (ưu tiên rule allow).
- IPv6:
- Kiểm tra xem after.init đã thêm rule cho IPv6 nếu bạn dùng IPv6. Nếu cần, mở IPv6 trong UFW:
sudo sed -i 's/IPV6=no/IPV6=yes/' /etc/default/ufw
sudo ufw reload
- Hiệu năng:
- ipset xử lý hàng chục nghìn IP hiệu quả hơn so với iptables thuần. Khi số lượng IP lớn, theo dõi tài nguyên CPU/RAM.
- Trên SBC (single-board computer) vẫn chạy tốt nhờ kiến trúc nhẹ.
Khắc phục sự cố
- after.init bị ghi đè sau cập nhật UFW:
- Dùng bản sao lưu:
sudo cp /etc/ufw/after.init.orig /etc/ufw/after.init
sudo ufw reload
- Hoặc re-apply từ repo ufw-blocklist.
- Không thấy ipset sau khi start:
- Kiểm tra quyền thực thi script:
sudo chmod 750 /etc/ufw/after.init /etc/cron.daily/ufw-blocklist-ipsum
- Xem lỗi trong journal:
sudo journalctl -xe | grep ufw
- Cron không chạy:
- Kiểm tra quyền, đường dẫn, và log cron:
sudo run-parts --test /etc/cron.daily
sudo /etc/cron.daily/ufw-blocklist-ipsum
- UFW không khởi động:
- Kiểm tra xung đột rule tùy biến hoặc module kernel:
sudo ufw disable
sudo ufw enable
Câu hỏi thường gặp (FAQ)
- Có thể dùng trên Debian/derivatives khác?
Chủ yếu nhắm Ubuntu/Armbian. Debian có thể tương thích nhưng cần kiểm tra đường dẫn UFW/after.init. - Có ảnh hưởng đến băng thông?
Thường giúp giảm traffic rác, tiết kiệm tài nguyên. ipset chạy ở mức kernel nên overhead rất thấp. - Tần suất cập nhật blocklist?
Cron hằng ngày (cron.daily). Bạn có thể thay đổi lịch nếu cần.
Kết luận
UFW Blocklist là cách đơn giản và hiệu quả để tăng cường bảo mật cho Ubuntu bằng cách tự động chặn IP độc hại với hiệu năng cao nhờ ipset. Làm theo hướng dẫn trên để cài đặt, kiểm tra và vận hành an toàn, đồng thời điều chỉnh mức IPsum phù hợp với môi trường của bạn.









