Tag

DDoS

Browsing

Aujourd’hui, Jac m’envoie un message pour m’informer que sa redirection email ne fonctionne plus.

Je lance donc un terminal et vérifie les logs de Postfix, qui chargent des dizaines de lignes d’erreurs de ce type:

Dec 15 16:30:33 mail postfix/smtpd[5912]: connect from static-68-236-203-102.nwrk.east.verizon.net[68.236.203.102]
Dec 15 16:30:34 mail postfix/smtpd[5912]: lost connection after AUTH from static-68-236-203-102.nwrk.east.verizon.net[68.236.203.102]
Dec 15 16:30:34 mail postfix/smtpd[5912]: disconnect from static-68-236-203-102.nwrk.east.verizon.net[68.236.203.102]
Dec 15 16:30:34 mail postfix/smtpd[5908]: connect from static-68-236-203-102.nwrk.east.verizon.net[68.236.203.102]
Dec 15 16:30:34 mail postfix/smtpd[5908]: lost connection after AUTH from static-68-236-203-102.nwrk.east.verizon.net[68.236.203.102]
Dec 15 16:30:34 mail postfix/smtpd[5908]: disconnect from static-68-236-203-102.nwrk.east.verizon.net[68.236.203.102]

Comme vous pourvez le constater, ça débite et ça impacte forcément les ressources du système. Voyons donc comment nous pouvons y mettre un terme.

Fail2Ban: protéger Postfix contre les attaques AUTH DoS photo

Pré-requis : fail2ban

Nous allons utiliser fail2ban, un compagnon très utile pour surveiller les logs et analyser les comportements néfastes à l’aide d’expressions régulières.

Je vous invite à relire le guide d’installation de fail2ban.

Nouvelle définition dans fail2ban : postfix-auth

Nous ajoutons donc une nouvelle définition, [postfix-auth], dans notre fichier jail.local:

nano /etc/fail2ban/jail.local

On l’ajoute à la fin des déclarations pour les serveurs mails :

[postfix-auth]
enabled     = true
filter      = postfix.auth
action      = iptables-multiport[name=postfix, port="http,https,smtp,submission,pop3,pop3s,imap,imaps,sieve", protocol=tcp]
#           sendmail[name=Postfix, dest=you@mail.com]
logpath     = /var/log/mail.log

Je désactive volontairement l’envoi des notifications, ce serait un comble.

