Bắt đầu với UFW (Uncomplicated Firewall) trên Ubuntu 22.04

theanh

Administrator
Nhân viên
UFW hay Uncomplicated Firewall là một ứng dụng để quản lý tường lửa dựa trên iptables trên Ubuntu. UFW là công cụ cấu hình tường lửa mặc định cho Ubuntu Linux và cung cấp một cách thân thiện với người dùng để cấu hình tường lửa. Lệnh UFW giống như tiếng Anh, vì vậy các lệnh rất dễ nhớ. Tường lửa UFW hỗ trợ IPv4 và IPv6.

UFW cũng cung cấp một ứng dụng GUI. Nếu bạn sử dụng máy tính để bàn GNOME, bạn có thể cài đặt gufw; nếu bạn sử dụng máy tính để bàn KDE, bạn có thể cài đặt kcm-ufw.

Điều kiện tiên quyết​

  • Phiên bản Ubuntu từ 16.04 đến 22.04. Các phiên bản Ubuntu mới hơn cũng có thể hoạt động.
  • Quyền root
Những nội dung được đề cập trong hướng dẫn này là gì?
  1. Cài đặt UFW.
  2. Cú pháp lệnh UFW cơ bản.
  3. Lệnh UFW Allow và Deny.
  4. Các lệnh UFW nâng cao.
  5. Xóa quy tắc trong UFW.
  6. Vô hiệu hóa và đặt lại UFW.

Cài đặt UFW​

Theo mặc định, UFW đã được cài đặt trên ubuntu 20.04. Bạn có thể kiểm tra điều này bằng lệnh:
Mã:
which ufw

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2282%22%3E%3C/svg%3E


Nếu không trả về đường dẫn đến lệnh như hiển thị ở trên, hãy cài đặt UFW bằng lệnh apt sau:
Mã:
sudo apt install ufw

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22302%22%3E%3C/svg%3E


Sau đó chạy lệnh sau để bật UFW:
Mã:
sudo ufw enable

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22117%22%3E%3C/svg%3E


Kết quả:
Mã:

Lệnh UFW cơ bản​

Lệnh "ufw enable" sẽ bật UFW với các quy tắc mặc định. Bạn có thể xác minh rằng UFW đang chạy bằng cách phát hành lệnh này:
Mã:
sudo ufw status verbose

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22179%22%3E%3C/svg%3E


Kết quả:
Mã:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
Nếu bạn muốn vô hiệu hóa hoặc tắt UFW, bạn có thể sử dụng:
Mã:
sudo ufw disable
Kết quả:
Mã:
Firewall stopped and disabled on system startup

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22137%22%3E%3C/svg%3E

Lệnh UFW Allow and Deny​

1. Lệnh UFW Allow

UFW sẽ từ chối mọi kết nối đến sau khi bạn bật nó lên. Vì vậy, điều đầu tiên bạn nên làm là cho phép truy cập SSH cho máy chủ nếu bạn muốn quản lý hệ thống từ xa. Lệnh "ufw allow sshport" cho phép truy cập bằng SSH, thay SSHPORT bằng cổng của dịch vụ SSH, cổng SSH mặc định là 22.
Mã:
sudo ufw allow 22
Kết quả:
Mã:
Rules updated
Rules updated (v6) #For IPv6
Nếu bạn muốn cho phép các kết nối đến trên cổng 22 chỉ dành cho TCP, hãy thêm vào cuối lệnh "/tcp" như được hiển thị trong ví dụ sau.
Mã:
sudo ufw allow 22/tcp
Khi dịch vụ mà bạn muốn cho phép truy cập đang lắng nghe trên cổng mặc định của nó, thì bạn có thể sử dụng tên dịch vụ thay vì số cổng. Điều này giúp mở cổng dễ dàng hơn vì bạn có thể không biết cổng. UFW sẽ tra cứu số cổng chính xác trong /etc/services cho bạn.

Lệnh này sẽ mở cổng SSH mặc định:
Mã:
sudo ufw allow ssh
Bây giờ hãy kiểm tra quy tắc bằng:
Mã:
sudo ufw status

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22264%22%3E%3C/svg%3E

2. Lệnh UFW Deny​

Lệnh "deny" hoạt động tương tự như lệnh "allow" và được sử dụng để đóng một cổng trong tường lửa:

Tùy chọn Deny with Port:
Mã:
sudo ufw deny 80
Kết quả:
Mã:
Rule updated
Rule updated (v6)

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22126%22%3E%3C/svg%3E


Ví dụ cho "từ chối" với tên dịch vụ. Trong ví dụ này, tôi sẽ chặn cổng http/80:
Mã:
sudo ufw deny http

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22303%22%3E%3C/svg%3E


Lưu ý:

Tất cả các cổng và tên dịch vụ của chúng được liệt kê trong tệp "/etc/services".

Các lệnh UFW nâng cao​

Bây giờ chúng ta sẽ tìm hiểu sâu hơn về cú pháp lệnh UFW, tìm hiểu cách cho phép các phạm vi một phần (ví dụ: đối với các cổng thụ động FTP) và chỉ truy cập từ một IP hoặc mạng con.

1. Cho phép một phạm vi cổng

Bạn có thể cho phép một phạm vi cổng trong UFW. Một số dịch vụ như FTP hoặc IRC sử dụng một phạm vi cổng để giao tiếp với các máy khách của mình.

