...

Quelle est la bonne syntaxe code Htaccess (Geoip)

Démarré par 3000fr, 25 Avril 2019 à 15:17:41

« précédent - suivant »

3000fr

Bonjour à tous ... me revoilà ... 
J'ai une demande pour bloquer 3 pays, toujours dans le site qui n'a plus de webmaster ...  :P 
En vert, le htaccess d'origine, en rouge, mes essais ... J'ai tenter de me bloquer, mais ne fonctionne pas MQ
VPN d'Opéra, qui passe pas la Suisse... CH ... idem, pas bloqué 

Le module GEOIP est bien activé dans le Php, en plus j'ai demandé au support Planet... Tout devrait fonctionner

Peut-être une erreur de syntaxe ... J'ai juste recopié ce code trouvé sur le net ...
Il faut peut-être l'adapter au code existant ? 
Et comme la proprio veut bloquer l'allemage, difficile par IP, 60'000 ligne et le htaccess fera 3Mb + 

Options -Indexes
SetEnvIf Request_URI ".*" object_is_image=gif
RewriteEngine on
RewriteCond $1 !^(index\.php|crxxxxxxxn\.xml|wxxxxxa|stxxxxxxe|favicon|stxxxxxxe|Bixxxxxxh\.xml|cgi\-bin|robots\.txt|dxxxxxd|mxxxs|forum|sitemap.xml|test\.html|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]

# Tentative de blocage de pays
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE DE BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE TH BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE MQ BlockCountry

Deny from env=BlockCountry


Une idée sur une modification à apporter ? ... Un script à créer qui vérifierais l'ip du visiteur ?

Trouvé sur le net, mais rien compris :P :
Code
var id = 'fr';

    id = id.toLowerCase();



Code
<script type="text/javascript" src="https://**********/ip.php"></script>
<script type="text/javascript">
var pays = new Array('th', 'mq', 'cn', 'de');
if (pays.toString().toLowerCase().indexOf(id) != -1) {
alert('Sorry, you can not access this website in your country !');
document.location.href = "http://www.google.com";
}
</script>


Voilà ... si quelqu'un à une idée ...  et sinon, eh bien bonne journée

Goupilop

J'utilise htaccess au moins c'est radical:

# blocage IP
order allow,deny

allow from all

deny from 46.
deny from 109. 
deny from 178.
deny from 134.
deny from 37.
deny from 188.
deny from 179.
deny from 177.
deny from 189.
deny from 186.
deny from 5.
deny from 159.
#

deny from 54.
Windows 11 Pro x64 - Windows 10 Pro x64 - Linux Debian12 - Emmabuntüs ED5 x64

3000fr

Hello, oui, idem ... 

J'utilise aussi deny (Syntaxe est-elle juste?)

<Limit GET POST>
order allow,deny
allow from all

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
deny from 95.130.9.44
# CHINE
deny from 223.252.164.0/22
deny from 223.252.168.0/21
deny from 223.252.177.0/24
deny from 223.252.178.0/23
deny from 223.252.180.0/22
deny from 223.252.184.0/21
deny from 223.252.192.0/18
deny from 223.254.0.0/16
deny from 223.255.0.0/17
deny from 223.255.236.0/22
deny from 223.255.252.0/23
deny from 1.0.1.0/24
deny from 1.0.2.0/23
deny from 1.0.8.0/21
deny from 1.0.32.0/19
deny from 1.1.0.0/24
deny from 1.1.2.0/23
deny from 1.1.4.0/22
deny from 1.1.8.0/21
deny from 1.1.16.0/20
deny from 221.128.122.254/32
deny from 221.128.124.0/22
deny from 222.123.0.0/16
deny from 223.24.0.0/16
deny from 223.25.192.0/19
deny from 223.27.192.0/18
deny from 223.204.0.0/14
.
.
.
80'000 lignes
</Limit>




et là, encore 60'000 / 80'000 lignes ... ce qui fait environ 3 à 4 Mo de htaccess

Je pensais juste remplacer toutes les ip, les 60'000/ 80'000 lignes pas le code ci-dessus, aussi dans htaccess ...