Sommaire de la série Monter un serveur dédié de A à Z

  1. Serveur dédié : installation d’Apache, PHP, MySQL et Webmin
  2. Serveur dédié : créer la base de données MySQL et importer WordPress
  3. Serveur dédié : créer et activer un Virtual Host sous Apache
  4. Serveur dédié : changer les DNS du nom de domaine et le faire pointer vers le serveur
  5. Serveur dédié : sécurisation des services avec iptables et fail2ban
  6. Serveur dédié : sécurisation de la couche TCP/IP
  7. Serveur dédié : création d’un serveur mail Postfix (sécurisé avec Saslauthd et certificat SSL) et Courier (accès POP et IMAP) utilisant une base MySQL d’utilisateurs/domaines virtuels
  8. Serveur dédié : sécuriser Apache 2 avec ModSecurity
  9. Serveur dédié : CHMOD récursif sur des fichiers ou répertoires en ligne de commande
  10. Serveur dédié : installer APC comme système de cache et configurer Varnish comme reverse-proxy pour Apache pour améliorer les performances
  11. Serveur dédié : afficher la véritable IP derrière un reverse-proxy comme Varnish
  12. Serveur dédié : intégrer SSH à WordPress pour mettre à jour le core, les plugins et les thèmes
  13. Serveur dédié : installer la dernière version d’APC par SVN
  14. Serveur dédié : analyse des performances du serveur
  15. Serveur dédié : mettre à jour le noyau Debian de la Kimsufi
  16. Serveur dédié : sauvegarde automatique des fichiers avec Backup Manager sur le serveur de sauvegarde OVH
  17. Serveur dédié : configurer la limite mémoire pour PHP et Suhosin
  18. Bash : supprimer tous les fichiers et sous-répertoires d’un répertoire
  19. Serveur dédié : impossible de se connecter à un port distant
  20. Rsync: rapatrier les fichiers du serveur à la maison
  21. Bash : réparer les tables MySQL en cas de crash
  22. Serveur dédié : création d’une seedbox avec Transmission
  23. Serveur dédié : des paquets LAMP à jour sous Debian
  24. Serveur dédié : mise à jour vers Debian 7 Wheezy
  25. Serveur dédié : activer X11 forwarding pour SSH
  26. Serveur dédié : optimiser toutes les images JPG et PNG avec OptiPNG et JpegOptim
  27. Postfix : résoudre l’erreur “fatal: www-data(33): message file too big”
  28. Serveur dédié : mise en place de l’IPv6
  29. WordPress : accorder les bonnes permissions aux fichiers et dossiers avec chown et chmod
  30. WordPress : héberger les images sur un sous-domaine
  31. Serveur dédié : ajouter l’authentification SPF, Sender-ID et DKIM à Postfix et Bind9 avec opendkim
  32. Apache : lorsque le domaine seul (sans WWW) renvoie une erreur 403
  33. Serveur dédié : sécuriser Apache avec HTTPS (HTTP avec la couche TLS/SSL) en Perfect Forward Secrecy
  34. Serveur dédié : passer WordPress en HTTPS (TLS/SSL)
  35. Serveur dédié : configurer Webmin en TLS avec un certificat SSL
  36. Serveur dédié : configurer Transmission pour accéder au WebUI via TLS-SSL
  37. Serveur dédié : installer et configurer Varnish 4
  38. Serveur dédié : passage au mod FastCGI et PHP-FPM avec Apache MPM Worker
  39. J’ai planté le serveur… ou comment récupérer un serveur Kimsufi après un plantage de kernel avec le mode rescue OVH
  40. Serveur dédié : configurer Postfix et Courier pour utiliser TLS-SSL en Perfect Forward Secrecy
  41. Serveur dédié : retirer Varnish, devenu inutile avec HTTPS
  42. Serveur dédié : ajout de mod_spdy pour accélérer la connexion TLS-SSL sous Apache
  43. Serveur dédié : installer la dernière version d’OpenSSL sous Debian
  44. Serveur dédié : activer l’IP canonique du serveur sous Apache
  45. Serveur dédié : mise à jour vers PHP 5.6
  46. MySQL : convertir les tables MyISAM au format InnoDB
  47. Serveur dédié : optimiser toutes les images GIF avec GIFsicle
  48. Serveur dédié : migration de MySQL vers MariaDB
  49. BASH : lister, bloquer et débloquer des adresses IP avec iptables
  50. Serveur dédié : produire une meilleure réserve d’entropie avec haveged
  51. Serveur dédié : mettre en place DNSSEC pour sécuriser les DNS du domaine
  52. Serveur dédié : mise en place du protocole DANE
  53. 8 règles d’or pour bien déployer DNSSEC et DANE
  54. Serveur dédié : installer PHP7 FPM avec FastCGI sous Debian
  55. Serveur dédié : réduire les connexions TIME_WAIT des sockets et optimiser TCP
  56. Fail2Ban: protéger Postfix contre les attaques DoS de types AUTH, UNKNOWN et EHLO
  57. Serveur dédié : mettre à jour Apache et configurer le mod_http2 pour HTTP/2
  58. Serveur dédié : ajouter le domaine à la liste HSTS preload
  59. Serveur dédié : ajouter l’authentification DMARC à Postfix et BIND
  60. Serveur dédié : à la recherche de l’inode perdue ou comment résoudre le problème “no space left on device”
  61. Serveur dédié : installer NginX avec support HTTP2 et certificat SSL, PHP, MariaDB sous Debian

Qu’est-ce qu’un proxy?

Un proxy est un programme servant d’intermédiaire pour accéder à un autre réseau, généralement internet.

Les fournisseurs d’accès à internet (FAI) peuvent proposer des proxies pour la connexion de leurs abonnés. Il faut pour cela que l’abonné paramètre correctement son système (via un logiciel d’installation fourni par le FAI).

Mais il est également possible que le fournisseur d’accès utilise un proxy transparent (sans configuration par l’utilisateur). Ce proxy permet par exemple au fournisseur d’accès de connaître les habitudes de navigation de leurs abonnés ou de réduire le nombre d’accès effectifs aux sites distants.

Les proxies et la sécurité

L’utilité des serveurs proxies est importante, notamment dans le cadre de la sécurisation des systèmes d’information.

Par exemple, il est presque systématique en entreprise ou dans les établissements scolaires que l’accès internet se fasse à travers un serveur proxy. L’internaute ne voit pas la différence, sauf quand il tente de naviguer sur un site interdit, auquel cas il pourra recevoir un message d’erreur : un tel proxy est appelé proxy filtrant. Il se peut aussi qu’une boite de dialogue s’ouvre et demande un identifiant et un mot de passe avant de pouvoir surfer sur internet.

À l’inverse, un proxy peut aussi servir à contourner les filtrages. Supposons le cas d’un pays qui bloque l’accès à certains sites considérés comme “subversifs”, mais qui effectue ce filtrage uniquement en se basant sur l’adresse du site que l’on souhaite visiter. Dans ce cas, en utilisant un proxy comme intermédiaire (situé dans un autre pays donc non affecté par le filtrage), on peut s’affranchir du filtrage (sauf bien sûr si l’adresse du proxy est elle-même interdite).

Le principe fonctionne également dans l’autre sens. Supposons qu’un site web n’accepte que les internautes d’un certain pays (exemple concret : un site de campagne présidentielle américain qui n’accepte que les connexions venant des États-Unis). Dans ce cas, en passant par un proxy situé aux États-Unis, un internaute français pourra visiter le site.

Un troisième rôle du proxy est de compliquer la remontée vers l’internaute (anonymisation). Dans l’exemple précédent, on a trompé le site américain qui n’était pas capable de remonter jusqu’à l’internaute à travers le proxy. Certaines techniques avancées permettent de remonter à travers le proxy. Dans ce cas, un internaute pourra utiliser de nombreux proxies en chaîne et stopper la connexion avant que ceux qui le traquent ne soient remontés jusqu’à lui.

Trouver des proxies

Il vous faut d’abord trouver des listes de proxies anonymes.

N’hésitez pas à cumuler les listes : sur 3000 proxies trouvés il est fort probable qu’il y en ait que les deux tiers qui fonctionnent réellement et que la moitié de ces derniers soient réellement anonymes. En effet, il existe plusieurs catégories de proxies :

  • le proxy transparent ou proxy HTTP : affiche à tout le monde que vous utilisez un proxy, n’offre aucune sécurité et agit seulement comme cache HTTP (garde les pages les plus demandées en cache). Les FAI en proposent souvent un (style proxy.free.fr)
  • le proxy HTTP anonymous : cache votre adresse IP.
  • le proxy HTTP Elite ou Perfect proxy : le top puisqu’il fait croire que l’IP du proxy est votre IP réelle. Il ne transmet aucune information permettant de vous identifier.
  • le proxy HTTP Elite + SSL : la crème de la crème ! Il supporte aussi les sites sécurisés.
  • le proxy SOCKS : les navigateurs ne les supportent pas, il faut des programmes exploitant ce protocole (IRC, FTP par exemple). La version (4 ou 5) doit impérativement être indiquée.

Les ports les plus courants sont 80,1080, 8000, 8080, 3128 mais le proxy peut être sur d’autres ports non-standards afin d’éviter les scans sauvages.

Une fois que vous avez vos listes de proxies, il vous faut les vérifier afin de supprimer ceux qui ne fonctionnent pas et ceux dont l’utilisation est “risquée” : personne n’a envie d’utiliser un proxy appartenant à l’armée ou la RIAA…

J’utilise Proxy Checker (payant) mais il existe aussi Charon, qui lui est gratuit.

Tester des listes de proxies avec Charon

Lancez le programme, chargez vos listes et hop, vérifiez tout.

Cela peut prendre pas mal de temps suivant votre connexion et le nombre de proxies. Laissez Protowall tourner dans le fond, cela permettra de virer toutes les IPs foireuses.

Au final, triez la liste par type de proxy et ne gardez que les Elites (+SSL).

Ensuite il ne vous reste plus qu’à les exporter dans un fichier texte et les tester live sous Firefox avec l’extension Best Proxy Switcher.

Et enfin, petit test : êtes-vous anonyme ?

Voilà, maintenant il ne vous reste plus qu’à en trouver des rapides… Pour vous donner une petite idée, sur une liste initiale de 5000 proxies (tous types confondus), il m’en reste environ 20 de potables (vitesse correcte, perfect proxy).

Spelling error report

The following text will be sent to our editors: