...

Que vaut la fonction ifModule mod_geoip.c ? in Htaccess ?

Démarré par 3000fr, 26 Août 2018 à 23:30:51

« précédent - suivant »

3000fr

Bonjour,

J'aimerais interdire un pays de visiter un site .. en l'occurrence, l'Allemagne

Le htaccess est actuellement comme ceci:


Code
Options -Indexes
SetEnvIf Request_URI ".*" object_is_image=gif
RewriteEngine on
RewriteCond $1 !^(index\.php|crossdomain\.xml|webana|standalone|favicon|standalone|BingSiteAuth\.xml|cgi\-bin|robots\.txt|download|medias|forum|sitemap.xml|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]
<Limit GET POST>
order allow,deny
deny from 88.198.57.242
deny from 95.213.195.61
deny from 193.70.64.129
deny from 129.193.70.64
deny from 149.202.17.13
allow from all
</Limit>

Le moduleifModule mod_geoip.c  fonctionne t'il partout ... ? Est-ce que cette solution fonctionne ?

Si oui, je l'insert comment ... Après </Limit> ?

Code

<ifModule mod_geoip.c>
GeoIPEnable On
# Interdire un pays
SetEnvIf GEOIP_COUNTRY_CODE DE DenyCountry
Allow from all
Deny from env=DenyCountry
</ifModule>


Merci de vos lumières :)

3000fr

Bonjour,

Arf, j'ai pas pu éditer ... bon pas grave ... j'ai trouvé un truc:

Je vais tenter cette ligne ...

deny from .de

Je vais tester :)   

Goupilop

#2
Bonjour,

Technique GEOIP_COUNTRY_CODE (htaccess)

Essaye de placer dans le Htaccess:

SetEnvIf GEOIP_COUNTRY_CODE DE BlockCountry
Deny from env=BlockCountry

--------------------
Ce code bloque les accès de l'Allemagne (DE)
Pour la Russie tu ajoute à la suite de l'allemagne DE la ligne suivante:
--------------------
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
--------------------
Ainsi de suite...
Windows 11 Pro x64 - Windows 10 Pro x64 - Linux Debian12 - Emmabuntüs ED5 x64

Goupilop

En clair, blocage par le fichier htaccess de l'Allemagne et de la Russie

Code
SetEnvIf GEOIP_COUNTRY_CODE DE BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
# etc etc...
Deny from env=BlockCountry

Windows 11 Pro x64 - Windows 10 Pro x64 - Linux Debian12 - Emmabuntüs ED5 x64

3000fr

Bonjour,

ok, merci ....  euh ... je mets ou dans mon htaccess ?  à la suite ?

Options -Indexes
SetEnvIf Request_URI ".*" object_is_image=gif
RewriteEngine on
RewriteCond $1 !^(index\.php|crossdomain\.xml|webana|standalone|favicon|standalone|BingSiteAuth\.xml|cgi\-bin|robots\.txt|download|medias|forum|sitemap.xml|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]
<Limit GET POST>
order allow,deny
deny from 88.198.57.242
deny from 95.213.195.61
deny from 193.70.64.129
deny from 129.193.70.64
deny from 149.202.17.13
allow from all
</Limit>

 Et le : deny from .de fonctionne idem ? ou pas ?

Merci :)

Goupilop

#5
Bonjour,

A propos de <Limit GET POST> comportant une faille

https://www.firediy.fr/article/bypass-htaccess-contourner-un-acces-web-securise
https://openclassrooms.com/fr/courses/1093276-le-htaccess-et-ses-fonctionnalites

etc...

Essaye ceci (blocage Allemagne + Russie):

SetEnvIf GEOIP_COUNTRY_CODE DE BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
# etc etc...
Deny from env=BlockCountry
# Blocage IP
order allow,deny
deny from 88.198.57.242
deny from 95.213.195.61
deny from 193.70.64.129
deny from 129.193.70.64
deny from 149.202.17.13
allow from all

Le fait de bloquer les pays évite en général de faire IP par IP

Liste code pays: https://en.wikipedia.org/wiki/ISO_3166-1




Windows 11 Pro x64 - Windows 10 Pro x64 - Linux Debian12 - Emmabuntüs ED5 x64

3000fr

Bonjour,

ok, merci pour les infos ... donc je peux supprimer sans autres  ?<Limit GET POST>

Je te mets donc le futur htacces --- est-il correct ?  Que je ne fasse pas d'âneries




Options -Indexes
SetEnvIf Request_URI ".*" object_is_image=gif
RewriteEngine on
RewriteCond $1 !^(index\.php|crossdomain\.xml|webana|standalone|favicon|standalone|BingSiteAuth\.xml|cgi\-bin|robots\.txt|download|medias|forum|sitemap.xml|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]

