2

Я пытаюсь настроить виртуальную машину Ubuntu с sendmail (LAMP), и я не могу заставить sendmail фактически что-либо отправлять. Я прочитал, что мне нужно настроить SMTP-ретранслятор на действительное имя домена, которое у меня есть (не Gmail).

Вот шаги, которые я предпринимаю (как root):

apt-get install sendmail mailutils
cd /etc/mail
mkdir auth
chmod 700 auth
vi auth/client-info
    AuthInfo:mail.<mydomain.net> "U:user" "I:user" "P:password"
    TLS_Srv:mail.<mydomain.net> ENCR:128
makemap hash auth/client-info < auth/client-info
chmod 600 auth/client-info
vi sendmail.mc
    After MAILER_DEFINITIONS:
    Add define(`SMART_HOST',`mail.<mydomain.net>')dnl
    define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
    FEATURE('authinfo','hash /etc/mail/auth/client-info')dnl
m4 sendmail.mc > sendmail.cf

Когда я проверяю это, я делаю

(echo subject: test; echo ) | sendmail -v -i -Am -- myaddress@gmail.com

и кажется, что это висит на этом, ничего не делая.

В моем журнале ошибок /var/log/mail.err у меня есть следующее:

Mar 24 09:40:01 webDev sm-msp-queue[15397]: My unqualified host name (webDev) unknown; sleeping for retry
Mar 24 09:41:01 webDev sm-msp-queue[15397]: unable to qualify my own domain name (webDev) -- using short name

Единственное, что я не могу понять, это как использовать другой порт, так как сервер настроен на использование порта 465. Безопасность соединения - SSL/TLS и открытый текстовый пароль.

Чего мне не хватает, чтобы эта конфигурация работала?

РЕДАКТИРОВАТЬ: я изменил /etc /hosts и установил для моего computername полное доменное имя, и теперь оно больше не похоже на зависание.

Теперь у меня возникла проблема «Отложено: соединение отклонено». С помощью Wireshark я обнаружил, что пакеты отправляются на почту. находятся в порту 25. Nmap сканирование почты. порт 25 закрыт.

3 ответа3

1

На данный момент я отказался от идеи использовать мой хост в качестве ретранслятора sendmail и перешел на использование Gmail.

Я нашел несколько сайтов, которые помогли настроить его. Я проверил это на Ubuntu и CentOS ... Я надеюсь, что это может кому-то помочь.

apt-get update

vi /etc/hostname
# Enter valid FQDN name

apt-get install sendmail sendmail-cf sasl2-bin

cd /etc/mail
mkdir certs
chmod 700 certs/
cd certs/

openssl dsaparam 1024 -out dsa1024.pem
openssl req -x509 -nodes -days 3650 -newkey dsa:dsa1024.pem -out /etc/mail/certs/mycert.pem -

keyout /etc/mail/certs/mykey.pem
# Enter "US" for Country Name (Can leave everything else blank)

openssl req -x509 -new -days 3650 -key /etc/mail/certs/mykey.pem -out 

/etc/mail/certs/mycert.pem
# Enter "US" for Country Name (Can leave everything else blank)

ln -s /etc/mail/certs/mycert.pem /etc/mail/certs/CAcert.pem
chmod 600 /etc/mail/certs/*

cd ..
mkdir auth
chmod 700 auth/

vi auth/client-info

содержание:

AuthInfo:smtp.gmail.com "U:root" "I:<emailAddress>@gmail.com" "P:password"
AuthInfo: "U:root" "I:<emailAddress>@gmail.com" "P:password"

затем,

makemap -r hash /etc/mail/auth/client-info.db < /etc/mail/auth/client-info

vi sendmail.mc

Выше "MAILER(local)dnl" Добавить:

dnl #
dnl # SSL Settings
define(`CERT_DIR', `MAIL_SETTINGS_DIR`'certs')
define(`confCACERT_PATH', `CERT_DIR')
define(`confCACERT', `CERT_DIR/CAcert.pem')
define(`confSERVER_CERT', `CERT_DIR/mycert.pem')
define(`confSERVER_KEY', `CERT_DIR/mykey.pem')
define(`confCLIENT_CERT', `CERT_DIR/mycert.pem')
define(`confCLIENT_KEY', `CERT_DIR/mykey.pem')
dnl #
dnl # GMAIL FORWARDING
define(`SMART_HOST',`smtp.gmail.com')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/auth/client-info.db')dnl

после этого,

m4 sendmail.mc > sendmail.cf

service sendmail stop

service sendmail start

(echo subject: test; echo ) | /usr/sbin/sendmail -v -i -Am -- email@domain.com
0

Мое неквалифицированное имя хоста (X) неизвестно; спать для повтора

Установите полное имя домена вашего хоста (имя хоста + имя_домена)

Используйте имя хоста для быстрого исправления, отредактируйте /etc /hostname для постоянного изменения.

Менее предпочтительный вариант:
Если вы просто хотите сделать sendmail счастливым, следуйте инструкциям sendmail «Кто я?" (определить confDOMAIN_NAME) в файлах sendmail.mc и subit.mc, перекомпилировать их в файлы * .cf.

0

Принудительное шифрование исходящего SMTP (для обычного текста AUTH)

mail.mouseware.net (exim) светится на порт 25 (smtp) и 465 (smtps). Он предлагает STARTTLS на порт 25. STARTTLS превращает незашифрованное соединение в зашифрованное.

Вы заставляете sendmail всегда использовать STARTTLS для SMTP-подключений к mail.mouseware.net.
Используйте следующую запись в таблице доступа:

TLS_Srv:mail.mouseware.net ENCR:128

  • ENCR:128 - требуется 128-битное шифрование без проверки сервера
  • VERIFY:128 - требуется 128-битное шифрование с проверкой подлинности сервера

Чтобы проверить это, выполните команду root ниже:
(предмет эха: тест; эхо) | sendmail -v -i -Am - john.doe@example.net

PS Sendmail может легко обрабатывать входящие SMTPS-соединения, исходящие соединения сложнее настроить. В случаях, когда доступ к порту 25 заблокирован, sendail может быть настроен для связи с портом 587 (SMTP для отправки клиентами).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .