Sendmail — это почтовый транспортный агент (Mail Transport Agent — MTA), использующий простой протокол передачи почты (Simple Mail Transport Protocol — SMTP) для пересылки электронных сообщений между MTA и получения почты от почтовых клиентов. Хотя многие почтовые агенты могут шифровать трафик между собой, большинство этого не делает, поэтому пересылка почты по открытым сетям считается небезопасной по природе формой связи.
Дополнительные сведения о работе электронной почты и обзор стандартных параметров вы найдёте в главе Электронная почта Справочного руководства по Red Hat Enterprise Linux. В этом разделе предполагается, что вы можете правильно создать /etc/mail/sendmail.cf, отредактировав /etc/mail/sendmail.mc и запустив команду m4, как описано в Справочном руководстве по Red Hat Enterprise Linux.
Всем, кто планирует внедрять сервер Sendmail, рекомендуется уделить внимание следующим вопросам.
Сама природа электронной почты позволяет опытному нападающему легко завалить сервер почтой и вызвать отказ в обслуживании. Но определив следующие ограничения в /etc/mail/sendmail.mc, вы ограничите эффективность таких атак.
confCONNECTION_RATE_THROTTLE — Число соединений, которое сервер может принять за секунду. По умолчанию в Sendmail число соединений не ограничено. Если предел задан, и он достигнут, следующие соединения откладываются.
confMAX_DAEMON_CHILDREN — Максимальное число дочерних процессов, которое может породить сервер. По умолчанию, в Sendmail количество дочерних процессов не ограничено. Если предел задан, и он достигнут, следующие соединения откладываются.
confMIN_FREE_BLOCKS — Минимальное число свободных блоков, при котором сервер будет принимать почту. По умолчанию 100 блоков.
confMAX_HEADERS_LENGTH — Максимально допустимый размер заголовка сообщения (в байтах).
confMAX_HEADERS_LENGTH — Максимально допустимый размер одного сообщения (в байтах).
Никогда не помещайте каталог спулера почты /var/spool/mail/ на общий том NFS.
Так как NFSv2 и NFSv3 не может управлять кодами пользователей и групп, два или несколько пользователей могут получить одинаковый код и получать/читать почту друг друга. С NFSv4, использующей Kerberos, это невозможно, так как модуль ядра SECRPC_GSS не использует проверку подлинности на основе кодов UID.
Чтобы предотвратить атаки на сервер Sendmail локальных пользователей, лучше разрешить пользователям почты доступ к серверу только из почтовой программы. Доступ пользователей почтового сервера к интерактивной оболочке следует закрыть, для этого нужно задать для всех пользователей в файле /etc/passwd оболочку /sbin/nologin (за возможным исключением пользователя root).