SetEnvIf GEOIP_COUNTRY_CODE DE BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry

Deny from env=BlockCountry

order allow,deny
deny from 88.198.57.242
deny from 95.213.195.61
deny from 193.70.64.129
deny from 129.193.70.64
deny from 149.202.17.13
allow from all



En principe, j'utilisais le site https://www.countryipblocks.net/country_selection.php


Pour bannir par pays (On pouvais avoir direct les ip par pays pour Htaccess) mais site OFF ...

Merci de l'aide :)

Goupilop

#7
Citation de: 3000fr le 28 Août 2018 à 16:55:23Bonjour,

ok, merci pour les infos ... donc je peux supprimer sans autres  ?<Limit GET POST> # C'est préférable d'après les infos

Je te mets donc le futur htacces --- est-il correct ?  Que je ne fasse pas d'âneries # Cela semble correct ci-dessous

Options -Indexes
SetEnvIf Request_URI ".*" object_is_image=gif
RewriteEngine on
RewriteCond $1 !^(index\.php|crossdomain\.xml|webana|standalone|favicon|standalone|BingSiteAuth\.xml|cgi\-bin|robots\.txt|download|medias|forum|sitemap.xml|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]
# Blocage provenance pays
SetEnvIf GEOIP_COUNTRY_CODE DE BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
# etc etc...
Deny from env=BlockCountry
# Blocage IP
order allow,deny
deny from 88.198.57.242
deny from 95.213.195.61
deny from 193.70.64.129
deny from 129.193.70.64
deny from 149.202.17.13
# etc etc...
allow from all



En principe, j'utilisais le site https://www.countryipblocks.net/country_selection.php


Pour bannir par pays (On pouvais avoir direct les ip par pays pour Htaccess) mais site OFF ...

Merci de l'aide :)
Cela ne gène pas de placer les # pour rappel des commandes, ceux-ci sont ignorer de toute façon
Faire un essai pour contrôler le blocage
Windows 11 Pro x64 - Windows 10 Pro x64 - Linux Debian12 - Emmabuntüs ED5 x64

3000fr

#8
Bonjour,

Ok, super, merci ...

oui les #  pas de soucis :)

Je teste 1 semaine, car le/la propriétaire du site est ennuyé avec des gens  de l'Allemagne ...

On (elle a Banni) via le site les ip des perturbateurs ... Mais comme ils ne sont certainement pas fixes ... vaut mieux bannir le pays ...

Surtout que la propriétaire n'a en principe aucun membre de ce pays :)
Je lui ai donné mon ancien site et l'aide pour les protections dans la mesure de mes connaissances
Idem pour le forum k13 ... elle l'utilise :)  https://www.tantra-k13.com

Je reviens dans 1 semaine ou 2 pour donner les résultats :)

Merci pour tout ... Bonne soirée ... (Ici que début d'après-midi) :)

Goupilop

#9
Par principe de localisation IP, les serveurs donne l'adresse du pays de connexion exemple de mon IP et pays associé ci-dessous



Soit le code 2 lettres soit le code 3 lettres

Il faut tenir compte des VPN qui contourne les pays d'origine également...bref parfois il faut passer par un htaccess restrictif
Windows 11 Pro x64 - Windows 10 Pro x64 - Linux Debian12 - Emmabuntüs ED5 x64

3000fr

Bonjour,

Pour faire un test, j'ai voulu bloquer mon IP .. eh bien , rien ne ce passe ...
Je viens de bloquer aussi la France ... Pour voir ... Mais mon IP est bien de MQ
Le module geoip est bien activé .. dans php

Je laisse FR 24h, pour des tests (toutes façon, aucun français dans ce site)

Pour tests: https://www.tantra-k13.com

Mon htaccess à ce moment:

Options -Indexes

SetEnvIf Request_URI ".*" object_is_image=gif

RewriteEngine on
RewriteCond $1 !^(index\.php|crossdomain\.xml|webana|standalone|favicon|standalone|BingSiteAuth\.xml|cgi\-bin|robots\.txt|download|medias|forum|sitemap.xml|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]

# Blocage provenance pays
SetEnvIf GEOIP_COUNTRY_CODE DE BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE FR BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE MTQ BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE MQ BlockCountry
Deny from env=BlockCountry

# Blocage IP
order allow,deny
deny from 88.198.57.242
deny from 95.213.195.61
deny from 193.70.64.129
deny from 129.193.70.64
deny from 149.202.17.13
allow from all

BOn, tant que https://www.countryipblocks.net/country_selection.php  est en panne, je n'arrive pas à récupérer les ip de pays automatiquement...

Genre
deny from 27.8.0.0/13
deny from 27.16.0.0/12
deny from 27.34.232.0/21  

Voilà... je cherche comment réeussir :)  merci si tu as d'autres idées ?

