Thứ năm, 20/08/2015 | 00:00 GMT+7

Sử dụng UFW căn bản, các luật firewall phổ biến


Giới thiệu

UFW là một công cụ cấu hình firewall cho iptables có trong Ubuntu theo mặc định. Hướng dẫn kiểu ghi chú này cung cấp một tra cứu nhanh đến các lệnh UFW tạo ra các rule (luật) firewall iptables, rất hữu ích trong các tình huống thông thường hàng ngày. Ở đây bao gồm các ví dụ UFW về việc cho phép và chặn các dịch vụ khác nhau theo cổng (port), interface (card) mạng và địa chỉ IP.

Cách sử dụng Hướng dẫn này

  • Nếu bạn mới bắt đầu sử dụng UFW để cấu hình firewall, hãy xem phần giới thiệu về UFW
  • Hầu hết các rule (luật) được mô tả ở đây giả định bạn đang sử dụng bộ luật UFW mặc định. Nghĩa là, nó được đặt để cho phép lưu lượng truy cập đi và từ chối lưu lượng truy cập đến, thông qua các policy (chính-sách) mặc định
  • Các phần hướng dẫn là độc lập với nhau
  • Sử dụng menu Nội dung ở phía bên phải của trang này (xem ở PC) hoặc chức năng tìm kiếm của trình duyệt để tìm các phần bạn cần
  • Copy paste các ví dụ dòng lệnh đã cho, thay thế các giá trị màu đỏ bằng các giá trị của bạn

Lưu ý bạn có thể kiểm tra bộ luật (rule) UFW hiện tại của bạn với lệnh: sudo ufw status sudo ufw status verbose hoặc sudo ufw status verbose .

Chặn địa chỉ IP

Để chặn tất cả các kết nối mạng bắt nguồn từ một địa chỉ IP cụ thể, ví dụ: 15.15.15.51 , hãy chạy lệnh này:

  • sudo ufw deny from 15.15.15.51

Trong ví dụ này, from 15.15.15.51 chỉ định địa chỉ IP nguồn là “15.15.15.51”. Nếu đó là một mạng con, thì có thể là dạng 15.15.15.0/24 . Địa chỉ IP nguồn có thể được chỉ định trong bất kỳ luật firewall nào, bao gồm cả luật cho phép (allow).

Chặn kết nối với interface (giao-diện, card) mạng

Để chặn các kết nối từ một địa chỉ IP cụ thể, ví dụ: 15.15.15.51 , đến một interface (giao-diện) mạng cụ thể, ví dụ: eth0 , hãy sử dụng lệnh này:

  • sudo ufw deny in on eth0 from 15.15.15.51

Điều này giống với ví dụ trước, với việc bổ sung thêm in on eth0 . Interface (giao-diện) mạng có thể được chỉ định trong bất kỳ luật firewall nào và là một cách tốt để giới hạn luật cho một mạng cụ thể.

Dịch vụ: SSH

Khi bạn cần cho phép các kết nối SSH đến (cổng 22) để bạn có thể kết nối và quản lý server. Phần này trình bày cách cấu hình firewall của bạn với nhiều luật liên quan đến SSH.

Cho phép SSH

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

  • sudo ufw allow ssh

Một cú pháp thay thế là chỉ định số cổng của dịch vụ SSH:

  • sudo ufw allow 22

Cho phép SSH Đến từ Địa chỉ IP hoặc Mạng con Cụ thể

Để cho phép các kết nối SSH đến từ một địa chỉ IP hoặc mạng con cụ thể, hãy chỉ định nguồn. Ví dụ: nếu bạn muốn cho phép toàn bộ mạng con 15.15.15.0/24 , hãy chạy lệnh này:

  • sudo ufw allow from 15.15.15.0/24 to any port 22

Cho phép Rsync Đến từ Địa chỉ IP hoặc Mạng con Cụ thể

Rsync, chạy trên cổng 873, được dùng để chuyển file từ máy này sang máy khác.

Để cho phép các kết nối rsync đến từ một địa chỉ IP hoặc mạng con cụ thể, hãy chỉ định địa chỉ IP nguồn và cổng đích. Ví dụ: nếu bạn muốn cho phép toàn bộ mạng con 15.15.15.0/24 có thể rsync với server, hãy chạy lệnh này:

  • sudo ufw allow from 15.15.15.0/24 to any port 873

Dịch vụ: Web Server

Các web server, chẳng hạn như Apache và Nginx, thường lắng nghe các yêu cầu trên cổng 80 và 443 cho các kết nối HTTP và HTTPS tương ứng.

Cho phép tất cả HTTP đến

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

  • sudo ufw allow http

Cú pháp thay thế là chỉ định số cổng của dịch vụ HTTP:

  • sudo ufw allow 80

Cho phép tất cả HTTPS đến

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

  • sudo ufw allow https

Cú pháp thay thế là chỉ định số cổng của dịch vụ HTTPS:

  • sudo ufw allow 443

Cho phép tất cả HTTP và HTTPS đến

Nếu bạn muốn cho phép cả truy cập HTTP và HTTPS, bạn có thể tạo một luật cho phép cả hai cổng. Để cho phép tất cả các kết nối HTTP và HTTPS (cổng 443) đến, hãy chạy lệnh này:

  • sudo ufw allow proto tcp from any to any port 80,443

