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