Как исправить постфикс в macOS Sierra 10.12.6?

Основываясь на информации, содержащейся в вопросе, нет оснований предполагать, что SSH-соединение вообще заканчивается на локальном компьютере.

Иногда я видел, как определенный порт переадресовывался с локального хоста на ssh-сервер на удаленном хосте. Тогда ssh user@localhost -p 12345становится эквивалентным ssh user@remote.example.comс очевидными отличиями от локального su.

Причина такой настройки обычно заключается в том, что таким образом пользователям не нужно помнить или знать о remote.example.com, и фактически они могут быть защищены брандмауэром, так что они не могут даже получить к нему прямой доступ. Это также позволяет администраторам прозрачно изменять способ маршрутизации фактического соединения.

1
25.12.2017, 08:03
1 ответ

Лучше всего перейти на High Sierra.

Если это невозможно по какой-либо причине, вы можете обойти эту ошибку, используя stunnelи ретранслировать почту из постфикса в незашифрованном виде через локальный зашифрованный туннель в соответствии с этим руководством(все кредиты принадлежат Райнеру Мюллеру):

  1. Установить MacPorts
  2. $ sudo port install stunnel certsync
  3. Создайте /Library/LaunchDaemons/org.example.mail.plistи поместите в него следующее:

<!-- /Library/LaunchDaemons/org.example.mail.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>org.example.mail</string>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/local/bin/stunnel3</string>
        <string>-c</string>
        <string>-r</string>
        <string>smtp.gmail.com:587</string>
        <string>-n</string>
        <string>smtp</string>
        <string>-v</string>
        <string>2</string>
        <string>-A</string>
        <string>/opt/local/etc/openssl/cert.pem</string>
    </array>
        <key>UserName</key>
        <string>nobody</string>
    <key>Sockets</key>
    <dict>
        <key>Listeners</key>
        <dict>
            <key>SockNodeName</key>
            <string>localhost</string>
            <key>SockServiceName</key>
            <string>555</string>
            <key>SockType</key>
            <string>stream</string>
        </dict>
    </dict>
    <key>inetdCompatibility</key>
    <dict>
        <key>Wait</key>
        <false/>
    </dict>
</dict>
</plist>
  1. Настройте launchd для запуска stunnel3:
    $ sudo launchctl load -w /Library/LaunchDaemons/org.example.mail.plist
  2. Проверка соединения:
    nc localhost 555
  3. Изменить /etc/postfix/main.cf, чтобы постфикс использовал локальный туннель вместо прямого подключения к SMTP-серверу:

relayhost = [localhost]:555
smtp_tls_security_level = may

(Уровень шифрования также должен быть снижен)

  1. В /etc/postfix/sasl_passwdизмените smtp.gmail.com:587на localhost:555
  2. .
  3. Перезагрузить почтовую карту:

sudo postmap hash:/etc/postfix/sasl_passwd

Теперь ваша почта должна работать как часы!

П.С. Используйте эту команду для просмотра почтовых журналов во время выполнения для отладки :

.
log stream --predicate  '(process == "smtpd") || (process == "smtp")' --debug

П.П.С. У меня установлен XCode 9.2. Это может быть необходимо для установки/запуска stunnel3.

0
28.04.2021, 23:52

Теги

Похожие вопросы