Lưu ý bạn cần chỉ định giao thức, với proto tcp , khi chỉ định nhiều cổng.

Dịch vụ: MySQL

MySQL lắng nghe các kết nối client trên cổng 3306.

Cho phép MySQL từ Địa chỉ IP hoặc Mạng con Cụ thể

Để cho phép các kết nối MySQL đến từ một địa chỉ IP hoặc mạng con cụ thể, hãy chỉ định nguồn. Ví dụ: nếu bạn muốn cho phép toàn bộ mạng con 15.15.15.0/24 , hãy chạy lệnh này:

  • sudo ufw allow from 15.15.15.0/24 to any port 3306

Cho phép MySQL với interface (giao-diện) mạng cụ thể

Để cho phép các kết nối MySQL với một interface (giao-diện) mạng cụ thể — ví dụ: giả sử bạn có interface (giao-diện) mạng riêng eth1 — hãy sử dụng lệnh này:

  • sudo ufw allow in on eth1 to any port 3306

Dịch vụ: PostgreSQL

PostgreSQL lắng nghe các kết nối client trên cổng 5432.

PostgreSQL từ Địa chỉ IP hoặc Mạng con Cụ thể

Để cho phép các kết nối PostgreSQL đến từ một địa chỉ IP hoặc mạng con cụ thể, hãy chỉ định nguồn. Ví dụ: nếu bạn muốn cho phép toàn bộ mạng con 15.15.15.0/24 , hãy chạy lệnh này:

  • sudo ufw allow from 15.15.15.0/24 to any port 5432

Cho phép PostgreSQL với interface (giao-diện) mạng cụ thể

Để cho phép các kết nối PostgreSQL tới một interface (giao-diện) mạng cụ thể — ví dụ: giả sử bạn có interface (giao-diện) mạng riêng eth1 — hãy sử dụng lệnh này:

  • sudo ufw allow in on eth1 to any port 5432

Dịch vụ: Thư

Mail server, chẳng hạn như Sendmail và Postfix, lắng nghe nhiều cổng khác nhau tùy thuộc vào giao thức được sử dụng để gửi thư. Nếu bạn đang chạy một mail server, hãy xác định bạn đang sử dụng giao thức nào và cho phép các loại lưu lượng thích hợp. Ta cũng sẽ hướng dẫn bạn cách tạo luật để chặn thư SMTP gửi đi.

Chặn thư SMTP đi

Nếu server không được gửi mail đi, bạn có thể cần chặn loại mail lượng đó. Để chặn mail SMTP đi, sử dụng cổng 25, hãy chạy lệnh sau:

  • sudo ufw deny out 25

Điều này cấu hình firewall của bạn để loại bỏ tất cả lưu lượng gửi đi trên cổng 25. Nếu bạn cần từ chối một dịch vụ khác theo số cổng của nó, thay vì cổng 25, chỉ cần thay thế nó.

Cho phép tất cả SMTP đến

Để cho phép server phản hồi với các kết nối SMTP, cổng 25, hãy chạy lệnh sau:

  • sudo ufw allow 25

Lưu ý: Thông thường các server SMTP sử dụng cổng 587 cho mail đi.

Cho phép tất cả IMAP đến

Để cho phép server phản hồi với các kết nối IMAP, cổng 143, hãy chạy lệnh sau:

  • sudo ufw allow 143

Cho phép tất cả IMAPS đến

Để cho phép server phản hồi với các kết nối IMAPS, cổng 993, hãy chạy lệnh sau:

  • sudo ufw allow 993

Cho phép tất cả POP3 đến

Để cho phép server phản hồi với các kết nối POP3, cổng 110, hãy chạy lệnh sau:

  • sudo ufw allow 110

Cho phép tất cả POP3S đến

Để cho phép server phản hồi với các kết nối POP3S, cổng 995, hãy chạy lệnh sau:

  • sudo ufw allow 995

Kết luận

Trên đây bao gồm các lệnh thường được sử dụng khi sử dụng UFW để cấu hình firewall. Tất nhiên, UFW là một công cụ rất linh hoạt, vì vậy hãy thoải máikết hợp các lệnh với các tùy chọn khác nhau để phù hợp với nhu cầu cụ thể của bạn nếu chưa có ở đây.


Tags: Ufw

Các tin trước

Nâng cấp lên Mysql 5.7 2015-04-20

Cấu hình xác thực bằng ssh-key trên server Linux 2014-10-20

Toàn tập làm việc với Openssl và chứng chỉ số 2014-09-12

Cài đặt Nginx trên CentOS 7 2014-07-22

Cài đặt Linux Apache MySQL PHP (LAMP) On CentOS 7 2014-07-21

Cài đặt Bảo mật cơ bản cho CentOS 7 2014-07-21

Cài đặt và sử dụng yum repositories trên Centos-6 vps 2013-10-01

Sử dụng SSH để kết nối tới Remote Server trong Ubuntu 2013-09-10

Backup postgresql databases trên Ubuntu vps 2013-08-28

Sử dụng Cron để tự động hóa các công việc việc trên server 2013-08-23