Cấu hình UFW trên Ubuntu 20.04

Cấu hình UFW trên Ubuntu 20.04

Dưới đây là hướng dẫn chi tiết cách cấu hình UFW (Uncomplicated Firewall) trên Ubuntu 20.04. UFW là một công cụ quản lý tường lửa đơn giản nhưng mạnh mẽ, được thiết kế để giúp bạn dễ dàng quản lý các quy tắc tường lửa trên hệ thống Ubuntu.


1. Giới Thiệu về UFW

UFW (Uncomplicated Firewall) là một công cụ quản lý tường lửa đơn giản, giúp người dùng dễ dàng thiết lập các quy tắc bảo mật cho hệ thống mà không cần kiến thức sâu về iptables. UFW được thiết kế để làm cho việc quản lý tường lửa trở nên dễ dàng hơn, đặc biệt là cho những người không quen thuộc với các lệnh phức tạp của iptables.

Lợi Ích của UFW:

  • Dễ Sử Dụng: Các lệnh đơn giản và trực quan.
  • Quản Lý Quy Tắc: Tạo, xóa, liệt kê các quy tắc một cách dễ dàng.
  • Tích Hợp Với Các Ứng Dụng: Hỗ trợ các profile ứng dụng để dễ dàng mở các cổng cần thiết.

2. Cài Đặt UFW trên Ubuntu 20.04

Ubuntu 20.04 thường đã được cài đặt sẵn UFW. Tuy nhiên, nếu chưa có, bạn có thể cài đặt và cấu hình UFW bằng cách thực hiện các bước sau:

Bước 1: Cập Nhật Hệ Thống

Trước khi cài đặt bất kỳ gói phần mềm nào, hãy đảm bảo rằng hệ thống của bạn được cập nhật.

sudo apt update
sudo apt upgrade -y

Bước 2: Cài Đặt UFW

sudo apt install ufw -y

3. Kiểm Tra Trạng Thái UFW

Trước khi cấu hình, hãy kiểm tra trạng thái hiện tại của UFW.

sudo ufw status verbose

Kết Quả:

  • Status: active hoặc inactive
  • Default: các chính sách mặc định cho incoming và outgoing traffic
  • Rules: danh sách các quy tắc hiện tại

4. Cấu Hình UFW

4.1. Thiết Lập Chính Sách Mặc Định

Chính sách mặc định xác định cách xử lý lưu lượng mà không khớp với bất kỳ quy tắc nào.

  • Chặn Tất Cả Lưu Lượng Incoming
  • Cho Phép Tất Cả Lưu Lượng Outgoing
sudo ufw default deny incoming
sudo ufw default allow outgoing

4.2. Cho Phép Kết Nối SSH

Nếu bạn đang quản lý server từ xa qua SSH, hãy đảm bảo rằng bạn không bị khóa ra khỏi server.

sudo ufw allow ssh

Hoặc, nếu bạn sử dụng cổng SSH khác (ví dụ: 2222):

sudo ufw allow 2222/tcp

4.3. Cho Phép HTTP và HTTPS

Nếu bạn đang chạy một máy chủ web, hãy mở cổng 80 (HTTP) và 443 (HTTPS).

sudo ufw allow http
sudo ufw allow https

Hoặc sử dụng các số cổng tương ứng:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

4.4. Cho Phép Các Dịch Vụ Khác

Tùy thuộc vào các dịch vụ bạn đang sử dụng, bạn có thể mở thêm các cổng cần thiết. Dưới đây là một số ví dụ:

  • FTP (cổng 21):
    sudo ufw allow 21/tcp
    
  • MySQL (cổng 3306):
    sudo ufw allow 3306/tcp
    
  • Mail (SMTP, IMAP, POP3):
    sudo ufw allow 25/tcp
    sudo ufw allow 143/tcp
    sudo ufw allow 110/tcp
    

4.5. Cho Phép Từ Một IP Cụ Thể

Nếu bạn muốn chỉ cho phép một địa chỉ IP cụ thể truy cập vào một cổng nào đó, bạn có thể sử dụng lệnh sau:

sudo ufw allow from 192.168.1.100 to any port 22

4.6. Chặn Một IP Cụ Thể

Để chặn một địa chỉ IP cụ thể, bạn có thể sử dụng lệnh:

sudo ufw deny from 203.0.113.1

5. Kích Hoạt và Quản Lý UFW

5.1. Kích Hoạt UFW

Sau khi cấu hình các quy tắc cần thiết, hãy kích hoạt UFW.

sudo ufw enable

Lưu Ý:

  • Một khi UFW được kích hoạt, nó sẽ áp dụng ngay lập tức các quy tắc đã cấu hình.
  • Đảm bảo rằng bạn đã cho phép SSH trước khi kích hoạt để tránh mất kết nối từ xa.

5.2. Kiểm Tra Trạng Thái và Quy Tắc

sudo ufw status verbose

Kết Quả Ví Dụ:

Status: active

To Action From
— —— —-
22/tcp ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
443/tcp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
80/tcp (v6) ALLOW IN Anywhere (v6)
443/tcp (v6) ALLOW IN Anywhere (v6)

5.3. Vô Hiệu Hóa UFW

Nếu bạn muốn tạm thời vô hiệu hóa UFW:

sudo ufw disable

5.4. Xóa Một Quy Tắc

