У меня есть сервер ретрансляции SMTP, что я недавно заменил OS X 10.10 Йосемити, выполняющего Server.app. Это работает, поскольку реле только для SMTP, позволяющее только, размещает с LAN на реле через него. Мы делаем это так, чтобы вся почта от нашей подсети была правильно отправлена от проверенного хоста к нашему домену для Платформы политики отправителя (SPF) и такого.
Конфигурирование к реле было довольно легко. Документация следующей Apple для того, чтобы Отключить Почтовые сервисы на Сервере OS X, я сделал следующее:
sudo serveradmin settings mail:global:skip_enable_service_check = yes
sudo serveradmin settings mail:imap:enable_imap = no
sudo serveradmin settings mail:imap:enable_pop = no
sudo serveradmin settings mail:imap:enable_sieve = no
sudo serveradmin stop mail
sudo serveradmin start mail
Это гарантировало, что только SMTP работает и остается случаем после перезагрузки или перезапуска Почтового сервиса. Так как имя хоста сервера ретрансляции SMTP является субдоменом в домене, для которого это передает, я также должен был изменить /Library/Server/Mail/Config/postfix/main.cf
удалить $myhostname
& $mydomain
от "mydestination" получающаяся строка следующие:
mydestination = localhost.$mydomain, localhost
Это также работало, распознанный Server.app и сохраняет изменение (как проверено путем выполнения sudo serveradmin settings mail:postfix
). То же сохраняется для тонких настроек к mynetworks
строка для ограничения, от которого была принята передача подсетей.
Проблема, которую я испытываю, является этим модификации к smtpd_pw_server_security_options
строка (а именно, для удаления LOGIN
& PLAIN
типы аутентификации), не будет придерживаться и возвращаться к значению по умолчанию (который включает нежелательные типы автора простого текста) после запуска Почтового сервиса. Документация Apple относительно определенных для Apple постфиксных опций в Сервере Mac OS X подразумевает тот пропуск LOGIN
& PLAIN
опции должны быть допустимыми.
Я попробовал:
smtpd_pw_server_security_options
в /Library/Server/Mail/Config/postfix/main.cf
sudo serveradmin settings mail:postfix:smtpd_use_pw_server = no
(mail:postfix:smtpd_use_pw_server
кажется, пустой словарь под Йосемити),sudo serveradmin settings postfix:smtp_sasl_auth_enable = yes
(это принимает значение по умолчанию к 'нет' под Йосемити, таким образом, я предполагаю, что Apple просто подкачала функциональность этой опции от вышеупомянутого mail:postfix:smtpd_use_pw_server
опция)serveradmin
удалить login
& plain
элементы от mail:postfix:smtpd_pw_server_security_options
массив (например. sudo serveradmin settings mail:postfix:smtpd_pw_server_security_options:_array_index:2 = delete
), но поскольку Charles Edge упоминает в его kyrpted сообщении в блоге об Удалении 'serveradmin настройки' Записи в Сервере OS X, та функциональность, кажется, повреждается. И, никакие эти настройки не зеркально отражаются в /Library/Server/Mail/Config/MailServicesOther.plist
или любой другой .plist, таким образом, вручную изменяющий их, кажется, не опция.Я добрался, автор простого текста отключил временно использование Server.app путем переключения настройки аутентификации простого текста от частично установленного флажка (по-видимому, потому что IMAP отключен) к полностью снятому флажку, но это непоследовательно и не придерживается после перезапуска Почтового сервиса.
Любые предложения или решения значительно ценились бы, за исключением уведомления для не использования Server.app на OS X. Это для магазина все-Apple, который должен преследовать продовольственные продукты Apple по причинам, в которые я не могу войти здесь. Естественно, отъезд автора простого текста включил, также не опция для очевидной безопасности и PCI причины соответствия DSS.
Я могу - немного поиграв - отключить аутентификацию открытого текста SMTP через Server.app, хотя это не очень хорошо приживается (конечно, не переживает перезагрузку или перезапуск Почты service, а иногда даже теряется, ковыряясь в Server.app). Я понял, что в качестве временного обходного пути я могу по крайней мере автоматически уведомлять, если SMTP-аутентификация с открытым текстом «PLAIN» и «LOGIN» будет повторно включена.
Я создал следующий сценарий быстрого bash, который выполняет эту работу:
#!/bin/bash
#
# smtp_plaintext_auth_check - check to see if plaintext auth is supported by SMTP service and warn if it is
#
# v0.1 2015-03-12 - Morgan Aldridge <http://serverfault.com/users/13496/morgant>
# Initial version.
#
admin_emails="email@domain.tld"
debug=false
host=$(hostname)
date=$(date +%Y-%m-%d-%H%M)
plaintext_auth_enabled=false
# check via serveradmin to see if plaintext auth is allowed by the SMTP server
if $debug; then echo "Checking Mail service to see if SMTP plaintext auth is supported..."; fi
while IFS= read -r line; do
if [[ "$line" =~ (plain|login) ]]; then
if $debug; then echo " Found '${BASH_REMATCH[1]}' SMTP auth method which is plaintext!"; fi
plaintext_auth_enabled=true
fi
done <<< "$(serveradmin settings mail:postfix:smtpd_pw_server_security_options)"
# if plaintext auth is enabled, notify admins
if $plaintext_auth_enabled; then
if $debug; then echo "Notifying admins via email that SMTP plaintext auth IS supported. That's bad!"; fi
mail -s "Error on $host: SMTP plaintext auth is allowed! $date" $admin_emails <<-EOM
ERROR on $host: SMTP plaintext auth appears to be allowed by the Mail service! This is a security risk and against PCI DSS compliance!
Please resolve ASAP!
EOM
else
if $debug; then echo "Phew, SMTP plaintext auth doesn't appear to be supported. That's good."; fi
fi
Опять же, это обходной путь , и я бы предпочел программно отключить аутентификацию открытого текста SMTP.