Я використовую Debian 7.x amd64 + Exim 4.82 на спеціальному сервері, у мене також є робочий SMTP-сервер на спільному хостингу. Я хотів би встановити SMTP на свій VPS, який матиме спеціальні сценарії / фільтри доставки (наприклад, надішліть копію всіх електронних листів, що надходять, для деяких облікових записів)
В даний час ситуація з VPS така:
- він надсилає локальний (вхідний) електронний лист через смарт-хост без будь-якої автентифікації
- він надсилає весь вихідний електронний лист через смарт-хост без будь-якої автентифікації <== Небажана поведінка
- якщо для клієнта SMTP тип аутентифікації встановлено на "Звичайний пароль", він запитує облікові дані та надсилає електронну пошту правильно
- всі вищезазначені випадки поводяться однаково з або без TLS-шифрування, включеного на стороні клієнта
/etc/exim4/update-exim4.conf.conf
dc_eximconfig_configtype='smarthost'
dc_other_hostnames='myhost.mycompany.com; localhost'
dc_local_interfaces='127.0.0.1; xxx.xxx.xxx.xxx' <=== public IPv4 address
dc_readhost='mycompany.com'
dc_relay_domains='*'
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.external.com'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'
/etc/exim4/passwd.client
зміст:
*:smtp.external.com:secret
Я створив самопідписані сертифікати та включив TLS /etc/exim4/exim4.conf.localmacros
MAIN_TLS_ENABLE = 1
Я намагався використовувати plan_text та plain_login, зараз я використовую saslauthd (я впевнений, що це працює, тому що я вже тестував його раніше з postfix).
exim -bP authenticator_list
вихід:
plain_saslauthd_server
login_saslauthd_server
cram_md5
plain
login
telnet myhost.mycompany.com 25
вихід:
EHLO test
250-myhost.mycompany.com Hello xxxxxxxxx [xxx.xxx.xxx.xxx]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-STARTTLS
250 HELP
...
AUTH PLAIN <random string>
503 AUTH command used when not advertised
Я припускаю, що це не тому, що не рекламується автентифікатор (у відповіді EHLO немає рядка 250-AUTH ...), але за замовчуванням ВСІ стандартні автентифікатори мають цю умову
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_in_cipher}{}{}{*}}
.endif
Тому я припускаю, що я повинен додати AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
до свого /etc/exim4/exim4.conf.localmacros
файлу, щоб обробити умову server_advertise_condition, але це все одно не буде враховано, якщо клієнт не має ввімкнено шифрування TLS (я маю рацію?).
Тому я трохи заплутався, що робити зараз .. Я хочу, щоб моя конфігурація працювала так:
- локальні запити fetchmail (пошта) передаються локально без будь-якої автентифікації (тобто завдання cron)
- віддалені (звичайні або зашифровані, це не має значення) запити повинні працювати з будь-якого пункту призначення (ноутбуки моїх колег) до будь-якого іншого пункту призначення (наших клієнтів), який здійснюватиме маршрутизацію через зовнішній SMTP (smarthost) і ОБОВ'ЯЗКОВО вимагає автентифікації користувача, а також він відхилить / відхилити запит