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

Cơ bản về UFW: Các quy tắc và lệnh firewall chung

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 tham chiếu nhanh đến các lệnh UFW sẽ tạo ra các luật firewall iptables rất hữu ích trong các tình huống thông thường hàng ngày. Điều nà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, network interface và địa chỉ IP nguồn.

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 của bạn , hãy xem phần giới thiệu của ta về UFW
  • Hầu hết các 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 mặc định, vì vậy bạn phải cho phép lưu lượng truy cập vào
  • Sử dụng bất kỳ phần nào tiếp theo có thể áp dụng cho những gì bạn đang cố gắng đạt được. Hầu hết các phần không được dự đoán trên bất kỳ phần nào khác, vì vậy bạn có thể sử dụng các ví dụ bên dưới một cách độc lập
  • Sử dụng menu Nội dung ở phía bên phải của trang này (ở độ rộng trang rộng) hoặc chức năng tìm kiếm của trình duyệt của bạn để 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 UFW hiện tại của bạn với 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 bạn muốn, một mạng con, chẳng hạn như 15.15.15.0/24 , có thể được chỉ định ở đây. Đị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 .

Chặn kết nối với network interface

Để 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 network interface 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 . Network interface 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

Nếu bạn đang sử dụng server cloud , có thể 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 của bạn . 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 để truyền file từ máy tính này sang máy tính 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 của bạn, hãy chạy lệnh này:

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

Dịch vụ: Server Web

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. Nếu policy mặc định của bạn cho lưu lượng truy cập được đặt thành giảm hoặc từ chối, bạn cần tạo các luật cho phép server của bạn phản hồi các yêu cầu đó.

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

Một 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

Một 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 duy nhấ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. Nếu server database MySQL của bạn đang được client sử dụng trên server từ xa, bạn cần đảm bảo cho phép lưu lượng đó.

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 network interface cụ thể

Để cho phép các kết nối MySQL với một network interface cụ thể — ví dụ: giả sử bạn có network interface 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. Nếu server database PostgreSQL của bạn đang được client sử dụng trên server từ xa, bạn cần đảm bảo cho phép lưu lượng đó.

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

Lệnh thứ hai, cho phép lưu lượng đi của các kết nối PostgreSQL đã cài đặt , chỉ cần thiết nếu policy OUTPUT không được đặt thành ACCEPT .

Cho phép PostgreSQL với network interface cụ thể

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

  • sudo ufw allow in on eth1 to any port 5432

Lệnh thứ hai, cho phép lưu lượng đi của các kết nối PostgreSQL đã cài đặt , chỉ cần thiết nếu policy OUTPUT không được đặt thành ACCEPT .

Dịch vụ: Thư

Server thư, chẳng hạn như Sendmail và Postfix, lắng nghe trên 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 server thư, 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 của bạn không được gửi thư đi, bạn có thể cần chặn loại lưu lượng đó. Để chặn thư 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 của bạn 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 thư đi.

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

Để cho phép server của bạn 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 của bạn 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 của bạn 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 của bạn 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

Điều đó sẽ bao gồm nhiều 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ái trộn và kế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úng không được đề cập ở đây.

Chúc may mắn!


Tags:

Các tin trước