Kuinka saada todellisen asiakkaan IP - osoite Cloudflaresta Apachessa tai PHP: ssä DevAnswers.co


esittely


Cloudflare on upea nopea ja helppo CDN- ja DDoS-suojaus, mutta yksi haittapuoli on, että Web-palvelimen näkemä IP-osoite on Clouflare-välityspalvelimen osoite, ei varsinainen asiakas.


Tämä voi olla suuri tietoturvaongelma, koska Apache-käyttö- ja virhelokit näyttävät vain Cloudflare-välityspalvelimen IP: n eikä todellisen asiakkaan. Lisäksi, jos sinulla on IP-rajoituksia, jotka on määritelty kohdassa .htaccess tai PHP-skripti, nämä eivät toimi.


Cloudflare lähettää todellisen asiakkaan IP: n CF-Connecting-IP HTTP-otsikossa, ja voimme välittää tämän PHP: lle tai Apachelle käyttämällä mod_remoteip.


Huomaa: Cloudflaren oma Apache-mod mod_cloudflare on nyt tarpeeton ja lopetetaan Apachen omana mod mod_remoteip suorittaa saman toiminnon.


PHP-skripti


Voit noutaa todellisen asiakas-IP: n helposti PHP: ssä ilman erillisiä määrityksiä.


echo $_SERVER("HTTP_CF_CONNECTING_IP"); // real IP of visitor
echo $_SERVER("HTTP_CF_IPCOUNTRY"); //country of visitor

Jos teet tämän ja vierailevan IP-osoitteen pätevyys on tärkeä, saatat joutua tarkistamaan, että $_SERVER("REMOTE_ADDR") sisältää todellisen Cloudflare-välityspalvelimen IP-osoitteen, koska kuka tahansa voi väärentää otsikon, jos pystyy muodostamaan yhteyden suoraan palvelimeen. Lisätietoja on kohdassa Luotetut välityspalvelimet.


Apache


Tämä kokoonpano testattiin Ubuntu 18.04: llä, joten prosessin tulisi olla samanlainen kaikissa Debian-pohjaisissa verkkopalvelimissa.


Tämä menetelmä toimii myös virtuaalilaitteissa. Jos sinulla on useita isännöitäviä sivustoja ja jotkut eivät käytä Cloudlfarea, Apache palauttaa oletuksena takaisin etäosoitteeseen (REMOTE_ADDR).


Ota kaukosäätimen mod


Aktivoi ensin remoteip mod.


sudo a2enmod remoteip

Käynnistä Apache uudelleen:


sudo systemctl restart apache2

Muokkaa kokoonpanoa ja määritä luotetut välityspalvelimet


Jotta voimme välittää todellisen asiakkaan IP-osoitteen Cloudflarestta Apachelle, meidän on määritettävä RemoteIPHeader direktiivin as CF-Connecting-IP että remoteip kokoonpanotiedosto /etc/apache2/conf-enabled/remoteip.conf.


Luo remoteip.conf kokoonpanotiedosto:


sudo nano /etc/apache2/conf-enabled/remoteip.conf

Lisää vain RemoteIPHeader CF-Connecting-IP ensimmäisellä rivillä ja sitten luettelon luotettavista Cloudflare-välityspalvelimista sen alla (RemoteIPTrustedProxy). Koska hakkereiden on helppo huijata CF-Connecting-IP http-otsikossa meidän on varmistettava, että Apache tietää, mihin välityspalvelimiin voit luottaa. Seuraavaksi sisällyttämäni välityspalvelimet ovat oikein kesäkuusta 2019. Cloudflare pitää päivitetyn luettelon näistä välityspalvelimista täällä: Cloudflare IPv4-välityspalvelimet ja Cloudflare IPv6-välityspalvelimet.


/etc/apache2/conf-enabled/remoteip.conf


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/12
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

Tallenna ja poistu (paina CTRL + X, Lehdistö Y ja paina sitten ENTER)


Jos Apache ei tunnista CF-Connecting-IP HTTP-otsikossa (esim. jos Cloudflare on kytketty pois päältä tai sitä ei ole määritetty tietylle virtuaalipalvelimelle), se putoaa takaisin etäosoitteeseen (REMOTE_ADDR).


Jos Apache havaitsee CF-Connecting-IP mutta se tulee IP: ltä, jota ei ole määritelty RemoteIPTrustedProxy (esimerkiksi hakkeri, joka yrittää huijata otsikot), Apache palaa takaisin etäosoitteeseen (REMOTE_ADDR).


Apache-käyttö- ja virhelokit


Jotta oikean asiakkaan IP (CF-Connecting-IP) näkyä access.log ja error.log, meidän on tehtävä pieni muutos kohtaan apache2.conf.


Muokata apache2.conf:


sudo nano /etc/apache2/apache2.conf

Lehdistö CTRL + W ja etsiä LogFormat.


Oletuslokin muodon tulisi näyttää samanlaiselta kuin alla:


/etc/apache2/apache2.conf


LogFormat "%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combined
LogFormat "%h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

%h Punaisella muuttujalla on tässä Remote IP. Meidän täytyy vain muuttaa tämä %a, joka on mod_remoteip moduuli.


/etc/apache2/apache2.conf


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

Tallenna ja poistu (paina CTRL + X, Lehdistö Y ja paina sitten ENTER)


Käynnistä Apache uudelleen:


sudo systemctl restart apache2

Tarkastella käyttölokea nähdäksesi, onko se nyt raportoimassa CF-Connecting-IP:


sudo tail /var/log/apache2/access.log -n 200

Varmista, että Cloudlfare Proxy IP ei näy käyttölogissa, vaan sen sijaan oman asiakkaasi IP.


Jos Apache ei tunnista CF-Connecting-IP HTTP-otsikossa (esimerkiksi jos Cloudflare on kytketty pois päältä tai sitä ei ole määritetty tietylle virtuaalipalvelimelle), loki palaa takaisin etäosoitteeseen (REMOTE_ADDR).


Jos Apache havaitsee CF-Connecting-IP mutta se tulee IP: ltä, jota ei ole määritelty RemoteIPTrustedProxy (esimerkiksi hakkeri, joka yrittää huijata otsikot), loki putoaa takaisin etäosoitteeseen (REMOTE_ADDR).



Kerro minulle kommenteissa, jos tämä auttoi. Seuraa minua Viserrys, Facebook ja YouTube.




loppusanat Kasvatin AdSense-tulojani 68% AI: n avulla. Lue Ezoic-arvioni saadaksesi selville miten.











0 Comments

seo marketing wordpress seo seo hosting seo and marketing word press seo wordpress and seo wordpress marketing hosting seo seo press pro market seo seo & marketing seo e marketing e marketing seo seo pro wordpress marketing & seo seo di wordpress wordpress seo host hosting and seo wordpress hosting seo wordpress seo wordpress wordpress for marketing seo press wordpress marketing for seo
×