Goupilop

#11
Bonjour,

Il faut être certain que GEOIP est activé sur le serveur du prestataire pour cela le mieux étant de le contacter
Regarde ici:

http://www.impact-im.com/threads/geoip-htaccess.764/

Le test 4 te permet de connaitre à partir du script l'état de ce dernier (actif ou non)

Je réalise le test sur un de mes sites à l'aide du script ci-dessous:
-------------------------
<?php
echo "Test Geo Ip <br><br>";
echo "IP: ".$_SERVER['REMOTE_ADDR']."<br>";
//Afficher l'adresse ip du visiteur

echo "GEOIP_AREA_CODE: ".$_SERVER['GEOIP_AREA_CODE']."<br>";
echo "GEOIP_CITY: ".$_SERVER['GEOIP_CITY']."<br>";
//Affiche La ville du visiteur

echo "GEOIP_COUNTRY_CODE: ".$_SERVER['GEOIP_COUNTRY_CODE']."<br>";
//Affiche le code pays du visiteur (fr,en,be par exemple)

echo "GEOIP_COUNTRY_NAME: ".$_SERVER['GEOIP_COUNTRY_NAME']."<br>";
//Affiche le pays du visiteur

echo "GEOIP_DMA_CODE: ".$_SERVER['GEOIP_DMA_CODE']."<br>";
echo "GEOIP_LATITUDE: ".$_SERVER['GEOIP_LATITUDE']."<br>";
//Affiche la latitude

echo "GEOIP_LONGITUDE: ".$_SERVER['GEOIP_LONGITUDE']."<br>";
//Affiche la longtitude

echo "GEOIP_REGION: ".$_SERVER['GEOIP_REGION']."<br>";
?>
-------------------
La réponse est:

Test Geo Ip

IP: 92.153.xx.xx
GEOIP_AREA_CODE:
GEOIP_CITY:
GEOIP_COUNTRY_CODE:
GEOIP_COUNTRY_NAME:
GEOIP_DMA_CODE:
GEOIP_LATITUDE:
GEOIP_LONGITUDE:
GEOIP_REGION:

Donc GEOIP n'est pas installé sur le serveur puisque les données sont absentes
Windows 11 Pro x64 - Windows 10 Pro x64 - Linux Debian12 - Emmabuntüs ED5 x64

Goupilop

Windows 11 Pro x64 - Windows 10 Pro x64 - Linux Debian12 - Emmabuntüs ED5 x64

3000fr

#13
Bonjour...

Bon je viens de tester:

Test Geo Ip

IP: 188.***.**.54

Notice: Undefined index: GEOIP_AREA_CODE in /home/*/geo.php on line 6
GEOIP_AREA_CODE:

Notice: Undefined index: GEOIP_CITY in /home/*/geo.php on line 7
GEOIP_CITY:

Notice: Undefined index: GEOIP_COUNTRY_CODE in /*/geo.php on line 10
GEOIP_COUNTRY_CODE:

Notice: Undefined index: GEOIP_COUNTRY_NAME in /*/geo.php on line 13
GEOIP_COUNTRY_NAME:

Notice: Undefined index: GEOIP_DMA_CODE in /*/geo.php on line 16
GEOIP_DMA_CODE:

Notice: Undefined index: GEOIP_LATITUDE in /*/geo.php on line 17
GEOIP_LATITUDE:

Notice: Undefined index: GEOIP_LONGITUDE in /*/geo.php on line 20
GEOIP_LONGITUDE:

Notice: Undefined index: GEOIP_REGION in /*/geo.php on line 23
GEOIP_REGION:

Et dans la config PHP, j'ai bien geoip:



Bon voilà ... à suivre :) merci

Goupilop

#14
Essaye de démarrer Geoip en modifiant le fichier htaccess

# Blocage provenance pays
GeoIPEnable On
# Put countries to deny here
SetEnvIf GEOIP_COUNTRY_CODE DE BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE FR BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE MTQ BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE MQ BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE <Country Code> DenyCountry

Allow from all  
Deny from env=BlockCountry

Sinon il faut poser la question au prestataire car ton tableau ne mentionne pas les données nécessaires au blocage:

"Remarque: Index non défini: GEOIP_COUNTRY_NAME dans /*/geo.php sur la ligne 13
GEOIP_COUNTRY_NAME:"

Soit la base n'est pas à jour soit elle n'existe pas

Pour l'installation de Geoip:

https://briansnelson.com/Install_GeoIP_for_Apache_and_PHP
Windows 11 Pro x64 - Windows 10 Pro x64 - Linux Debian12 - Emmabuntüs ED5 x64