Hướng dẫn cài đặt tường lửa với UFW trên VPS Ubuntu 18.04

0

Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách cài đặt và định cấu hình UFW trên VPS Ubuntu 18.04 . Đầu tiên, chúng tôi sẽ dành một chút thời gian để giới thiệu và giải thích tường lửa là gì, sau đó chúng tôi sẽ chỉ cho bạn cách sử dụng UFW và cách tạo cấu hìnhphù hợp.

Tường lửa 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 hoặc từ một mạng riêng. Liên quan đến nhân Linux, một hệ thống con Netfilter được triển khai, được sử dụng để thao túng lưu lượng mạng. Hầu như tất cả các giải pháp tường lửa Linux hiện đại đều sử dụng hệ thống này để lọc các gói mạng. Ngoài ra, ‘iptables’ – một tiện ích tường lửa có thể truy cập từ dòng lệnh – cũng là một phần của khung Netfilter. Để đơn giản hóa quá trình tạo quy tắc tường lửa, Canonical (người tạo ra Ubuntu) đã phát triển giao diện iptables có tên là Uncomplicated Firewall (UFW).

Nếu bạn đang sử dụng Ubuntu 18.04 và muốn bảo mật mạng của mình mà không phải đối phó với việc học cách sử dụng iptables, thì UFW có thể là giải pháp phù hợp bạn đang tìm kiếm.

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

Để làm theo hướng dẫn này, bạn sẽ cần một máy chủ có quyền truy cập Ubuntu 18.04 và SSH với người dùng root (hoặc người dùng có quyền sudo). Hãy bắt đầu với hướng dẫn.

Bước 1: Kết nối với máy chủ của bạn

Trước khi chúng tôi bắt đầu, bạn sẽ cần kết nối với máy chủ của mình thông qua SSH với quyền root hoặc người dùng có quyền sudo. Để làm điều này, sử dụng lệnh sau:

ssh root@IP_Address -p Port_Number

tất nhiên, bạn sẽ cần phải thay thế IP_Addressvà Port_Numberbằng địa chỉ IP máy chủ thực tế của bạn và số cổng SSH.

Sau khi đăng nhập, hãy đảm bảo rằng máy chủ của bạn được cập nhật bằng cách chạy các lệnh sau:

sudo apt update
sudo apt upgrade

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

UFW nên được cài đặt theo mặc định trên Ubuntu 18.04 – nhưng nếu vì lý do nào đó chưa được cài đặt, bạn có thể cài đặt nó bằng lệnh này:

sudo apt install ufw

Sau khi cài đặt hoàn tất, bạn có thể kiểm tra trạng thái UFW bằng lệnh:

sudo ufw status verbose

UFW theo mặc định ban đầu bị vô hiệu hóa và nếu bạn chưa bao giờ kích hoạt trước đó, bạn sẽ nhận được đầu ra:

Output
Status: inactive

Nếu bạn đã kích hoạt UFW trên máy chủ của mình, đầu ra sẽ trông khá khác biệt và sẽ trông giống như sau:

Output:

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

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)
....

Bước 3: Chính sách mặc định của UFW

Điều đầu tiên bạn cần biết là các chính sách mặc định. Theo mặc định, UFW được cấu hình để từ chối tất cả các kết nối đến và cho phép tất cả các kết nối đi. Nói cách khác, tất cả các kết nối sẽ cố gắng truy cập máy chủ của bạn sẽ bị từ chối và tất cả các ứng dụng và dịch vụ được tìm thấy cục bộ trên máy chủ của bạn sẽ có thể tiếp cận với thế giới bên ngoài và truy cập các máy chủ khác.

Nếu bạn muốn kiểm tra hoặc thay đổi các chính sách mặc định, bạn có thể tìm thấy chúng trong /etc/default/ufw tệp cấu hình.

Để đặt các quy tắc UFW này thành mặc định, bạn có thể chạy các lệnh sau:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Hãy nhớ rằng các máy chủ thường cần phải đáp ứng yêu cầu đến từ người dùng Internet. Vì vậy, trong hầu hết các trường hợp, bạn không thể đặt tường lửa của mình chặn tất cả các kết nối đến. Trong bước tiếp theo, chúng ta sẽ tìm hiểu cách cho phép các kết nối cụ thể.

Bước 4: Cho phép kết nối SSH

Trước khi bật UFW, bạn cần cho phép truy cập SSH trên máy chủ của mình bằng cách thêm quy tắc cho phép kết nối SSH đến. Nếu không, bạn sẽ bị khóa và bạn sẽ không thể kết nối với máy chủ Ubuntu của mình.

Bạn có thể sử dụng lệnh sau để định cấu hình tường lửa UFW để cho phép tất cả các kết nối SSH đến:

sudo ufw allow ssh

Sau đó, bạn sẽ nhận được đầu ra sau:

Rules updated
Rules updated (v6)

