Ubuntu Firewall là gì? Mối quan hệ giữa Ubuntu Firewall và IPTABLES

Bài viết tìm hiểu chi tiết vềUbuntu Firewall, cách sử dụng tường lửa Ubuntu để bảo mật hệ thống cũng như mối quan hệ giữa Ubuntu Firewall với Iptables.

Mạng Internet ngày càng trở nên nguy hiểm, đặt ra thách thức lớn trong việc bảo vệ hệ thống. Trong bối cảnh này, Ubuntu Firewall nổi lên như một giải pháp hiệu quả để giữ an toàn cho các máy chủ chạy hệ điều hành Ubuntu Linux. Trong bài viết này, chúng ta sẽ đi sâu vào khám phá Ubuntu Firewall, đồng thời tìm hiểu về mối liên kết chặt chẽ của nó với IPTABLES.

Mối quan hệ giữa Ubuntu Firewall và IPTABLES

1. Ubuntu Firewall là gì?

Ubuntu Firewall, hay còn được biết đến với tên gọi UFW (Uncomplicated Firewall), là một công cụ quản lý tường lửa được tích hợp sẵn trong hệ điều hành Ubuntu. Mục đích chính của nó là bảo vệ hệ thống khỏi các mối đe dọa mạng bằng cách kiểm soát và giới hạn lưu lượng truy cập.

Việc sử dụng UFW (Uncomplicated Firewall) trong hệ điều hành Ubuntu mang lại nhiều lợi ích, đặc biệt là đối với người dùng và quản trị viên hệ thống không có kinh nghiệm lớn về tường lửa. Dưới đây là một số lợi ích chính khi sử dụng UFW:

  • Dễ cài đặt và sử dụng:
  • Đơn giản hóa quản lý quy tắc
  • Hỗ trợ quy tắc mặc định
  • Dễ theo dõi và hiểu
  • Thích hợp cho người mới bắt đầu
  • Hỗ trợ quy tắc áp dụng tự động

2. Mối quan hệ giữa Ubuntu Firewall và IPTABLES

Ubuntu Firewall và IPTABLES

>>>Xem thêm:IPTABLES là gì? Cấu trúc thành phần của IPTABLES và cách sử dụng

Mối quan hệ giữa Ubuntu Firewall và IPTABLES là tương đối chặt chẽ, với Ubuntu Firewall được xây dựa trên nền tảng của IPTABLES để quản lý tường lửa mạng. Dưới đây là một số điểm quan trọng về mối quan hệ này:

  • UFW là giao diện đơn giản hóa của iptables :Ubuntu Firewall (UFW) là một giao diện đơn giản và dễ sử dụng cho IPTABLES, giúp người dùng quản lý tường lửa mà không cần phải làm việc trực tiếp với cú pháp phức tạp của IPTABLES.
  • Dựa trên quy tắc iptables :UFW sử dụng các quy tắc IPTABLES để xác định cách mà lưu lượng mạng sẽ được chấp nhận hoặc từ chối.
  • Tích hợp linh hoạt :UFW không chỉ đơn giản hóa việc sử dụng IPTABLES mà còn giữ lại tính linh hoạt của nó. Người dùng có thể chuyển đổi giữa UFW và IPTABLES tùy thuộc vào yêu cầu cụ thể của họ.

Cách mà Firewall làm việc với UFW và IPTABLES:

  • UFW sẽ tự động chuyển đổi các rule mà người dùng thiết lập sang cấu trúc các rule chuẩn quy tắc của IPTABLES.
  • IPTABLES sẽ trực tiếp thao tác với các gói tin dựa trên các rule được thiết lập.

3. Cách cài đặt và cấu hình Ubuntu Firewall

3.1 Cách cài đặt UFW

Mặc định thì UFW sẽ luôn được cài đặt trên Ubuntu. Nhưng đôi khi có thể vì một vài lý do gì đấy có thể là chẳng may các bạn đã xóa nó đi nên trên máy các bạn không có.  Các ban có thể sử dụng lệnh sau để tải UFW về.

apt-get update

apt-get install ufw