Soit le truc geoip, soit un script ... mais aucun ne semble fonctionner... le script n'est pas complet ...

:)

Goupilop

#3
GEOIP ? Usine à gaz sans garantie ! (j'ai laissé tomber) :o
Pourquoi 80.000 lignes ?

Pour faire simple, je te propose suivant ton fichier ci-dessous:

# CHINE
deny from 223.252.164.0/22
deny from 223.252.168.0/21
deny from 223.252.177.0/24
deny from 223.252.178.0/23
deny from 223.252.180.0/22
deny from 223.252.184.0/21
deny from 223.252.192.0/18
deny from 223.254.0.0/16
deny from 223.255.0.0/17
deny from 223.255.236.0/22
deny from 223.255.252.0/23
deny from 1.0.1.0/24
deny from 1.0.2.0/23
deny from 1.0.8.0/21
deny from 1.0.32.0/19
deny from 1.1.0.0/24
deny from 1.1.2.0/23
deny from 1.1.4.0/22
deny from 1.1.8.0/21
deny from 1.1.16.0/20
deny from 221.128.122.254/32
deny from 221.128.124.0/22
deny from 222.123.0.0/16
deny from 223.24.0.0/16
deny from 223.25.192.0/19
deny from 223.27.192.0/18
deny from 223.204.0.0/14


Ci-dessous plus réduit interdit les plages 223. & 1.:

deny from 223.
deny from 1.

(2 lignes au lieux de 27)

Etc...
Il est facile de récupérer les logs IP des pays à interdire en cherchant un peu ;)

Bref ton fichier doit ressembler à celui-ci:

deny from 88.
deny from 95.
deny from 193.
deny from 129.
deny from 149.
deny from 95.
# CHINE
deny from 223.
deny from 1.
deny from 221.
deny from 222.

Plus simple non ?
Windows 11 Pro x64 - Windows 10 Pro x64 - Linux Debian12 - Emmabuntüs ED5 x64

Goupilop

Tu peux également bannir les pays de cette sorte:

deny from .cn
deny from .kp
deny from .dz
deny from .tn
deny from .jp
deny from .hk
deny from .il
deny from .ma
deny from .ae


exemple: deny from .cn > pour Chine
etc...
Windows 11 Pro x64 - Windows 10 Pro x64 - Linux Debian12 - Emmabuntüs ED5 x64

Goupilop

#5
Ou bien:

GEOIP_COUNTRY_CODE (htaccess)
La première technique consiste à utiliser le GEOIP_COUNTRY_CODE avec le htaccess. C'est une technique qui permet de bloquer les adresses IP de tout un pays.
Prenons l'exemple ci-dessous :
SetEnvIf GEOIP_COUNTRY_CODE DE BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
Deny from env=BlockCountry



C'est une solution donné par OVH, ce code bloque les accès de l'Allemagne (DE), et de la Russie (RU).

ps: il faut que le serveur utilise Apache GeoIP.

liste des codes ici:

https://forum.joomla.fr/forum/joomla-3-x/administration/s%C3%A9curit%C3%A9/208419-marre-de-vous-faire-pirater-htaccess-ovh-mutualis%C3%A3%C2%A9-part_1

Pour connaitre les codes en fonction de l'IP

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

3000fr

Bonjour, 

Alors pour geoip, j'ai testé, ne fonctionne pas ... est-ce à cause des autres lignes que j'ai au-dessus .. aucune idée

Par contre mettre le 1er nombre de l'ip... semble pas mal ...
L'Allemagne fait 60'000 ligne, si je veux bloquer ...

Le + simple... je vais tester :
deny from .mq

et voir si fonctionne :)

Goupilop

Si ça marche, tu peux connaitre le pays en te rendant ici

https://ipstack.com/

Tu rentre l'IP et les codes s'affichent:
#

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

3000fr

Re ...

Bon, il semble que ça fonctionne ...

Mais pour moi, j'ai du bloquer .fr le mq ne bloque rien ... J'ai vu que mon ip passait par Paris ...et Europe ...

J'ai ça maintenant:


Citation de: undefinedForbidden
You don't have permission to access / on this server.
 

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
Donc, comme cela fonctionne, je n'aurait plus que 4 lignes:


