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!
Các tin liên quan