Cloudflare là một dịch vụ bảo mật trang web từ một công ty cùng tên cung cấp mạng phân phối nội dung và các dịch vụ giảm thiểu DDoS. Vì một số lý do chính đáng, bạn muốn biết Địa chỉ IP Máy khách Thực của khách truy cập của mình
Với Cloudflare giống như bất kỳ proxy nào, máy chủ web sẽ không thể biết địa chỉ IP của khách truy cập là gì. Điều này có thể mở ra một số vấn đề bảo mật vì quyền truy cập Apache và nhật ký lỗi của bạn sẽ không hiển thị đúng IP mà thay vào đó là IP của cơ sở hạ tầng Cloudflare
Cách cài đặt PHP 8 trên Ubuntu 20. 0
Vui lòng bật JavaScript
Cách cài đặt PHP 8 trên Ubuntu 20. 04 LTS và Debian 10Việc xác định giới hạn IP trong cấu hình máy chủ web của bạn cũng trở nên khó khăn,. htaccess hoặc thậm chí trong các tập lệnh PHP
Địa chỉ IP của Máy khách Thực Sử dụng CF-Connecting-IP
Để giải quyết vấn đề này, Cloudflare gửi IP máy khách thực dưới dạng CF-Connecting-IP trong tiêu đề HTTP. CF-Connecting-IP cung cấp địa chỉ IP của máy khách [khách truy cập] thực cho máy chủ web gốc. cf-connecting-ip chứa Cloudflare IP 2a06 đặc biệt. 98c0. 3600. 0. 0. 0. 0. 103 khi yêu cầu bắt nguồn từ yêu cầu phụ của Công nhân Cloudflare thay vì IP thực của khách truy cập
Điều này hoạt động tương tự như tiêu đề x-forwarded-for được sử dụng bởi các máy chủ proxy để cho biết nguồn gốc của bất kỳ máy chủ HTTP nào liên quan đến việc chuyển tiếp yêu cầu giữa người dùng và nguồn gốc
Có một số khác biệt giữa tiêu đề CF-Connecting-IP và x-forwarded-for. Với x-forwarded-for, bạn có thể thấy một hoặc nhiều bộ địa chỉ IP trong tiêu đề này trong khi CF-Connecting-IP sẽ luôn chứa một IP
Nếu Cloudflare không nhận được tiêu đề x-forwarded-for từ máy khách, nó sẽ chuyển giá trị tương tự như CF-Connecting-IP cho máy chủ web gốc
Cloudflare khuyến nghị nhật ký hoặc ứng dụng của bạn xem xét CF-Connecting-IP hoặc True-Client-IP thay vì X-Forwarded-For vì CF-Connecting-IP và True-Client-IP có định dạng nhất quán chỉ chứa một IP
Cách xử lý CF-Connecting-IP trên máy chủ gốc
Chúng tôi có thể truy xuất giá trị của CF-Connecting-IP trên máy chủ web gốc bằng cách bật mod mod_remoteip của Apache
Trước tiên, bạn cần kích hoạt remoteip trên máy chủ của mình. Trong Ubuntu/Debian cũng như các hệ thống dựa trên CentOS/RHEL chạy các lệnh sau
$ sudo a2enmod remoteip
Sau đó khởi động lại Apache
$ sudo systemctl restart apache2
Chỉnh sửa cấu hình Apache để xác định proxy đáng tin cậy
Để chuyển địa chỉ IP của máy khách thực từ Cloudflare sang Apache, chúng ta cần xác định chỉ thị RemoteIPHeader là CF-Connecting-IP trong tệp cấu hình remoteip remoteip. conf
Tạo điều khiển từ xa. conf bằng cách chạy lệnh này trong hệ thống Ubuntu/Debian Linux
$ sudo nano /etc/apache2/conf-enabled/remoteip.conf
Trên các hệ thống CentOS/RHEL Linux chạy cái này
$ sudo nano /etc/httpd/conf.d/remoteip.conf
Thêm RemoteIPHeader CF-Connecting-IP làm dòng đầu tiên và sau đó là danh sách các proxy Cloudflare đáng tin cậy bên dưới nó dưới dạng chỉ thị RemoteIPTrustedProxy
Chúng tôi thực hiện những điều trên để giảm thiểu tin tặc đang cố giả mạo CF-Connecting-IP trong tiêu đề HTTP bằng cách đảm bảo rằng Apache biết proxy nào đáng tin cậy
Bạn có thể tìm thấy danh sách cập nhật các địa chỉ IP này cho Cloudflare IPv4 Proxies và Cloudflare IPv6 Proxies tương ứng
RemoteIPHeader CF-Connecting-IP
RemoteIPTrustedProxy 173.245.48.0/20
RemoteIPTrustedProxy 103.21.244.0/22
RemoteIPTrustedProxy 103.22.200.0/22
RemoteIPTrustedProxy 103.31.4.0/22
RemoteIPTrustedProxy 141.101.64.0/18
RemoteIPTrustedProxy 108.162.192.0/18
RemoteIPTrustedProxy 190.93.240.0/20
RemoteIPTrustedProxy 188.114.96.0/20
RemoteIPTrustedProxy 197.234.240.0/22
RemoteIPTrustedProxy 198.41.128.0/17
RemoteIPTrustedProxy 162.158.0.0/15
RemoteIPTrustedProxy 104.16.0.0/13
RemoteIPTrustedProxy 104.24.0.0/14
RemoteIPTrustedProxy 172.64.0.0/13
RemoteIPTrustedProxy 131.0.72.0/22
RemoteIPTrustedProxy 2400:cb00::/32
RemoteIPTrustedProxy 2606:4700::/32
RemoteIPTrustedProxy 2803:f800::/32
RemoteIPTrustedProxy 2405:b500::/32
RemoteIPTrustedProxy 2405:8100::/32
RemoteIPTrustedProxy 2a06:98c0::/29
RemoteIPTrustedProxy 2c0f:f248::/32
Lưu và thoát rồi khởi động lại Apache
$ sudo systemctl restart apache2
Ghi chú. Nếu Apache không phát hiện CF-Connecting-IP trong tiêu đề HTTP [e. g. nếu Cloudflare bị tắt hoặc không được định cấu hình cho một Máy chủ ảo cụ thể], nó sẽ quay trở lại Địa chỉ từ xa REMOTE_ADDR
Nếu Apache phát hiện CF-Connecting-IP nhưng nó đến từ một IP không được xác định trong RemoteIPTrustedProxy, thì Apache sẽ quay trở lại REMOTE_ADDR
Xác minh Nhật ký lỗi và quyền truy cập Apache
Nếu bạn thấy rằng nhật ký truy cập và lỗi của mình đang hiển thị IP proxy Cloudflare thay vì IP người dùng từ xa thì bạn cần hoàn thành các bước này
Ghi chú. Bạn có thể xác minh bằng cách truy cập trang web của mình sau đó kiểm tra nhật ký cho IP của bạn chẳng hạn
$ sudo tail /var/log/apache2/access.log -n 20
Để khắc phục sự cố trong trường hợp không phải IP của bạn đang được ghi nhật ký, hãy chỉnh sửa apache2. conf như vậy
$ sudo nano /etc/apache2/apache2.conf
Tìm kiếm gõ CTRL + W để tìm kiếm LogFormat
Định dạng nhật ký mặc định sẽ giống như bên dưới
________số 8Thay đổi biến %h thành %a, là IP máy khách như được xác định bởi mô-đun mod_remoteip. Biến %h là IP từ xa
Các mục LogFormat của bạn bây giờ sẽ trông như thế này
LogFormat "%v:%p %a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%a %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
Lưu và thoát tệp sau đó khởi động lại Apache
$ sudo systemctl restart apache2
Truy cập lại website sau đó xem nhật ký truy cập xem hiện tại đã đăng nhập đúng IP chưa
$ sudo tail /var/log/apache2/access.log -n 20
Nhận địa chỉ IP của khách hàng thực từ bên trong PHP
Để lấy địa chỉ IP của máy khách thực trong PHP bằng cách sử dụng như sau
$ sudo systemctl restart apache2
2Chúng tôi truy xuất $_SERVER[“REMOTE_ADDR”] để xác minh rằng địa chỉ đó có chứa địa chỉ IP proxy Cloudflare thực tế đề phòng trường hợp kẻ xấu giả mạo tiêu đề CF-Connecting-IP nếu họ đã kết nối trực tiếp với máy chủ
Nhận danh sách địa chỉ IP Cloudflare từ các liên kết bên dưới
- https. //www. đám mây. com/ips-v4
- https. //www. đám mây. com/ips-v6
Giới thiệu. [ 1 ]
Tìm thấy bài viết này thú vị?