Tuy nhiên tải về thì các bạn phải bật lên mới có thể sử dụng.

ufw enables

Và để kiểm tra trạng thái bạn có thể sử dụng lệnh.

ufw status

Đến đây là ta đã có thể sử dụng được UFW rồi

3.2 Các câu lệnh thao tác với UFW cần nhớ

Kích hoạt ufw

ufw enable

Tắt kích hoạt ufw

ufw disable

Ta có thể thay thế enable hay disable thành reload hay restart để tiến hành áp dụng cấu hình mới mà chúng ta thiết lập.

Xem các rule đã thiết lập trong ufw.

ufw status

Để mở 1 port cho một dịch vụ.

ufw allow 22/tcp

Khi ta mở port thì sẽ có lúc cần đóng port đó.

ufw deny 22/tcp

Để xóa 1 rule thì sẽ xóa theo dòng. Ta sẽ sử dụngufw statusđể xem số dòng rồi xóa.

ufw delete 1

Ta cũng có thể giới hạn các dải mạng hay IP cụ thể truy cập vào port đó.

ufw allow proto tcp from 192.168.10.0/24 to any port 22

Ta có thể kiểm tra một lệnh xem nó có phù hợp không và nó sẽ hiện ra các rules và chains trong iptables. Những quy tắc đó sẽ không được thực sự thêm.

ufw --dry-run allow http

3.3 File cấu hình của UFW

Tất cả các file cấu hình ufw thì sẽ nằm trong thư mục /etc/ufw. Khi các bạn sử dụng lệnh ufw để mở port hay đóng port gì đó thì nó sẽ lưu ở các file trong này. Chính các file cấu hình này sẽ tương tác với iptables để tạo ra các rule.

Ta có thể sử dụng lệnh sau để xem các file cấu hình mà ufw cung cấp.

tree -L 1 /etc/ufw/

File cấu hình user.rules của ufw

Trong các file cấu hình này thì sẽ có cá file có đuôi .rule là quan trọng nhất nó sẽ chứa các rule mà ta thiết lập để lọc các gói tin. Tất cả các câu lệnh mà ta gõ với ufw cũng đều được lưu thành các rule trong những file này.

Có một số các rule các bạn nên nhớ (mình sẽ bỏ qua các file có số 6 vì nó sẽ liên quan đến rule của IPv6 nên sẽ chẳng cần thiết).

  • after.rules : các rule để lọc các gói tin sau khi đã định tuyến
  • before.rules : Các rule để lọc các gói tin trước khi định tuyến
  • user.rules : Các rule để lọc các gói tin mà user tạo ra
  • applications.d : thư mục chứa các file định nghĩa các app để thao tác với ufw

Có thể nói application.d là một thư mục khá là hay. Khi bạn muốn app của bạn có thể thông qua tường lửa hay có bất kỳ thao tác gì với tường lửa bạn sẽ tạo 1 file và khai báo nó ở đây và việc của chúng ta là dùng các lệnh ufw thao tác với nó.

Nội dung cần phải khai báo cho app.

[ExampleApp] # tên app

title=Example Application # tiêu đề app

description=This is an example application. # mô tả về app đó

ports=1234/tcp # port app đó sử dụng

Mình sẽ lấy ví dụ là mình tạo ra file chứa ứng dụng nginx.

vi /etc/ufw/applications.d/nginx

Thêm vào nội dung sau

[nginx]

title=Nginx Web Server

description=This is the Nginx web server application.

ports=80,443/tcp

Bây giờ ta chỉ cần thoát ra và lưu lại là có thể thao tác với ứng dụng nginx rồi.

Xem danh sách các app có trong ufw.

ufw app list

Kết quả

root@thanhquang:~# ufw app list

Available applications:

nginx

root@thanhquang:~#

Xem chi tiết thông tin về app

ufw app info nginx

Kết quả

root@thanhquang:~# ufw app info nginx

Profile: nginx

Title: Nginx Web Server

Description: This is the Nginx web server application.


Ports:

80,443/tcp

root@thanhquang:~#

