Невозможно отправлять электронные письма из Postfix через Gmail (подключитесь к smtp.google.com: время ожидания соединения истекло)
Я хочу настроить Ubuntu Linode VPS для отправки информации журнала из Fail2Ban, Apache ModSecurity и других инструментов мониторинга на мой адрес электронной почты. Однако я не хочу настраивать весь почтовый сервер: вместо этого я хочу использовать Gmail в качестве ретранслятора, откуда я буду отправлять все свои электронные письма. По сути, все должно быть отправлено с моего Ubuntu VPS на Gmail.
Имея это в виду, я
- Соответствующие записи Google MX успешно добавлены в мой DNS-менеджер Linode: если я отправлю электронное письмо со своей личной учетной записи электронной почты на адрес@<my_Linode_domain>.com, оно придет.
- Попросил Linode снять ограничения на порты SMTP 25, 465, 587 , и они это сделали.
- Я следовал инструкциям этого руководства , чтобы установить Postfix и настроить его для использования Gmail.
- В UFW я открыл порты 25, 465 и 587, чтобы разрешить исходящую связь.
После этого я попытался отправить электронное письмо через:
mail -s "Mail from Linode activated" <my_personal_email>@gmail.com
Но письмо так и не было отправлено. Проверив логи (less /var/log/mail.log
), Я получил:
May 9 09:21:34 www postfix/qmgr[2127]: E4003695A6: from=<main_dev@<server_domain>>, size=556, nrcpt=1 (queue active)
May 9 09:21:34 www postfix/qmgr[2127]: 5D102695B3: from=<main_dev@<server_domain>>, size=462, nrcpt=1 (queue active)
May 9 09:21:34 www postfix/qmgr[2127]: 1F27C69735: from=<main_dev@<server_domain>>, size=462, nrcpt=1 (queue active)
May 9 09:21:34 www postfix/qmgr[2127]: DCBF76973C: from=<main_dev@<server_domain>>, size=475, nrcpt=1 (queue active)
May 9 09:21:34 www postfix/qmgr[2127]: 057EB6972C: from=<main_dev@<server_domain>>, size=464, nrcpt=1 (queue active)
May 9 09:21:34 www postfix/qmgr[2127]: F00AA6972D: from=<main_dev@<server_domain>>, size=436, nrcpt=1 (queue active)
May 9 09:21:34 www postfix/qmgr[2127]: 280D8695B0: from=<main_dev@<server_domain>>, size=450, nrcpt=1 (queue active)
May 9 09:21:34 www postfix/qmgr[2127]: DD85269734: from=<main_dev@<server_domain>>, size=464, nrcpt=1 (queue active)
May 9 09:22:04 www postfix/smtp[2130]: connect to smtp.google.com[64.233.176.27]:587: Connection timed out
May 9 09:22:04 www postfix/smtp[2132]: connect to smtp.google.com[64.233.176.27]:587: Connection timed out
May 9 09:22:04 www postfix/smtp[2133]: connect to smtp.google.com[74.125.138.27]:587: Connection timed out
May 9 09:22:04 www postfix/smtp[2134]: connect to smtp.google.com[142.251.15.26]:587: Connection timed out
May 9 09:22:04 www postfix/smtp[2135]: connect to smtp.google.com[74.125.138.27]:587: Connection timed out
May 9 09:22:24 www postfix/pickup[2126]: BC49569587: uid=1000 from=<main_dev>
May 9 09:22:24 www postfix/cleanup[2140]: BC49569587: message-id=<20230509142224.BC49569587@www.<server_domain>.com>
May 9 09:22:24 www postfix/qmgr[2127]: BC49569587: from=<main_dev@<server_domain>.com>, size=458, nrcpt=1 (queue active)
May 9 09:22:34 www postfix/smtp[2130]: connect to smtp.google.com[74.125.138.27]:587: Connection timed out
May 9 09:22:34 www postfix/smtp[2132]: connect to smtp.google.com[142.251.15.26]:587: Connection timed out
May 9 09:22:34 www postfix/smtp[2133]: connect to smtp.google.com[64.233.176.27]:587: Connection timed out
May 9 09:22:34 www postfix/smtp[2134]: connect to smtp.google.com[142.251.15.27]:587: Connection timed out
May 9 09:22:35 www postfix/smtp[2135]: connect to smtp.google.com[64.233.176.27]:587: Connection timed out
Моим первым подозрением было то, что Linode на самом деле не открыл соответствующие порты, поэтому я запустил traceroute -n -T -p 25 gmail-smtp-in.l.google.com
чтобы убедиться, что мои сообщения хотя бы уходят с сервера. Вот результат, который, как мне кажется, говорит о том, что мое сообщение действительно покинуло сервер:
sudo traceroute -n -T -p 25 gmail-smtp-in.l.google.com
traceroute to gmail-smtp-in.l.google.com (64.233.176.27), 30 hops max, 60 byte packets
1 10.204.4.35 0.087 ms 0.045 ms 0.030 ms
2 10.204.35.30 0.212 ms 10.204.35.29 0.233 ms 0.225 ms
3 10.204.64.37 0.156 ms 10.204.64.38 0.183 ms 10.204.64.37 0.150 ms
4 74.207.239.106 0.309 ms 0.314 ms *
5 23.203.144.38 0.630 ms 23.203.144.36 0.627 ms 0.611 ms
6 23.203.144.49 2.603 ms 23.203.144.213 0.492 ms 0.502 ms
7 108.170.249.108 1.093 ms * *
8 108.170.249.33 1.401 ms 66.249.95.175 3.374 ms 209.85.246.230 0.542 ms
9 108.170.249.98 0.569 ms 108.170.249.162 0.487 ms 108.170.249.98 1.030 ms
10 108.170.233.9 2.420 ms 142.251.51.7 2.765 ms 64.233.175.187 2.888 ms
11 * 142.251.51.108 1.729 ms *
12 216.239.63.221 3.175 ms 216.239.48.111 2.142 ms *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 64.233.176.27 1.151 ms * 1.189 ms
Нет ошибок, указывающих на то, что учетные данные для входа неверны, и кроме того, я использую пароль приложения для входа в Google. Но, как видите, логи тоже не очень информативны.
Кто-нибудь видел что-то подобное?
Это мой файл конфигурации постфикса:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 3.6 on
# fresh installs.
compatibility_level = 3.6
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = www.<my_hostname>.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, www.<domain>.com, localhost.<domain>.com, localhost
relayhost = smtp.google.com:587
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
inet_protocols = ipv4
Это мои правила UFW, но я сомневаюсь, что это проблема брандмауэра, поскольку, согласно трассировке, сообщения покидают сервер, и отключение UFW не меняет вывод:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH ALLOW Anywhere
Apache Full ALLOW Anywhere
21/tcp DENY Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)
21/tcp (v6) DENY Anywhere (v6)
25 ALLOW OUT Anywhere
465 ALLOW OUT Anywhere
587 ALLOW OUT Anywhere
25 (v6) ALLOW OUT Anywhere (v6)
465 (v6) ALLOW OUT Anywhere (v6)
587 (v6) ALLOW OUT Anywhere (v6)