gratifiant > linux.debian.user.french

Olivier (30/07/2019, 09h40)
Bonjour,

J'envisage de protéger quelques serveurs par des règles iptables rejetant
des requêtes ne provenant pas de certains pays.

Comme ces serveurs sont à destination de clients français, j'ai en tête de
rejeter la terre entière sauf la France et quelques pays où des clients
passeraient leurs vacances.

Qui a déjà utilisé dans Debian un module déterminant lepays à partir d'une
IP ?
Quel retour d'expérience ?
Avec la rareté des adresses IPv4 et j'imagine, la revente de plages entre
opérateurs divers, une telle détection fonctionne-t-elle correctement pour
la France ?
Comment s'opère la mise à jour des règles ?
Suggestions ?

Slts
Pierre Malard (30/07/2019, 09h50)
Salut,

En combinant iptable avec le résultat d?un :
whois ${IP} | grep '^country: FR'
par exemple. Mais cela risque de ralentir sensiblement le processus?
[..]
Ph. Gras (30/07/2019, 14h00)
Salut la liste !

> En combinant iptable avec le résultat d’un :
> whois ${IP} | grep '^country: FR'
> par exemple. Mais cela risque de ralentir sensiblement le processus…


D'après ce que j'ai vu, ce n'est pas tellement le pays qui pose problème dans le sens où il existe énormément de zombies partout,
que le type de requêtes effectuées… et là, on est ramené au classicisme du problème précédent !

Ceci dit, j'ai en effet constaté des zones géographiques potentiellement casse-pieds, dès qu'une tension géopolitique se fait jour,
Mais ça ne dure que le temps que le contexte s'apaise et que la situation revienne à la normale.

>> J'envisage de protéger quelques serveurs par des règles iptables rejetant des requêtes ne provenant pas de certains pays.


Si le trafic est effectivement destiné à être circonscrit à une zone géographique spécifiée, il conviendrait plutôt d'exclure toutes les
zones à l'exception de la zone cible. On peut le faire efficacement dans la configuration de son serveur Web, et pour un MTA je ne
sais pas… Mais c'est très restrictif : pour l'utilisateur, interdit de partir en vacances à l'étranger ! Peut-être pour une école, alors ?

>> Comme ces serveurs sont à destination de clients français, j'ai en tête de rejeter la terre entière sauf la France et quelques pays où des clients passeraient leurs vacances.
>> Qui a déjà utilisé dans Debian un module déterminant le pays à partir d'une IP ?
>> Quel retour d'expérience ?
>> Avec la rareté des adresses IPv4 et j'imagine, la revente de plages entre opérateurs divers, une telle détection fonctionne-t-elle correctement pour la France ?
>> Comment s'opère la mise à jour des règles ?


J'ai développé deux extensions Wordpress utilisant la géolocalisation, avec envoi d'un message dans les logs en cas d'anomalie.

Mais elle me sert uniquement comme élément d'information et pas de discrimination. Pour ce qui concerne le mailing, je reçois des
notifications via le protocole DMARC et j'effectue des sondages incluant une géolocalisation, mais c'est purement informatif.

Pour traiter la géolocalisation, il faut une table établissant la correspondance entre les IP et leur distribution spatiale. Donc l'analyse
des données par le logiciel qui reçoit l'information. Les tables doivent être mises à jour régulièrement.

Ce qui implique fatalement un ralentissement du processus, comme l'indique Pierre.

Bonne journée,

Ph. Gras
Pierre Malard (30/07/2019, 16h40)
> Le 30 juil. 2019 à 13:57, Ph. Gras <ph.gras> a écrit :
> Salut la liste !
> D'après ce que j'ai vu, ce n'est pas tellement le pays qui pose problème dans le sens où il existe énormément de zombies partout,
> que le type de requêtes effectuées? et là, on est ramené au classicisme du problème précédent !
> Ceci dit, j'ai en effet constaté des zones géographiques potentiellement casse-pieds, dès qu'une tension géopolitique se fait jour,
> Mais ça ne dure que le temps que le contexte s'apaise et que la situation revienne à la normale.


Effectivement, chez nous, ce sont ces adresses :
- ^[^@]+@(.*\.)?eu$
- ^[^@]+@(.*\.)?press$
- ^[^@]+@(.*\.)?co\.ua$
- ^[^@]+@(.*\.)?co\.za$
- ^[^@]+@(.*\.)?biz\.ua$
- ^[^@]+@(.*\.)?oicp\.net$
- ^[^@]+@(.*\.)?icu$
qui sont systématiquement rejetées.
C?est souvent les services mails et DNS qui sont ciblés mais aussi les services Web (http, https).

Dans ce cas, selon le service, j?ai mis en place un petit outil très drastique qui, combiné avec Fail2ban, blacklist systématiquement les emm? dans une base de donnée automatiquement après 10 tentatives répétée sur le même service. Ça évite certains lourdingues mais pas tous. Par exemple beaucoup d?adresses Amazon? qui changent souvent d'IP (no comments sur le sérieux du prestataire). Cela oblige quand même à une vérification régulière, histoire de ne pas bloquer un correspondant de bonne foi (faux positif).
Si ça vous intéresse, faites un tour sur :


Ce système a au moins l?avantage de ne pas trop ralentir le traitement mais il faut bien savoir qu?il n?existe aucun système efficace à 100%.
[..]
Haricophile (30/07/2019, 21h10)
Le mardi 30 juillet 2019 à 13:57 +0200, Ph. Gras a écrit :
> Si le trafic est effectivement destiné à être circonscrit à une zone
> géographique spécifiée, il conviendrait plutôt d'exclure toutes les
> zones à l'exception de la zone cible. On peut le faire efficacement
> dans la configuration de son serveur Web, et pour un MTA je ne
> sais pas? Mais c'est très restrictif : pour l'utilisateur, interdit de
> partir en vacances à l'étranger ! Peut-être pour une école, alors ?


D'autant que le VPN est à la mode... je me demande si identifier les
plages d'IP n'est pas beaucoup plus productif que la géolocalisation
sans avoir les outils d'espionnage généralisés qui vont avec...

Bref, banir les pays entiers c'est plutôt pour moi une méthode qui
fleure bon la nostalgie des temps passés, ainsi qu'une manière très peu
subtile et avec des effets secondaire potentiellement importants pour
résoudre ce genre de problème.
Discussions similaires