Trong ví dụ này, chúng ta sẽ cho phép phạm vi cổng được ircd sử dụng trên máy chủ của tôi. Phạm vi là cổng 6660 đến 6670:
Mã:
sudo ufw allow 6660:6670/tcp
sudo ufw allow 6660:6670/udp
Lệnh sẽ cho phép kết nối đến các cổng 6660-6670 qua giao thức TCP và UDP.

2. Cho phép một Địa chỉ IP cụ thể

Và bạn có thể thêm một IP cụ thể để cho phép truy cập vào tất cả các dịch vụ bằng cách thêm tùy chọn "từ". Ví dụ, điều này hữu ích nếu bạn có IP tĩnh tại nhà hoặc tại văn phòng và muốn cho phép truy cập vào tất cả các dịch vụ trên máy chủ của mình từ đó. Lệnh bên dưới sẽ cho phép IP 192.168.1.106 truy cập vào tất cả các cổng trên máy chủ:
Mã:
sudo ufw allow from 192.168.1.106
Kết quả:
Mã:
Rule added
3. Cho phép mạng con

Nếu bạn muốn cho phép tất cả các địa chỉ IP trên mạng con của mình, bạn có thể thêm mạng con IP (phạm vi địa chỉ IP) vào lệnh UFW như sau:
Mã:
sudo ufw allow from 192.168.1.1/24
Kết quả:
Mã:
WARN: Rule changed after normalization
Rule added
4. Cho phép truy cập từ một địa chỉ IP cụ thể vào một cổng

Nếu bạn muốn chỉ cho phép truy cập vào một cổng từ một IP cụ thể, bạn có thể kết hợp các lệnh UFW mà chúng ta đã học ở trên.

Ví dụ: chỉ IP 192.168.1.106 mới có thể truy cập ssh cổng 22 TCP và các IP khác sẽ bị từ chối khỏi cổng đó, bạn có thể sử dụng lệnh sau lệnh:
Mã:
sudo ufw allow from 192.168.1.106 proto tcp to any port 22
Kết quả:
Mã:
Rule added
5. Cho phép tất cả lưu lượng truy cập đến một cổng cụ thể

Nếu bạn muốn cho phép tất cả lưu lượng truy cập trên cổng 80, bạn có thể sử dụng lệnh này:
Mã:
sudo ufw allow to any port 80

Xóa quy tắc tường lửa UFW​

Trong phần này, bạn sẽ tìm hiểu cách xóa quy tắc được lưu trong UFW. Bạn có thể sử dụng lệnh "delete" để xóa quy tắc ufw. Vui lòng nhập lệnh "ufw delete" theo sau là tùy chọn bạn muốn xóa, cho phép hoặc từ chối.

Sau đây là một số ví dụ:

Xóa quy tắc cho phép SSH có tên dịch vụ:
Mã:
sudo ufw delete allow ssh
Kết quả:
Mã:
Rule deleted
Rule deleted (v6)
Lệnh đó sẽ xóa quy tắc "cho phép ssh". Hãy cẩn thận, đừng khóa mình khỏi máy chủ.

Xóa quy tắc "từ chối" trên cổng 80:
Mã:
sudo ufw delete deny 80
Kết quả:
Mã:
Rule deleted
Rule deleted (v6)
Nếu bạn có một quy tắc phức tạp thì có một cách đơn giản để xác định và xóa quy tắc theo ID quy tắc của nó. Chạy lệnh sau để có danh sách tất cả các quy tắc cùng với ID của chúng:
Mã:
sudo ufw status numbered
Kết quả:
Mã:
Status: active
 
 To Action From
 -- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 22/tcp (v6) ALLOW IN Anywhere (v6)
Bây giờ hãy xóa quy tắc SSH chỉ dành cho IPv6 bằng cách sử dụng số quy tắc:
Mã:
sudo ufw delete 2

Vô hiệu hóa và đặt lại UFW​

Nếu bạn muốn tắt UFW mà không xóa các quy tắc của mình, bạn có thể sử dụng "vô hiệu hóa" lệnh:
Mã:
sudo ufw disable
Kết quả:
Mã:
Firewall stopped and disabled on system startup

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22296%22%3E%3C/svg%3E


Nếu bạn muốn tắt hoàn toàn UFW và xóa tất cả các quy tắc, bạn có thể sử dụng lệnh "đặt lại":
Mã:
sudo ufw reset
Kết quả:
Mã:
Resetting all rules to installed defaults. This may disrupt existing ssh
connections. Proceed with operation (y|n)? y
Backing up 'after6.rules' to '/etc/ufw/after6.rules.20150918_190351'
Backing up 'user.rules' to '/lib/ufw/user.rules.20150918_190351'
Backing up 'after.rules' to '/etc/ufw/after.rules.20150918_190351'
Backing up 'before.rules' to '/etc/ufw/before.rules.20150918_190351'
Backing up 'before6.rules' to '/etc/ufw/before6.rules.20150918_190351'
Backing up 'user6.rules' to '/lib/ufw/user6.rules.20150918_190351'

Kết luận​

UFW (Uncomplicated Firewall) là công cụ cấu hình tường lửa mặc định trong Ubuntu. Các lệnh UFW tương tự như tiếng Anh, giúp dễ sử dụng và dễ nhớ. Hướng dẫn UFW này là hướng dẫn để bắt đầu sử dụng công cụ tường lửa tuyệt vời này nếu bạn muốn biết thêm về UFW, bạn có thể truy cập wiki ubuntu hoặc ufw-manpage.
 
Back
Bên trên