Để xóa một quy tắc, bạn cần biết số thứ tự của quy tắc đó.

  1. Liệt Kê Các Quy Tắc Với Số Thứ Tự:
    sudo ufw status numbered
    

    Ví Dụ:

    Status: active

    To Action From
    — —— —-
    [ 1] 22/tcp ALLOW IN Anywhere
    [ 2] 80/tcp ALLOW IN Anywhere
    [ 3] 443/tcp ALLOW IN Anywhere
    [ 4] 22/tcp (v6) ALLOW IN Anywhere (v6)
    [ 5] 80/tcp (v6) ALLOW IN Anywhere (v6)
    [ 6] 443/tcp (v6) ALLOW IN Anywhere (v6)

  2. Xóa Quy Tắc Bằng Số Thứ Tự:
    sudo ufw delete 2
    
    • Quy tắc thứ tự 2 (80/tcp) sẽ bị xóa.

5.5. Reset UFW

Nếu bạn muốn thiết lập lại UFW về trạng thái mặc định, xóa tất cả các quy tắc:

sudo ufw reset

Lưu Ý:

  • Lệnh này sẽ xóa tất cả các quy tắc và tắt UFW.

6. Cấu Hình Nâng Cao với UFW

6.1. Tạo Các Quy Tắc Mới Với Điều Kiện Phức Tạp

  • Chặn Truy Cập Từ Một Phạm Vi IP:
    sudo ufw deny from 192.168.1.0/24
    
  • Cho Phép Truy Cập Từ Một Phạm Vi IP:
    sudo ufw allow from 192.168.1.0/24 to any port 22
    

6.2. Sử Dụng Các Profile Ứng Dụng

UFW hỗ trợ các profile ứng dụng để dễ dàng quản lý các dịch vụ phổ biến.

  1. Liệt Kê Các Profile Có Sẵn:
    sudo ufw app list
    

    Ví Dụ:

    Available applications:
      Apache
      Apache Full
      Apache Secure
      OpenSSH
      Samba
    
  2. Cho Phép Một Profile:
    sudo ufw allow 'Apache Full'
    

6.3. Sử Dụng Port Ranges và Protocols

  • Mở Một Phạm Vi Cổng:
    sudo ufw allow 1000:2000/tcp
    
  • Cho Phép Cổng Với Protocol Cụ Thể:
    sudo ufw allow 53/udp
    

6.4. Sử Dụng limit để Ngăn Chặn Tấn Công Brute-Force

  • Giới Hạn Kết Nối SSH Để Ngăn Chặn Tấn Công Brute-Force:
    sudo ufw limit ssh
    

    Điều này sẽ giới hạn số lần kết nối không thành công trong một khoảng thời gian cụ thể.


7. Kiểm Tra và Giám Sát UFW

7.1. Kiểm Tra Trạng Thái UFW

sudo ufw status verbose

7.2. Xem Nhật Ký UFW

UFW ghi lại các sự kiện trong file log, bạn có thể kiểm tra để giám sát hoạt động của tường lửa.

  • Kiểm Tra Nhật Ký UFW:
    sudo less /var/log/ufw.log
    
  • Xem Các Sự Kiện Gần Đây:
    sudo tail -f /var/log/ufw.log
    

7.3. Sử Dụng Lệnh dmesg để Xem Các Sự Kiện Liên Quan

dmesg | grep ufw

8. Ví Dụ Thực Tế

Giả sử bạn muốn thiết lập tường lửa cho một máy chủ web với các yêu cầu sau:

  • Cho phép SSH trên cổng 22
  • Cho phép HTTP trên cổng 80
  • Cho phép HTTPS trên cổng 443
  • Chặn tất cả các kết nối khác

Bước 1: Thiết Lập Chính Sách Mặc Định

sudo ufw default deny incoming
sudo ufw default allow outgoing

Bước 2: Cho Phép SSH, HTTP, HTTPS

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

Bước 3: Kích Hoạt UFW

sudo ufw enable

Bước 4: Kiểm Tra Trạng Thái UFW

sudo ufw status verbose

Kết Quả:

Status: active

To Action From
— —— —-
22/tcp ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
443/tcp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
80/tcp (v6) ALLOW IN Anywhere (v6)
443/tcp (v6) ALLOW IN Anywhere (v6)


9. Mẹo và Lưu Ý Khi Sử Dụng UFW

  • Sao Lưu Quy Tắc: Trước khi thực hiện thay đổi lớn, hãy sao lưu các quy tắc hiện tại.
    sudo ufw status numbered > ufw-rules-backup.txt
    
  • Phục Hồi Quy Tắc:
    sudo ufw reset
    sudo ufw enable
    sudo ufw allow ssh
    # Thêm các quy tắc khác từ file sao lưu nếu cần
    
  • Kiểm Tra Lỗi Cấu Hình: Đôi khi, các quy tắc có thể xung đột hoặc không chính xác, dẫn đến việc UFW không hoạt động như mong muốn. Hãy kiểm tra lại các quy tắc và đảm bảo chúng được viết đúng.
  • Tài Nguyên Hỗ Trợ:

10. Kết Luận

Thiết lập tường lửa với UFW trên Ubuntu 20.04 là một bước quan trọng để bảo vệ hệ thống của bạn khỏi các mối đe dọa mạng. Bằng cách làm theo các bước hướng dẫn trên, bạn có thể dễ dàng cấu hình UFW để chỉ cho phép các kết nối cần thiết và chặn tất cả các kết nối không mong muốn.

Nhớ luôn luôn sao lưu dữ liệu và kiểm tra lại cấu hình sau khi thực hiện thay đổi để đảm bảo rằng hệ thống của bạn vẫn hoạt động bình thường.

Nếu bạn gặp bất kỳ vấn đề nào hoặc cần hỗ trợ thêm, đừng ngần ngại liên hệ với cộng đồng Ubuntu hoặc tham khảo tài liệu chính thức của UFW.


Chúc bạn thành công trong việc bảo vệ hệ thống của mình với UFW! Nếu bạn có bất kỳ câu hỏi nào thêm, hãy cho tôi biết 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 *