Xin lưu ý rằng lệnh này chỉ khi máy chủ của bạn lắng nghe cổng SSH được tiêu chuẩn hóa: 22. Nếu dịch vụ SSH sử dụng cổng không chuẩn tùy chỉnh, bạn sẽ cần mở cổng đó. Nếu dịch vụ SSH trên máy chủ của bạn sử dụng một cổng duy nhất, ví dụ cổng 900, thì bạn có thể sử dụng lệnh sau:

sudo ufw allow 900

Lưu ý rằng bạn sẽ cần biết số cổng mà dịch vụ của bạn hiện đang sử dụng.

Bước 5: Kích hoạt UFW

Bây giờ tường lửa của bạn được cấu hình để cho phép kết nối SSH và bạn chắc chắn rằng kết nối SSH hiện tại của bạn sẽ không bị ảnh hưởng, bạn có thể tiếp tục với việc bật tường lửa UFW.

sudo ufw enable

Sau đó, bạn sẽ nhận được đầu ra sau đây:

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Bạn sẽ nhận được một cảnh báo cho bạn biết rằng bạn cần phải cấu hình cho phép các quy tắc SSH, nếu không, kết nối SSH hiện tại sẽ bị đóng. Vì bạn đã có, nhập [y] và tiếp tục với [Enter].

Bước 6: Cho phép kết nối trên các cổng cụ thể

Các ứng dụng và dịch vụ mà bạn sử dụng có thể cần mở các cổng của chúng cho các kết nối đến và đi, tùy thuộc vào mục đích của ứng dụng. Các cổng phổ biến nhất bạn sẽ cần bỏ chặn là các cổng 80 & 443, được sử dụng bởi máy chủ web và 25, 110, 143, 587 và 993, được sử dụng bởi máy chủ thư.

Chúng tôi sẽ chỉ cho bạn qua một vài ví dụ về cách cho phép kết nối đến cho một số dịch vụ phổ biến.

Để cho phép tất cả các kết nối HTTP (cổng 80), hãy chạy lệnh này:

sudo ufw allow http

Ngoài ra, nếu bạn muốn chỉ định cổng, bạn có thể áp dụng quy tắc cơ bản giống nhau nhưng với một cú pháp khác:

sudo ufw allow 80

Để cho phép tất cả các kết nối HTTPS (cổng 443), hãy chạy lệnh:

sudo ufw allow https

Ngoài ra, nếu bạn muốn chỉ định cổng HTTPS, bạn có thể áp dụng quy tắc với một cú pháp khác:

sudo ufw allow 443

Nếu bạn đang sử dụng máy chủ thư, một số quy tắc tiếp theo có thể hữu ích.

Để cho phép tất cả các SMTP đến, bạn có thể chạy lệnh:

sudo ufw allow 25

Để cho phép tất cả các kết nối IMAP đến, hãy chạy lệnh:

sudo ufw allow 143

Và để cho phép tất cả các yêu cầu IMAPS đến, bạn có thể sử dụng lệnh:

sudo ufw allow 993

Nếu bạn đang sử dụng POP3 thay thế, lệnh này bên dưới sẽ cho phép tất cả các kết nối đến:

sudo ufw allow 110

Và đối với tất cả các yêu cầu POP3S đến, hãy sử dụng lệnh tiếp theo này:

sudo ufw allow 995

Cuối cùng, nếu bạn đang chạy một chương trình cụ thể yêu cầu truy cập web, bạn cũng sẽ cần phải bật cổng cụ thể cho chương trình đó. Ví dụ: nếu bạn chạy Tomcat trên máy chủ của mình, bạn sẽ cần cổng 8080. Bạn có thể cho phép tất cả các kết nối đến cổng này bằng lệnh:

sudo ufw allow <port number>

Bạn có thể làm điều này cho tất cả các cổng cụ thể mà bạn có thể cần.

Bước 7: Cho phép Phạm vi cổng

UFW cũng có thể cho phép truy cập vào phạm vi cổng thay vì cho phép truy cập vào một cổng duy nhất. Khi bạn muốn cho phép phạm vi cổng tại cổng UFW, bạn cần chỉ định phạm vi của cổng và giao thức, là TCP hoặc UDP.

Ví dụ: nếu bạn muốn cho phép các cổng từ 8069 đến 8080 cho cả TCP và UDP, bạn có thể sử dụng các lệnh sau:

sudo ufw allow 8069:8080/tcp
sudo ufw allow 8069:8080/udp

Bước 8: Cho phép địa chỉ IP cụ thể

Nếu bạn muốn chỉ cho phép một địa chỉ IP (ví dụ: một máy đáng tin cậy được tìm thấy trên mạng cục bộ của bạn) có thể truy cập tất cả các cổng, bạn có thể sử dụng lệnh:

sudo ufw allow from 206.207.208.209