Tương tự việc cho phép lưu lượng từ 1 port thì ta có thể cho phép lưu lượng từ app bằng lệnh.

ufw allow nginx

Ta cũng có cấu trúc mở rộng từ việc chỉ cho phép ứng dụng nginx từ 1 dải mạng.

ufw allow from 192.168.10.0/32 to any app nginx

4. Nên chọn Ubuntu Firewall hay IPTABLES

Đây là một câu hỏi rất khó để trả lời. Trước tiên bạn cần phải hiểu rõ những thứ này để đưa ra lựa chọn.

Đầu tiên sử dụng IPTABLES thì các bạn có thể xóa tất cả cấu hình kể cả ứng dụng UFW đi mà vẫn có thể thao tác bình thường. Nhưng khi bạn sử dụng UFW thì không thể nào thiếu IPTABLES vì UFW chỉ được coi là giao diện đơn giản hóa IPTABLES.

Nên chọn Ubuntu Firewall hay IPTABLES

Chính vì lý do trên ta có thể đưa ra kết luận như sau:

  • Khi bạn muốn một cái gì đó đơn giản và chỉ muốn thao tác một cách dễ dàng nhất đối với việc làm đơn giản như mở port gì đó hãy chọn UFW. Hơn thế nữa nó còn tích hợp một sốquy tắc mặc định cho các dịch vụ phổ biến như SSH, HTTP, HTTPS, giúp bảo vệ máy chủ ngay từ khi cài đặt.
  • Nếu bạn muốn một thứ gì đó nâng cao như thay đổi port hay IP của gói tin thì UFW vẫn có thể làm được nhưng sẽ không có lệnh hỗ trợ mà bạn cần phải can thiệp trực tiếp vào file cấu hình để chỉnh sửa. Nhưng IPTABLES lại cung cấp cho bạn câu lệnh. Từ đây ta có thể kết luận hãy sử dụng IPTABLES với những thứ nâng cao hơn nhé.
  • Nếu bạn đã nắm bắt được cả 2 thì bạn có thể sử dụng cả 2 để có thế lấy ưu điểm của 2 cái kết hợp với nhau. Bản chất của UFW cũng chỉ là IPTABLES thôi mà nên khi bạn lười gõ lệnh iptables dài dòng thì hãy nghĩ đến UFW.

5. Một số lưu ý cần nhớ khi thao tác với UFW và IPTABLES

Một điều cần lưu ý là khi ta bật hay tắt UFW thì các rule default của các chain sẽ thay đổi. Ví dụ như khi disable ufw thì chain INPUT và OUTPUT sẽ có rule default là ACCEPT còn khi tắt thì ngược lại.

Điều tiếp theo cần lưu ý nữa là khi ta thao tác với IPTABLES thì cần phải lưu lại cấu hình vào một file rồi mới từ file đó áp dụng.

Mình sẽ tạo ra 1 thư mục chứa lưu các file cấu hinh.

mkdir /etc/iptables

Sau khi cấu hình iptables ta sẽ lưu nó vào 1 file.

iptables-save > /etc/iptables/rules.v4

Để áp dụng cấu hình đó ta sẽ sử dụng lệnh.

iptables-restore < /etc/iptables/rules.v4

Mặc định iptables ta sẽ chỉ có chain chính là INPUT, OUTPUT, FORWARD. Nhưng khi ta tải về và cài đặt UFW nó sẽ sinh ra rất nhiều chain khác, các chain này sẽ lấy từ trong nội dung các file trong thư mục /etc/ufw.

6. Kết luận

Việc hiểu rõ vềUbuntu Firewallvà mối quan hệ với IPTABLES là quan trọng. Quản lý tường lửa không chỉ là một phần quan trọng của bảo mật hệ thống, mà còn giúp người dùng duy trì sự ổn định và hiệu suất cho máy chủ Ubuntu Linux của họ. Sự kết hợp giữa đơn giản và mạnh mẽ của Ubuntu Firewall và IPTABLES cung cấp một giải pháp toàn diện cho các yêu cầu bảo mật. Trở lại suncloud.vn để cập nhật những kiến thức công nghệ mới nhất nhé.