UFW (Uncomplicated Firewall) là một giao diện thân thiện dành cho iptables, giúp đơn giản hóa quá trình thiết lập và quản lý tường lửa trên Linux. Công cụ này đặc biệt hữu ích cho các máy chủ, cung cấp phương thức cấu hình dễ dàng ngay cả đối với người mới làm quen với hệ thống bảo mật mạng. Là tường lửa mặc định trên Ubuntu, UFW hỗ trợ cả giao thức IPv4 và IPv6, đảm bảo tính linh hoạt và khả năng bảo vệ toàn diện.
Nếu bạn đang sử dụng VPS Windows và muốn tìm hiểu cách bảo mật hiệu quả hơn, hãy tham khảo thêm các giải pháp tường lửa tương ứng để bảo vệ hệ thống của bạn trước các mối đe dọa mạng.
Tiếp theo, chúng ta sẽ cùng nhau khám phá cách cài đặt và sử dụng UFW Firewall trên Linux để tăng cường bảo mật hệ thống.
Yêu cầu tiên quyết
- Hệ điều hành: Bất kỳ bản phân phối Linux nào đã được cài đặt trên hệ thống của bạn
- Quyền truy cập: Có quyền root (hoặc sử dụng sudo) trên hệ thống của bạn
Cài đặt UFW
Ubuntu
Theo mặc định, UFW có sẵn trong hầu hết các bản phân phối dựa trên Ubuntu. Nếu UFW bị gỡ bỏ, bạn có thể cài đặt lại bằng cách chạy lệnh linux sau:
# apt-get install ufw -y
Debian
Bạn có thể cài đặt UFW trên Debian bằng lệnh sau:
# apt-get install ufw -y
CentOS
Theo mặc định, UFW không có sẵn trong kho CentOS. Vì vậy, bạn sẽ cần cài đặt kho EPEL vào hệ thống của mình. Bạn có thể thực hiện điều này bằng cách chạy lệnh Linux sau:
# yum install epel-release -y
Sau khi cài đặt kho EPEL, cài đặt UFW bằng lệnh:
Sau khi cài đặt UFW, hãy khởi động dịch vụ và bật nó để tự động khởi động cùng hệ thống bằng lệnh:
Tiếp theo, kiểm tra trạng thái của UFW:
(Để tắt UFW, bạn có thể dùng lệnh sau:)
Cài đặt chính sách mặc định của UFW
Theo mặc định, UFW được cấu hình để chặn tất cả lưu lượng truy cập đến (incoming) và cho phép tất cả lưu lượng đi ra (outgoing).
Bạn có thể thay đổi chính sách mặc định theo ý muốn bằng các lệnh sau:
Thêm và xóa quy tắc tường lửa
Bạn có thể thêm quy tắc để cho phép lưu lượng truy cập đến hoặc đi ra bằng cách chỉ định số cổng hoặc tên dịch vụ.
Cho phép dịch vụ HTTP:
Sử dụng tên dịch vụ:
Hoặc sử dụng số cổng:
Lọc theo giao thức TCP/UDP:
ufw allow 80/tcp ufw allow 21/udp
Để kiểm tra các quy tắc đã thêm, chạy:
Ví dụ, kết quả hiển thị có thể như sau:
Bạn cũng có thể từ chối lưu lượng bằng các lệnh:
Nếu bạn muốn xóa quy tắc đã thêm, chỉ cần thêm từ khóa delete
trước quy tắc gốc:
Quy tắc UFW nâng cao
-
Cho phép hoặc từ chối truy cập từ địa chỉ IP cụ thể:
Cho phép IP 192.168.0.200 truy cập tất cả dịch vụ:
Từ chối IP 192.168.0.200 truy cập:
-
Cho phép một dải địa chỉ IP:
Cho phép tất cả kết nối từ dải IP 192.168.1.0/24:
-
Cho phép IP cụ thể truy cập cổng 80 với giao thức TCP:
-
Cho phép truy cập dải cổng:
Cho phép giao thức TCP và UDP trên dải cổng từ 2000 đến 3000:
-
Chặn truy cập cổng 22 cho một số IP nhất định nhưng cho phép các IP còn lại:
-
Cho phép lưu lượng HTTP trên giao diện mạng cụ thể:
# ufw allow in on eth0 to any port 80
-
Tắt yêu cầu ping:
Theo mặc định, UFW cho phép các yêu cầu ping. Nếu bạn muốn chặn ping, hãy chỉnh sửa tập tin
/etc/ufw/before.rules
:Loại bỏ các dòng sau:
Lưu tập tin khi hoàn tất.
-
Reset UFW:
Nếu cần xóa tất cả các quy tắc đã thiết lập, dùng lệnh:
Cấu hình NAT với UFW
NNếu bạn muốn NAT các kết nối từ giao diện bên ngoài sang bên trong bằng UFW, bạn có thể thực hiện điều này bằng cách chỉnh sửa tập tin /etc/default/ufw
và /etc/ufw/before.rules
.
Đầu tiên, mở tập tin /etc/default/ufw
bằng trình soạn thảo nano:
Mở tập tin /etc/ufw/sysctl.conf
:
Mở tập tin /etc/ufw/before.rules
:
# nano /etc/ufw/before.rules
Thêm các dòng sau ngay trước phần quy tắc filter:
Cấu hình chuyển hướng cổng (Port Forwarding) với UFW
Nếu bạn muốn chuyển hướng lưu lượng từ địa chỉ IP công cộng (ví dụ: 150.129.148.155) cổng 80 và 443 đến một máy chủ nội bộ có địa chỉ IP 192.168.1.120, thực hiện theo các bước sau:
Mở tập tin /etc/default/before.rules
:
Chỉnh sửa tập tin như sau:
Khởi động lại UFW:
Cho phép lưu lượng qua cổng 80 và 443:
Đối với người dùng đang thuê máy chủ VPS, việc thiết lập firewall như UFW là bước quan trọng giúp kiểm soát lưu lượng và tăng cường bảo mật cho dịch vụ bạn đang vận hành.