UFW tường lửa không phức tạp trên Linux

Tường lửa (Firewall) là một chương trình phần mềm giám sát lưu lượng mạng và ngăn chặn truy cập trái phép vào hệ thống. Trong hầu hết các bản phân phối của hệ điều hành Linux (Debian, Ubuntu, Alpine …), iptables là một hệ thống tường lửa tiêu chuẩn được tích hợp mặc định. Bạn có thể thiết lập các qui tắc cho iptables bằng việc thực thi các dòng lệnh. Tuy nhiên, để thiết lập đúng cần một khoảng thời gian nhiều tìm hiểu do đó để đơn giản hóa việc thiết lập UFW đã ra đời. Vậy UFW là gì? UFW (Uncomplicated Firewall - Tường lửa không phức tạp) là một công cụ cho phép bạn quản lý cấu hình tường lửa mà đằng sau nó là iptables bằng cách sử dụng dòng lệnh trên Linux.

Lưu các qui tắc (rule) trong UFW

Đối với iptable, các qui tắc sẽ có hiệu lực tức thì ngay sau khi bạn nhấn Enter, nhưng khi bạn khởi động lại hệ điều hành thì các qui tắc đó sẽ biến mất. Với UFW những qui tắc cũng có tác dụng tức thì nhưng mà nó vẫn được lưu lại khi khởi động máy. Đó chính là sự khác biệt.

Cài đặt UFW

Để cài đặt ufw, tùy theo bản Linux mà có sự khác nhau đôi chút,

  • Trên Ubuntu/Debian
sudo apt install ufw
  • Trên Alpine Linux
apk add ufw

Theo mặc định, ufw cho phép tất cả các kết nối đi và từ chối các kết nối đến.

Kiểm tra trạng thái và liệt kê các qui tắc
sudo ufw status
Thiết lập mặc định UFW
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22

hoặc

sudo ufw allow ssh
Kích hoạt và vô hiệu hóa UFW
sudo ufw enable
sudo ufw disable
Mở cổng theo dãy trong UFW
sudo ufw allow 137:138/udp
Cho phép kết nối từ một địa chỉ nào đó trong UFW
sudo ufw allow from 10.0.0.10
Cho phép kết nối từ một địa chỉ nào đó trên một cổng chỉ định
sudo ufw allow from 10.0.0.10 to any port 22

Xóa qui tắc tường lửa trong UFW
skywirex:~# sudo ufw status numbered verbose
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80                         ALLOW IN    Anywhere
[ 3] 8000                       ALLOW IN    Anywhere
[ 4] 443/tcp                    ALLOW IN    Anywhere
[ 5] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 6] 80 (v6)                    ALLOW IN    Anywhere (v6)
[ 7] 8000 (v6)                  ALLOW IN    Anywhere (v6)
[ 8] 443/tcp (v6)               ALLOW IN    Anywhere (v6)
[ 9] 1080                       ALLOW IN    Anywhere

Bạn có thể xóa qui tắc tường lửa sử dụng số như sau:

sudo ufw delete 9

Xóa qui tắc từ 1 đến 5

for i in 1 2 3 4 5; do sudo ufw --force delete 1; done
Vô hiệu hóa UFW và đặt lại các thiết lập

Bạn có thể vô hiệu hóa UFW bằng cách sử dụng dòng lệnh sau:

sudo ufw disable

Bạn cũng có thể đặt lại thiết lập của UFW. Việc đặt lại UFW sẽ xóa tất cả các qui tắt và vô hiệu hóa tường lửa. Việc này sẽ không ảnh hưởng đến các qui tắc mặc định.

sudo ufw reset