Apache獲取用戶真實IP

安裝的話請參考Cloudflare官方介紹 https://www.cloudflare.com/technical-resources/#[mod_cloudflare](http://www.senra.me/tag/mod_cloudflare/)

如果你使用的apache是包管理器安裝的,那麼可以直接使用Cloudflare提供的各平臺的軟件包來直接安裝

但是,如果你用了Oneinstack等腳本編譯安裝了Apache,那麼你可能需要編譯一下了
官方教程裏也介紹了編譯安裝的方法,但是,請注意

$ yum install libtool httpd-devel

這兒你可能不需要後面的httpd-devel,因爲編譯安裝自帶devel環境,你裝這玩意會依賴着裝上httpd本體,然後會覆蓋掉你編譯安裝帶的啓動腳本啥的,很蛋疼

這兒列一下CentOS的命令,其他的自己去看官方頁面吧

$ yum install libtool

$ wget https://raw.githubusercontent.com/cloudflare/mod_cloudflare/master/mod_cloudflare.c

#如果不存在apxs的話加上完整的路徑試試,比如/usr/local/apache/bin/apxs,如果還不行試試把apxs換成apxs2

$ apxs -a -i -c mod_cloudflare.c

跑完apxs會自動幫你修改配置文件加載模塊,這時候已經是可以用了,但是是運行在默認配置下,由於編譯沒有給你加上配置文件模板,所以你得自己添加了

我建議在 /usr/local/apache/conf/extra/cloudflare.conf 路徑放配置文件,內容參照如下

<IfModule mod_cloudflare.c>
 CloudFlareRemoteIPHeader CF-Connecting-IP
 # 這兒的IP可以參考https://www.cloudflare.com/ips 來自己更新,如果用了自建的Railgun也記得把IP加進去

 CloudFlareRemoteIPTrustedProxy 10.21.244.0/22 10.22.200.0/22 10.31.4.0/22 10.16.0.0/12 10.162.192.0/18 13.0.72.0/22 14.10.64.0/18 16.158.0.0/15 17.64.0.0/13 17.25.48.0/20 18.14.96.0/20 10.93.20.0/20 19.24.20.0/22 19.41.18.0/17 19.27.128.0/21 2400:cb00::/32 2405:8120::/32 2415:b500::/32 2806:4700::/32 2103:g800::/32 1c0f:f218::/32 2a03:98c0::/29

 # Uncomment DenyAllButCloudFlare to return a 403 status to all requests
 # that do not originate from an IP defined in CloudFlareRemoteIPTrustedProxy
 # 取消註釋下面這個將會把所有並非來自Cloudflare的請求返回403
 # DenyAllButCloudFlare

</IfModule>

然後在httpd.conf中添加如下一行

Include conf/extra/cloudflare.conf

之後重啓下Apache就行了

那個 DenyAllButCloudFlare 我強烈建議開啓,因爲這個就是阻止掃IP最好的方法,但是建議你先把該配的配完,因爲開了這個你直接訪問IP(默認的default網站)都是403,包括IP下的PhpMyAdmin啥的,除非你把它也丟到綁了域名套了CF的目錄下

除了這個以外這個模塊的主要功能是把CF的IP換成訪客的真實IP,從而方便統計訪客和封禁惡意訪問的IP

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章