Khi bạn ngồi sau Cloudflare, bạn nên chỉ cho phép lưu lượng truy cập từ các dải địa chỉ IP của Cloudflare qua các cổng 80 và 443. Cloudflare cập nhật các dải địa chỉ này theo định kỳ, do đó các quy tắc UFW cần được tự động làm mới. Tập lệnh từ Cloudflare-UFW, của Paul Reed, chính xác là như vậy.
1. Tải xuống và thiết lập quyền thực thi cho tập lệnh
bashsudo wget -O /usr/local/bin/cloudflare-ufw.sh \
https://raw.githubusercontent.com/Paul-Reed/cloudflare-ufw/refs/heads/master/cloudflare-ufw.sh
sudo chmod +x /usr/local/bin/cloudflare-ufw.sh
2. Kiểm tra các quy định hiện hành của UFW (trước khi có sự thay đổi)
bashsudo ufw status verbose
Bạn có thể sẽ thấy nội dung như sau:
textHành động Từ
-- ------ ----
22/tcp CHO PHÉP Từ mọi nơi
80/tcp CHO PHÉP Từ mọi nơi
443 CHO PHÉP Từ mọi nơi
...
3. Loại bỏ các quy tắc 80/443 quá thoáng
Hiện tại, các quy định này cho phép bất kỳ Địa chỉ IP để truy cập các cổng web của bạn. Chúng tôi sẽ thay thế chúng bằng các quy tắc chỉ áp dụng cho Cloudflare.
bashsudo ufw delete allow 80/tcp
sudo ufw delete allow 443/tcp
Nếu UFW yêu cầu xác nhận, hãy nhập y và nhấn phím Enter.
Kiểm tra lại trạng thái:
bashsudo ufw status verbose
Bạn sẽ không còn thấy 80/TCP hoặc 443 cùng với CHO PHÉP từ Bất cứ đâu.
4. Chạy tập lệnh Cloudflare‑UFW
bashsudo /usr/local/bin/cloudflare-ufw.sh
Chức năng của tập lệnh:
- Lấy các dải địa chỉ IPv4 và IPv6 mới nhất của Cloudflare từ
https://www.cloudflare.com/ips-v4Và.../IPv6. - Xóa tất cả các quy tắc UFW hiện có cho các cổng 80 và 443 cho phép
Bất cứ đâu. - Thêm mới
CHO PHÉPquy tắc chỉ đối với mỗi dải địa chỉ IP Cloudflare trên cổng 80 (HTTP) và 443 (HTTPS). - Tùy chọn: Tải lại UFW để các quy tắc mới có hiệu lực ngay lập tức.
Sau khi hoàn tất, hãy kiểm tra:
bashsudo ufw status verbose
Bây giờ bạn sẽ thấy nhiều dòng như sau:
textNgười gửi Người nhận
-- ------ ----
80/tcp CHO PHÉP 173.245.48.0/20
80/tcp CHO PHÉP 103.21.244.0/22
...
443 CHO PHÉP 173.245.48.0/20
443 CHO PHÉP 103.21.244.0/22
...
Tất cả các địa chỉ IP khác đều bị từ chối truy cập vào các cổng 80/443 theo mặc định.
5. Tự động hóa việc cập nhật hàng ngày bằng cron
Cloudflare có thể thay đổi dải địa chỉ IP của mình bất cứ lúc nào. Để đảm bảo tường lửa của bạn luôn được cập nhật, hãy lên lịch chạy tập lệnh này hàng ngày (ví dụ: lúc 03:00).
Chỉnh sửa tệp crontab gốc:
bashsudo crontab -e
Nếu được yêu cầu, hãy chọn trình soạn thảo ưa thích của bạn (ví dụ:, nano).
Thêm dòng sau vào cuối:
text0 3 * * * /usr/local/bin/cloudflare-ufw.sh >> /var/log/cloudflare-ufw.log 2>&1
Điều này sẽ:
- Chạy tập lệnh này hàng ngày vào lúc 03:00 theo giờ máy chủ.
- Ghi kết quả và thông báo lỗi vào
/var/log/cloudflare-ufw.logđể kiểm toán.
Lưu và thoát khỏi trình soạn thảo.
6. Kiểm tra tác vụ cron
Hiển thị danh sách crontab của người dùng root để xác nhận:
bashsudo crontab -l
Bạn sẽ thấy dòng mới.
Nếu muốn, bạn có thể buộc hệ thống chạy ngay lập tức và kiểm tra nhật ký:
bashsudo /usr/local/bin/cloudflare-ufw.sh
sudo tail -n 20 /var/log/cloudflare-ufw.log
7. Bảo trì thường xuyên
Để làm mới các quy tắc theo cách thủ công bất cứ lúc nào:
bashsudo /usr/local/bin/cloudflare-ufw.sh
Để kiểm tra nhật ký:
bashsudo less /var/log/cloudflare-ufw.log
Nếu bạn cần khôi phục lại chế độ “cho phép ở mọi nơi” (không được khuyến nghị trong môi trường sản xuất):
bashsudo ufw delete allow from any to any port 80 proto tcp sudo ufw delete allow from any to any port 443 proto tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp
Với cấu hình này, tường lửa UFW của bạn sẽ chỉ chấp nhận lưu lượng HTTP/HTTPS từ các dải IP hiện tại của Cloudflare, giúp giảm đáng kể diện tích tấn công đồng thời đảm bảo các trang web của bạn vẫn có thể truy cập được qua Cloudflare.
Để lại một bình luận