Je te mets ce que je vais insérer, dit moi si c'est la bonne syntaxe:
-------------------------------------------------------------------------
Options -Indexes
SetEnvIf Request_URI ".*" object_is_image=gif
RewriteEngine on
RewriteCond $1 !^(index\.php|crxxxxxxxn\.xml|wxxxxxa|stxxxxxxe|favicon|stxxxxxxe|Bixxxxxxh\.xml|cgi\-bin|robots\.txt|dxxxxxd|mxxxs|forum|sitemap.xml|test\.html|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]

<Limit GET POST>
order allow,deny

deny from .de
deny from .cn
deny from .th

deny from .ru

</Limit>
-------------------------------------------------------------------------
Voilà... et Limit GET POST ? est-ce utile ?

Merci :)

allow from all

Goupilop

#9
Pour limit Get Post regarde ici:

https://www.segmentationfault.fr/securite-informatique/contourner-htaccess-limit-get-post/

Edit: pour la syntaxe, essaye pour voir si cela passe
Windows 11 Pro x64 - Windows 10 Pro x64 - Linux Debian12 - Emmabuntüs ED5 x64

3000fr

Re... bon ... voilà ... J'ai ajouté dans un sous domaine de test: https://bk13.tantra-k13.com/

Options -Indexes
SetEnvIf Request_URI ".*" object_is_image=gif
RewriteEngine on
RewriteCond $1 !^(index\.php|crxxxxxxxn\.xml|wxxxxxa|stxxxxxxe|favicon|stxxxxxxe|Bixxxxxxh\.xml|cgi\-bin|robots\.txt|dxxxxxd|mxxxs|forum|sitemap.xml|test\.html|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]

order allow,deny
deny from .de
deny from .cn
deny from .th
deny from .ru
deny from .fr
allow from all


Tu devrais être bloqué ...
Sinon, le truc limit ... Je supprime :)

Merci ...

Goupilop

Effectivement le .fr est bien bloqué:



Si je passe par la Suède avec mon VPN:
#
Windows 11 Pro x64 - Windows 10 Pro x64 - Linux Debian12 - Emmabuntüs ED5 x64

3000fr

Re, ok, donc ça fonctionne .... Je t'ai fais un MP...avec mon ip :)

Il veut pas bloquer mq ... mais fr me bloque ... étrange ou ? normal :)

Voilà ... je vais de toutes façon utiliser ce système ... Impecc :)

Goupilop

Je viens de répondre à ton message
Cela est logique puisque ton F.A.I rev.numericable.fr est français donc c'est bien .fr pour le blocage (ISO)
Windows 11 Pro x64 - Windows 10 Pro x64 - Linux Debian12 - Emmabuntüs ED5 x64

3000fr

Re, oui, ok ... compris... 
mais comme on voit MQ ici, je pensais être reconnu MQ ...

Pour mon hébergeur, par ex... Je suis reconnu MQ et je dois mettre un Phone MQ indicatif 0696 XX XX XX


ip: "89.***.109.***"
hostname: "89-***-109-***.rev.numericable.fr"
type: "ipv4"
continent_code: "NA"
continent_name: "North America"
country_code: "MQ"
country_name: "Martinique"


Le principal, c'est que ça fonctionne, et là, j'en était à plus de 80'000 lignes ... et 3/4 Mo
 
Mais maintenant à moins de 30 lignes :) & 553 octets  ;D

Merci ... génial, la proprio du site sera heureuse ...  
Comme elle parle que anglais ... elle peut rien demander... et surtout.. elle connait rien :P
Elle gère juste les joueurs in game ... Events etc ... Comme elle a repris mon ancien jeu ... je l'aide, ça m'occupe

Si tu veux tester ... tu me dis .. Je te donne un compte (Via MP + Skype) ... C'est marrant ...  8) ;D :D ;D 

Voilà donc il semble que ce soit 100% résolu :)

Bon j'ai chaud, 31° .. go beers ... (de retour en Hexagone dans le courant de l'année) ça va cailler autour du Lac Léman uhuhuh

:)