Nginx allow Cloudflare IP Only

Tác giả: 01/03/2024

Chúng ta sử dụng Cloudflare nhằm tránh được các rủi ro về bảo mật và cải thiện tốc độ truy cập web từ quốc tế,ở bài viết này mình sẽ  hướng dẫn sử dụng Nginx allow Cloudflare IP chỉ cho phép các request đến docroot website với IP cloudflare, ngoài ra thì deny.

Giả định rằng trang web của bạn đã được định cấu hình để hoạt động với các dịch vụ Cloudflare.

Tạo tập lệnh sẽ cập nhật thông tin về địa chỉ IP Cloudflare, cũng như cập nhật cấu hình trong NGINX.

vi /root/cloudflare-ips.sh

Thêm vào:

#!/bin/bash

# GET Cloudflare IPs
curl https://www.cloudflare.com/ips-v4 > /etc/nginx/extras/ips-v4

# add "allow" to start and ";" to end of lines
sed 's/.*/allow &;/' /etc/nginx/extras/ips-v4 >> /tmp/cf-ips
mv -f /tmp/cf-ips /etc/nginx/extras/cf-ips

# test nginx conf
nginx -t

if [[ $? == 0 ]]; then
echo "Reload nginx configuration..."
systemctl reload nginx.service
else
echo "Cannot reload nginx because test conf failed..."
fi

Thêm accesslist trên vào vị trí mong muốn trong nginx:

include /etc/nginx/extras/cf-ips; 

deny all;

Hẹn gặp lại các bạn tại các bài viết sau tại wiki.nhanhoa.com