У меня есть облачная виртуальная машина Google Compute (Ubuntu 17.10), и я пытаюсь настроить почтовый демон. Я установил postfix и dovecot согласно Эта статья (все шаги точно выполняются, начиная с новой установки). Бег sudo netstat -tuplen
дает:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 102 15523 829/systemd-resolve
tcp 0 0 127.0.0.1:783 0.0.0.0:* LISTEN 0 142345 6971/spamd.pid --cr
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 24342 2190/sshd
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 0 122740 31644/dovecot
tcp6 0 0 :::5355 :::* LISTEN 102 15526 829/systemd-resolve
tcp6 0 0 ::1:783 :::* LISTEN 0 142343 6971/spamd.pid --cr
tcp6 0 0 :::80 :::* LISTEN 0 44991 13243/apache2
tcp6 0 0 :::22 :::* LISTEN 0 24351 2190/sshd
tcp6 0 0 :::443 :::* LISTEN 0 58960 13243/apache2
tcp6 0 0 :::993 :::* LISTEN 0 122741 31644/dovecot
udp 0 0 0.0.0.0:5355 0.0.0.0:* 102 15522 829/systemd-resolve
udp 0 0 127.0.0.53:53 0.0.0.0:* 102 15530 829/systemd-resolve
udp 0 0 10.152.0.4:68 0.0.0.0:* 101 96631 599/systemd-network
udp 0 0 10.152.0.4:123 0.0.0.0:* 0 96928 27031/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 0 96926 27031/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 0 96922 27031/ntpd
udp6 0 0 :::5355 :::* 102 15525 829/systemd-resolve
udp6 0 0 fe80::4001:aff:fe98:123 :::* 0 96932 27031/ntpd
udp6 0 0 ::1:123 :::* 0 96930 27031/ntpd
udp6 0 0 :::123 :::* 0 96919 27031/ntpd
Это означает, что служба активна и прослушивает входящие соединения. Статус моего брандмауэра:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
80,443/tcp (Apache Full) ALLOW IN Anywhere
25/tcp (Postfix) ALLOW IN Anywhere
993 DENY IN Anywhere
587 DENY IN Anywhere
143/tcp (Dovecot IMAP) ALLOW IN Anywhere
993/tcp (Dovecot Secure IMAP) ALLOW IN Anywhere
465/tcp (Postfix SMTPS) ALLOW IN Anywhere
587/tcp (Postfix Submission) ALLOW IN Anywhere
22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
80,443/tcp (Apache Full (v6)) ALLOW IN Anywhere (v6)
25/tcp (Postfix (v6)) ALLOW IN Anywhere (v6)
993 (v6) DENY IN Anywhere (v6)
587 (v6) DENY IN Anywhere (v6)
143/tcp (Dovecot IMAP (v6)) ALLOW IN Anywhere (v6)
993/tcp (Dovecot Secure IMAP (v6)) ALLOW IN Anywhere (v6)
465/tcp (Postfix SMTPS (v6)) ALLOW IN Anywhere (v6)
587/tcp (Postfix Submission (v6)) ALLOW IN Anywhere (v6)
И в правилах брандмауэра облачной платформы Google:
Вроде как все ок, telnet localhost 993
возвращается
Trying 127.0.0.1...
Connected to localhost
Escape character is '^]'.
Connection closed by foreign host.
(Соединение сразу закрывается)
Когда я пытаюсь telnet <ipaddress> 993
с удаленного хоста он возвращает
Trying <ipaddress>...
telnet: Unable to connect to remote host: Connection timed out
Что я делаю не так?
Стоит проверить, включен ли на экземпляре SSH Guard (поскольку в Ubuntu он обычно включен по умолчанию). sshguard работает, отслеживая /var/log/auth.log, syslog-ng или журнал systemd на предмет неудачных попыток входа в систему. Для каждой неудачной попытки хост-нарушителю запрещается дальнейшее общение на ограниченное время.
Таким образом, вы можете просмотреть список текущих процессов, запущенных в GCE instace, выполнив: $ ps ax | grep ssh
А если запущен демон sshGuard, вы можете разблокировать свой ip, используя iptables или nftables, в зависимости от того, что настроено в системе. Чтобы разблокировать свой IP-адрес с помощью iptables, вы можете проверить, заблокирован ли ваш IP-адрес с помощью sshGuard, запустив: $ iptables --list sshguard --line-numbers --numeric
А чтобы разблокировать, вы можете запустить: $ iptables --delete sshguard line-number
В этой документации эта тема рассматривается глубже: https://wiki.archlinux.org/index.php/sshguard