Cài Đặt và Sử Dụng UFW Firewall Trên Ubuntu, Debian và CentOS

Cài Đặt và Sử Dụng UFW Firewall Trên Ubuntu, Debian và CentOS

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:

# yum install --enablerepo="epel" ufw -y

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:

# ufw enable

Tiếp theo, kiểm tra trạng thái của UFW:

# ufw status 
Status: active

(Để tắt UFW, bạn có thể dùng lệnh sau:)

# ufw disable

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:

ufw default allow outgoing ufw default deny incoming

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ụ:

ufw allow http

Hoặc sử dụng số cổng:

ufw allow 80

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:

ufw status verbose

Ví dụ, kết quả hiển thị có thể như sau:

Status: active 
Logging: on (low) 
Default: deny (incoming), allow (outgoing), deny (routed) 
New profiles: skip 

To                         Action      From 
--                         ------      ---- 
80/tcp                     ALLOW IN    Anywhere 
21/udp                     ALLOW IN    Anywhere 
80/tcp (v6)                ALLOW IN    Anywhere (v6) 
21/udp (v6)                ALLOW IN    Anywhere (v6)

Bạn cũng có thể từ chối lưu lượng bằng các lệnh:

# ufw deny 80 
# ufw deny 21

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:

# ufw delete allow http 
# ufw delete deny 2

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ụ:

    # ufw allow from 192.168.0.200

    Từ chối IP 192.168.0.200 truy cập:

    # ufw deny from 192.168.0.200
  • 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:

    # ufw allow from 192.168.1.0/24
  • Cho phép IP cụ thể truy cập cổng 80 với giao thức TCP:

    # ufw allow from 192.168.1.200 to any port 80 proto 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:

    # ufw allow 2000:3000/tcp 
    # ufw allow 2000:3000/udp
  • 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:

    # ufw deny from 192.168.0.4 to any port 22 
    # ufw deny from 192.168.0.10 to any port 22 
    # ufw allow from 192.168.0.0/24 to any port 22
  • 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:

    # nano /etc/ufw/before.rules

    Loại bỏ các dòng sau:

    -A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT 
    -A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT 
    -A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT 
    -A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT 
    -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

    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:

    # ufw reset

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/etc/ufw/before.rules.
Đầu tiên, mở tập tin /etc/default/ufw bằng trình soạn thảo nano:

# nano /etc/default/ufw

Thay đổi dòng sau:

DEFAULT_FORWARD_POLICY="ACCEPT"

Cho phép chuyển tiếp IPv4:

Mở tập tin /etc/ufw/sysctl.conf:

# nano /etc/ufw/sysctl.conf

Thay đổi dòng:

net/ipv4/ip_forward=1

Thêm NAT vào tập tin cấu hình của UFW:

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:

# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]

# Forward traffic through eth0 - Change to match you out-interface
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

# don't delete the 'COMMIT' line or these nat table rules won't
# be processed
COMMIT
Save the file when you are finished. Then restart UFW with the following linux command:
ufw disable
ufw enable

Lưu tập tin sau khi chỉnh sửa.

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:

# nano /etc/default/before.rules

Chỉnh sửa tập tin như sau:

:PREROUTING ACCEPT [0:0] 
-A PREROUTING -i eth0 -d 150.129.148.155   -p tcp --dport 80 -j  DNAT --to-destination 192.168.1.120:80 
-A PREROUTING -i eth0 -d 150.129.148.155   -p tcp --dport 443 -j  DNAT --to-destination 192.168.1.120:443 
-A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j MASQUERADE

Khởi động lại UFW:

# ufw disable
# ufw enable

Cho phép lưu lượng qua cổng 80 và 443:

# ufw allow proto tcp from any to 150.129.148.155 port 80
# ufw allow proto tcp from any to 150.129.148.155 port 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.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *