Gérer une attaque de commande non valide SMTP


8

L'un de nos serveurs de messagerie semi-occupés (sendmail) a eu beaucoup de connexions entrantes au cours des derniers jours à partir d'hôtes qui émettent des commandes inutiles.

Au cours des deux derniers jours:

  • connexions smtp entrantes avec des commandes invalides de 39 000 adresses IP uniques
  • les adresses IP proviennent de différentes plages du monde entier, pas seulement de quelques réseaux que je peux bloquer
  • le serveur de messagerie sert les utilisateurs à travers l'Amérique du Nord, donc je ne peux pas simplement bloquer les connexions d'adresses IP inconnues
  • exemples de mauvaises commandes: http://pastebin.com/4QUsaTXT

Je ne suis pas sûr de ce que quelqu'un essaie d'accomplir avec cette attaque, en plus de m'énerver.

des idées de quoi il s'agit, ou comment y faire face efficacement?


1
Comme ce trafic n'a rien à voir avec smtp, je me demande si un pare-feu de couche 7 pourrait le supprimer avant qu'il n'atteigne sendmail.

Réponses:


4

Voici au moins une option pour cibler ces connexions après qu'elles commencent à cracher des erreurs. Les clients valides et bien élevés ne devraient jamais tomber dans ce tarpit.

dnl # New option in v8.14.0
dnl # Override default limit (of 20) NOOPs (invalid or unsupported SMTP
dnl #   commands) before daemon will throttle connection by slowing
dnl #   error message replies (similar to "confBAD_RCPT_THROTTLE")
define(`MaxNOOPCommands', `5')dnl

Vous pouvez également utiliser la fonction GreetPause, qui rejettera ces clients car ils ne respecteront probablement pas la pause. Vous pouvez en savoir plus à ce sujet ici: http://www.deer-run.com/~hal/sysadmin/greet_pause.html

dnl # New feature in v8.13.1 (not listed in Companion)
dnl # Set time in milliseconds before sendmail will present its banner
dnl #   to a remote host (spammers won't wait and will already be
dnl #   transmitting before pause expires, and sendmail will
dnl #   refuse based on pre-greeting traffic) 5000=5 seconds
dnl # NOTE: Requires use of FEATURE(`access_db') and "GreetPause" entries
dnl #       in access table
FEATURE(`greet_pause',`5000')dnl

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.