Khi bạn bước chân vào thế giới quản trị VPS, một trong những thuật ngữ đầu tiên bạn nghe thấy về bảo mật là "Firewall". Và nếu bạn dùng Ubuntu, cái tên "UFW" gần như luôn đi kèm. Nhưng UFW Firewall là gì và tại sao nó lại quan trọng đến vậy?
Bài viết này sẽ giải thích chi tiết UFW Firewall là gì, và quan trọng hơn, cung cấp một quy trình 6 bước an toàn tuyệt đối để bạn thiết lập UFW mà không sợ hãi "nỗi đau" lớn nhất: tự khóa mình khỏi VPS.
UFW là viết tắt của Uncomplicated Firewall (Tường lửa Không phức tạp).
Đây là định nghĩa quan trọng nhất bạn cần nắm: UFW không phải là một loại tường lửa mới. Thay vào đó, UFW là một "lớp vỏ" (interface) hay "giao diện" quản lý cực kỳ thân thiện, được phát triển bởi Ubuntu.
Bên dưới lớp vỏ UFW chính là iptables - công cụ tường lửa "gốc" mạnh mẽ nhưng khét tiếng là phức tạp của Linux. UFW được tạo ra để giải quyết một vấn đề: iptables quá khó dùng với người mới.
Thay vì phải gõ những lệnh iptables dài và rối rắm, UFW cho phép bạn quản lý tường lửa bằng các câu lệnh ngắn gọn, dễ hiểu, dễ đọc (ví dụ: ufw allow ssh). Đây là công cụ làm cho chủ đề UFW Firewall là gì trở nên dễ tiếp cận.
Lý do UFW trở thành tiêu chuẩn vàng trên Ubuntu (và các bản phân phối dựa trên Debian) nằm ở việc giải quyết hai "nỗi đau" lớn:
Nỗi sợ iptables: iptables yêu cầu bạn phải hiểu về "chains" (chuỗi), "tables" (bảng), và các quy tắc (rules) phức tạp. Một lệnh iptables để mở cổng 80 có thể trông rất đáng sợ.
Sự đơn giản: UFW làm cho việc bảo mật trở nên trực quan.
Muốn mở cổng web? ufw allow http
Muốn chặn một IP? ufw deny from 1.2.3.4
Muốn xem trạng thái? ufw status
Đối với 99% người dùng VPS (blogger, lập trình viên, doanh nghiệp nhỏ), UFW cung cấp đủ 100% các tính năng cần thiết mà không mang lại sự phức tạp của iptables. UFW là lựa chọn mặc định và được khuyến nghị trên Ubuntu vì sự cân bằng hoàn hảo giữa sức mạnh và tính dễ sử dụng.
Đây là phần quan trọng nhất của bài viết. Rất nhiều người mới, vì quá vội vàng, đã gõ ufw enable và ngay lập tức bị khóa khỏi VPS của mình.
Để hiểu UFW Firewall là gì và sử dụng nó an toàn, bạn phải tuân thủ quy trình 6 bước sau. Hãy thực hiện đúng thứ tự.
Trên các phiên bản Ubuntu mới, UFW thường đã được cài đặt sẵn. Bạn có thể kiểm tra bằng lệnh:
Bash
sudo ufw status
Nếu bạn thấy Status: inactive (Chưa kích hoạt), nghĩa là UFW đã có trên máy. Nếu hệ thống báo "command not found", bạn cần cài đặt UFW:
Bash
sudo apt update
sudo apt install ufw -y
Đây là triết lý bảo mật cốt lõi: "Chặn mọi thứ đi vào, Cho phép mọi thứ đi ra."
deny incoming: Chặn mọi kết nối từ bên ngoài vào VPS (trừ khi được cho phép cụ thể). Đây là lớp bảo vệ chính.
allow outgoing: Cho phép VPS của bạn kết nối ra ngoài (để tải bản cập nhật, gọi API...).
Gõ 2 lệnh sau:
Bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
Hiện tại, VPS của bạn đã "chặn" tất cả. Nếu bạn kích hoạt UFW ngay bây giờ, bạn sẽ bị khóa ngoài.
Đây là bước quan trọng nhất để tránh "nỗi đau" bị khóa (lockout). Bạn phải "đục một lỗ" cho phép bạn đi vào trước khi đóng cửa.
CẢNH BÁO: KHÔNG BAO GIỜ BỎ QUA BƯỚC NÀY!
Trước khi kích hoạt UFW, bạn PHẢI cho phép cổng SSH (cổng bạn dùng để đăng nhập). Nếu bạn quên, kết nối SSH của bạn sẽ bị cắt ngay khi ufw enable và bạn sẽ không thể vào lại.
Gõ lệnh sau (UFW đủ thông minh để biết "ssh" là cổng 22):
Bash
sudo ufw allow ssh
Nếu bạn đã cẩn thận đổi cổng SSH sang một cổng khác (ví dụ: 2222), bạn phải gõ:
Bash
sudo ufw allow 2222/tcp
Chỉ khi bạn thấy thông báo Rule added, bạn mới được tiếp tục.
Nếu VPS của bạn dùng để chạy website, bạn cần mở cổng 80 (cho HTTP) và 443 (cho HTTPS).
Bash
sudo ufw allow http
Hoặc (cú pháp chi tiết hơn):
Bash
sudo ufw allow 80/tcp
Và cho HTTPS:
Bash
sudo ufw allow https
Hoặc:
Bash
sudo ufw allow 443/tcp
UFW sẽ tự động thêm quy tắc cho cả IPv4 và IPv6.
Sau khi bạn đã 100% chắc chắn rằng mình đã allow cổng SSH (Bước 3), bây giờ là lúc kích hoạt "người gác cổng".
Bash
sudo ufw enable
Hệ thống sẽ đưa ra một cảnh báo cuối cùng: Command may disrupt existing ssh connections. Proceed with operation (y|n)? (Lệnh có thể làm gián đoạn kết nối SSH. Tiếp tục (y/n)?).
Vì bạn đã làm Bước 3, bạn tự tin gõ y và nhấn Enter.
Bây giờ, hãy kiểm tra xem người gác cổng đang làm việc đúng ý bạn không:
Bash
sudo ufw status verbose
verbose (chi tiết) sẽ cho bạn thấy trạng thái, quy tắc mặc định, và danh sách các cổng đang được phép. Bạn sẽ thấy kết quả tương tự:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
443/tcp ALLOW IN Anywhere
Nếu bạn thấy Status: active và cổng 22 (hoặc cổng SSH của bạn) có trạng thái ALLOW IN, xin chúc mừng, bạn đã cấu hình UFW Firewall là gì một cách an toàn.
Sau khi thiết lập cơ bản, bạn sẽ cần quản lý các quy tắc này. Đây là các lệnh dành cho người dùng "DIY-er" và "Sysadmin".
Đây là một thực hành bảo mật E-A-T (chuyên môn) cao: không chỉ mở cổng SSH, mà chỉ mở cổng SSH cho IP của bạn.
Giả sử IP nhà bạn là 1.2.3.4:
Bash
sudo ufw allow from 1.2.3.4 to any port 22
Sau khi chạy lệnh này, bạn có thể xóa quy tắc ufw allow ssh (cho phép từ mọi nơi) để tăng cường bảo mật.
Nếu bạn cần mở cổng cho một dịch vụ cụ thể (ví dụ: database PostgreSQL ở cổng 5432) và chỉ cho phép giao thức TCP:
Bash
sudo ufw allow 5432/tcp
Nếu bạn muốn đóng một cổng bạn đã lỡ mở:
Bash
sudo ufw deny 8080
Nếu bạn phát hiện một IP 11.22.33.44 đang cố tấn công bạn, bạn có thể chặn IP đó:
Bash
sudo ufw deny from 11.22.33.44
Để chặn IP nhanh và ưu tiên hàng đầu, hãy dùng insert 1 (chèn vào vị trí số 1):
Bash
sudo ufw insert 1 deny from 11.22.33.44
Đây là kỹ năng quan trọng khi quản lý UFW Firewall. Bạn có thể xóa bằng cách gõ lại đúng quy tắc, nhưng thay allow bằng delete:
Bash
sudo ufw delete allow http
Nhưng cách làm này rất dễ gõ sai. Cách làm chuyên nghiệp và an toàn hơn là xóa bằng số thứ tự (number).
Bước 1: Hiển thị các quy tắc kèm số thứ tự:
Bash
sudo ufw status numbered
Bạn sẽ thấy:
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] 443/tcp ALLOW IN Anywhere
[ 4] 8080/tcp ALLOW IN Anywhere
Bước 2: Giả sử bạn muốn xóa quy tắc 8080/tcp (số 4):
Bash
sudo ufw delete 4
UFW sẽ hỏi bạn xác nhận. Đây là cách làm chính xác, không thể nhầm lẫn.
Để hiểu rõ vị trí của UFW Firewall là gì, chúng ta cần so sánh nhanh:
iptables (Động cơ): Đây là công cụ tường lửa cốt lõi của Linux. Rất mạnh mẽ, rất phức tạp. UFW và firewalld đều dùng iptables ở bên dưới.
firewalld (Giao diện trên CentOS/RHEL): Đây là giao diện tường lửa mặc định trên các hệ điều hành dòng Red Hat (CentOS, AlmaLinux). firewalld sử dụng khái niệm "Zones" (Vùng), rất mạnh mẽ nhưng có thể hơi phức tạp cho người mới.
UFW (Giao diện trên Ubuntu/Debian): Giao diện tường lửa mặc định cho Ubuntu. Tập trung vào sự đơn giản, cú pháp dễ đọc, hoàn hảo cho người mới và 99% các trường hợp sử dụng VPS.
Kết luận: Nếu bạn dùng Ubuntu, hãy dùng UFW. Nếu bạn dùng CentOS/AlmaLinux, hãy dùng firewalld. Đừng bao giờ đụng trực tiếp vào iptables trừ khi bạn biết chính xác mình đang làm gì.
Đây là "nỗi đau" kinh điển. Đừng hoảng sợ. VPS của bạn không "mất". Giải pháp: Hầu hết các nhà cung cấp VPS (như InterData, DigitalOcean, Vultr...) đều cung cấp một "Emergency Console" (Bảng điều khiển khẩn cấp) hoặc "VNC Console" trên website quản trị. Đây là một màn hình terminal ảo, kết nối trực tiếp đến VPS của bạn, bỏ qua lớp tường lửa mạng (UFW). Bạn cần:
Đăng nhập vào VNC Console từ trang quản trị VPS.
Đăng nhập bằng user/pass của VPS.
Gõ lệnh sudo ufw allow ssh (hoặc cổng SSH của bạn).
Bạn đã được cứu. Bây giờ bạn có thể đăng nhập SSH lại bình thường.
Có. Một khi bạn đã ufw enable, các quy tắc sẽ được lưu và tự động kích hoạt mỗi khi VPS khởi động lại.
Không. Đây là một lỗi phổ biến. Các Control Panel như aaPanel, CyberPanel, Plesk... đều có hệ thống tường lửa riêng của chúng (aaPanel có plugin, CyberPanel dùng firewalld). Nếu bạn cài UFW cùng lúc, chúng sẽ xung đột và gây ra lỗi khó lường (hoặc tự khóa bạn). Quy tắc: Đã dùng Control Panel thì hãy dùng tường lửa tích hợp của Control Panel đó.
Để tắt UFW:
Bash
sudo ufw disable
Để xóa mọi quy tắc và đưa UFW về trạng thái "ban đầu":
Bash
sudo ufw reset
Lệnh reset sẽ vô hiệu hóa UFW và xóa mọi quy tắc. Hãy cẩn thận.
Việc hiểu rõ UFW Firewall là gì và nắm vững quy trình 6 bước an toàn là một trong những kỹ năng cơ bản nhất, quan trọng nhất khi bạn sở hữu một VPS Ubuntu. UFW là "người gác cổng" thân thiện, biến một công việc đáng sợ (cấu hình iptables) thành một loạt các lệnh đơn giản.
Thiết lập UFW là lớp phòng thủ đầu tiên. Sau khi hoàn tất, bạn nên tiếp tục tăng cường bảo mật VPS của mình với các bước tiếp theo như sử dụng SSH Key (thay cho mật khẩu) và cài đặt Fail2Ban (chống tấn công BrTute Force).