Trên hết, bạn cũng có thể cho phép một địa chỉ IP cụ thể đến một cổng cụ thể! Giả sử bạn muốn cho phép một địa chỉ IP cụ thể sử dụng cổng MySQL (MySQL sử dụng cổng 3306), sau đó bạn chỉ cần sử dụng lệnh này:

sudo ufw allow from 206.207.208.209 to any port 3306

Bước 9: Từ chối kết nối

Như đã đề cập trước đó trong Bước 3 , chính sách mặc định cho các kết nối đến được đặt thành ‘từ chối’. Tuy nhiên, đôi khi bạn có thể cần từ chối các kết nối cụ thể dựa trên địa chỉ IP nguồn hoặc cổng cụ thể.

Quy tắc từ chối rất hữu ích nếu bạn có một cuộc tấn công vào máy chủ của mình từ một địa chỉ IP cụ thể và các cổng 80 và 443 của bạn đang mở. Trong trường hợp này, bạn có thể chặn địa chỉ IP đó bằng ví dụ sau. Tất nhiên, đừng quên thay đổi địa chỉ IP 24.25.26.27 với địa chỉ IP thực tế mà bạn muốn chặn:

sudo ufw deny from 24.25.26.27

Điều này sẽ chặn địa chỉ IP truy cập tất cả các cổng mở của bạn. Tuy nhiên, nếu bạn muốn chặn địa chỉ IP không thể truy cập vào một cổng cụ thể, bạn có thể sử dụng ví dụ tiếp theo:

sudo ufw deny from 24.25.26.27 to any port 80
sudo ufw deny from 24.25.26.27 to any port 443

Như bạn có thể nhận thấy, việc tạo các quy tắc từ chối tương tự như các quy tắc cho phép.

Bước 10: Xóa các quy tắc UFW

Tầm quan trọng của việc xóa các quy tắc UFW cũng quan trọng như việc tạo chúng. Có hai cách khác nhau để loại bỏ quy tắc UFW. Phương pháp đầu tiên là bằng cách sử dụng số quy tắc và phương pháp thứ hai là bằng cách chỉ định quy tắc thực tế.

Nếu bạn muốn xóa quy tắc UFW bằng số, bạn sẽ cần biết số của quy tắc. Để liệt kê các số quy tắc, bạn có thể sử dụng lệnh:

sudo ufw status numbered
Output:

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 80                         ALLOW IN    Anywhere
[ 2] 443                        ALLOW IN    Anywhere
[ 3] 22                         ALLOW IN    Anywhere
[ 4] Anywhere                   ALLOW IN    206.207.208.209
[ 5] 7022                       ALLOW IN    Anywhere
[ 6] 8069                       ALLOW IN    Anywhere
...

Để xóa quy tắc được gắn nhãn là quy tắc số 4, cho phép kết nối từ địa chỉ IP 206.207.208.209, bạn có thể sử dụng lệnh:

sudo ufw delete 4

Nếu bạn muốn sử dụng phương thức thứ hai, đó là loại bỏ một quy tắc bằng cách chỉ định quy tắc thực tế. Giả sử bạn muốn đóng cổng 8069 chẳng hạn – trong trường hợp đó bạn sẽ sử dụng lệnh sau:

sudo ufw delete allow 8069

Bước 11: Vô hiệu hóa hoặc Đặt lại UFW

Nếu vì bất kỳ lý do nào bạn cần dừng tất cả các quy tắc UFW trên máy chủ của mình, bạn có thể vô hiệu hóa nó bằng cách sử dụng lệnh:

sudo ufw disable

Điều này sẽ dừng tất cả các quy tắc hiện đang hoạt động trên máy chủ của bạn. Tuy nhiên, nếu bạn cần kích hoạt lại các quy tắc tường lửa, bạn chỉ cần kích hoạt lại.

sudo ufw enable

Nếu vì lý do nào đó bạn muốn xóa tất cả các quy tắc và bắt đầu với một UFW mới, thì bạn có thể sử dụng lệnh sau:

sudo ufw reset

Xin lưu ý rằng các chính sách mặc định sẽ không thay đổi thành cài đặt gốc nếu chúng đã được sửa đổi.

Trong bài viết này, chúng tôi đã chỉ cho bạn cách cài đặt UFW và sau đó sử dụng nó để định cấu hình tường lửa trên Ubuntu 18.04. Bây giờ bạn có thể sử dụng kiến ​​thức của hướng dẫn này để bắt đầu tạo quy tắc tường lửa UFW của riêng bạn và bảo vệ máy chủ của bạn.

Tái bút Nếu bạn thích bài đăng này về cách định cấu hình tường lửa với UFW trên Ubuntu 18.04, vui lòng chia sẻ nó với bạn bè của bạn trên các mạng xã hội bằng các nút chia sẻ bên dưới hoặc chỉ cần để lại nhận xét trong phần bình luận. Cảm ơn.

Leave a Reply

Your email address will not be published. Required fields are marked *