Я пытаюсь настроить sendmail, чтобы он не разрешал перечисление имен пользователей с помощью команды RCPT TO :.
Я бесконечно гуглил, и, насколько я понимаю, лучший способ добиться этого - добавить учетную запись электронной почты для всех адресов в virtusertable.
Итак, я создал новый файл sendmail.cf с этой директивой:
FEATURE(`virtusertable', `hash /etc/mail/virtusertable')dnl
Затем я добавляю в файл virtusertable.db:
@ubuntu test
и перезапустите sendmail, но он не работает:
mail from:root@ubuntu
250 2.1.0 root@ubuntu... Sender ok
rcpt to:root
250 2.1.5 root... Recipient ok
rcpt to:fake
550 5.1.1 fake... User unknown
Я где-то ошибаюсь? Или есть лучший способ добиться этого?
Спасибо за любую помощь
Если вы хотите реализовать адрес для приема всей почты домена, делай это так:
LOCAL_CONFIG
Kuser user -m -a.FOUND
LOCAL_RULE_0
R$- < $=w . > $* $: $(user $1 $) < $2 . > $3
R$- . FOUND < $=w . > $* $@ catch-all < $2 . > $3
Помните, что левая часть правил разделена правой частью табуляторами. После обновления sendmail.mc с помощью приведенного выше кода запустите sendmailconfig
Однако имейте в виду, что все, что отправляется команде RCPT TO:, проверяется с помощью набора правил check_rcpt. Чтобы предотвратить перечисление имен пользователей, вам может потребоваться использовать такие методы, как серый список (Я использую серый фильтр) и установите правильные значения для greet_pause ClientConn и ClientRate.
Адрес «для всех» не всегда является хорошим решением. Подумайте, хотите ли вы, чтобы отправители, которые ввели неправильный адрес, были проинформированы об их ошибке или нет.