Настроил эту штуку некоторое время назад, и она отправляет сообщения. Прекрасно, однако я хотел, чтобы начать получать сообщения.
Ив попытался подключиться к порту 25 по Telnet, но ничего.
копать dzwxgames.com mx:
dzwxgames.com. 60 IN MX 10 34.210.135.57.
Теперь AWS требует использования ретрансляции SES для отправки сообщений, которая работает нормально. Но когда я пытаюсь их получить, действует так, как будто все порты заблокированы.
netstat -lntu
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
tcp6 0 0 :::25 :::* LISTEN
tcp6 0 0 :::443 :::* LISTEN
tcp6 0 0 :::110 :::* LISTEN
tcp6 0 0 :::143 :::* LISTEN
Но netstat сообщает, что их тоже слушают.
Итак, я проверил свои правила группы безопасности на консоли AWS:
SMTP TCP 25 0.0.0.0/0
SMTPS TCP 465 0.0.0.0/0
POP3 TCP 110 0.0.0.0/0
Вроде нормально. Хорошо ... возможно, Postfix не работает?
постфикс -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
home_mailbox = Maildir/
inet_interfaces = all
inet_protocols = all
mailbox_size_limit = 0
mydestination = $myhostname, dzwxgames.com, localhost, localhost.localdomain, localhost
myhostname = DZWXGamesWeb.dzwxgames.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost = [email-smtp.us-west-2.amazonaws.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_note_starttls_offer = yes
smtp_tls_security_level = encrypt
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
Хорошо ... Значит, postfix доступен только на localhost?
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
Я немного погуглил, и он говорит, что, возможно, нужно включить dovecot?
Хорошо, поэтому добавил это в главную конфигурацию postfix
/etc/postfix/master.cf:
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}
dovecot unix - n n - - pipe
flags=DRhu user=mail:mail argv=/usr/lib/dovecot/deliver
-f ${sender} -d ${recipient}
Хорошо еще ничего. Может быть, dovecot не слушает правильные порты?
# 2.2.22 (fe789d2): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.13 (7b14904)
doveconf: Warning: NOTE: You can get a new clean config file with: doveconf -n > dovecot-new.conf
doveconf: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:103: 'imaps' protocol is no longer necessary, remove it
doveconf: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:103: 'pop3s' protocol is no longer necessary, remove it
# OS: Linux 4.4.0-45-generic x86_64 Ubuntu 16.04.5 LTS ext3
mail_location = maildir:/home/%u/Maildir
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
}
passdb {
driver = pam
}
protocols = pop3 imap
service imap-login {
inet_listener imaps {
port = 993
ssl = yes
}
}
service imap {
process_limit = 1024
}
service pop3-login {
inet_listener pop3s {
port = 995
ssl = yes
}
}
service pop3 {
process_limit = 1024
}
ssl = no
userdb {
driver = passwd
}
Да я этого не понимаю. Учебник, который я использовал для настройки, кажется, давно ушел. И еще остается много вопросов.
Я знаю, что amazon блокирует много сообщений с порта 25, но, похоже, нет никакой информации, говорящей о том, что они блокируют связь с этим портом. Я также уже установил лимиты на отправку.
И журналы даже не сообщают, что получили сообщение.
НАКОНЕЦ разобрался.
Это полный контрольный список: убедитесь, что Postfix / dovecot / squrrelmail / mailbox настроен. Как только это произойдет, вы должны увидеть. ПРИМЕЧАНИЕ. Это только получение писем. Отправка - это еще один ад.
sudo netstat -plnt
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1612/master
Вы должны видеть 0.0.0.0, а не 127.0.0.1 или 192.0.0. доб.
Убедитесь, что группа безопасности на вашем Amazon включает порт 25. и порты ssl / tls.
Следующая проверка /etc/postfix/master.cf содержит:
smtp inet n - n - - smtpd
Если это не личное, то оно находится в инете и не привязано к корневому каталогу. Не знаю почему. Иногда помогает. Просто убедитесь, что у вас есть соответствующие разрешения для ваших папок.
Затем убедитесь, что ваш ufc разрешает подключение к 25.
sudo ufw status
25/tcp ALLOW Anywhere
если не:
sudo ufw allow 25/tcp
ДАЖЕ, если netstat показывает, что 25 тоже прослушивается, это может быть заблокировано брандмауэром.
НАКОНЕЦ убедитесь, что у вас есть ACCEPT в iptables.
sudo iptables -I INPUT -p tcp -m tcp --dport 25 -j ACCEPT
Теперь выполните тест ВНЕШНЕГО порта: https://www.yougetsignal.com/tools/open-ports/
Большинство интернет-провайдеров блокируют связь через порт из дома на порт 25. Период. Все это. Возможно, вы даже не сможете проверить связь с сервером. Да, это плохо.
Если все сказано и сделано, все будет хорошо. Проверьте свои почтовые журналы.
sudo tail -f /var/log/mail.log
Apr 26 07:43:05 DZWXGamesWeb postfix/qmgr[6257]: 87EEE400EC: from=<deathmock@gmail.com>, size=3266, nrcpt=1 (queue active)
Apr 26 07:43:05 DZWXGamesWeb postfix/local[27250]: 87EEE400EC: to=<deem@dzwxgames.com>, relay=local, delay=0.37, delays=0.36/0/0/0, dsn=2.0.0, status=sent (delivered to maildir)
Показывает правильно направленное письмо. Если есть проблемы, проверьте /var/log/mail.err
Разрешает ли ваша политика безопасности внешние подключения к порту 25? Это могло быть проблемой.
Можете ли вы установить telnet на 127.0.0.1 25 на машине?