Назад | Перейти на главную страницу

Пытаюсь настроить почтовый сервер, не удается заставить работать порты (25, 587)

Я искал везде, и я действительно борюсь с этим. Думаю, я пробовал практически все.

Справочная информация

Что я сделал

Вещи, которые я пробовал

1) Порты открыты? Да, iptables:

Chain INPUT (policy DROP 11 packets, 1375 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:587
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:587
   25  2579 f2b-dovecot  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 110,995,143,993,587,465,4190
   68  7788 f2b-postfix  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 25,465,587
    0     0 f2b-sshd   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 22
   25  2579 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:143
    7   600 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8080
23464 2662K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
   49  2940 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:3915
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:143
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:587
    5   300 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 23235 packets, 2494K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain f2b-dovecot (1 references)
 pkts bytes target     prot opt in     out     source               destination
   25  2579 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain f2b-postfix (1 references)
 pkts bytes target     prot opt in     out     source               destination
   68  7788 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain f2b-sshd (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

2) Postfix слушает порт 587? Да. Он слушает только на локальном хосте? Нет, любой хозяин.

Вот netstat:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      7173/master
tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   LISTEN      917/httpd
tcp        0      0 127.0.0.1:4190              0.0.0.0:*                   LISTEN      749/dovecot
tcp        0      0 0.0.0.0:587                 0.0.0.0:*                   LISTEN      7173/master
tcp        0      0 0.0.0.0:143                 0.0.0.0:*                   LISTEN      749/dovecot
tcp        0      0 127.0.0.1:24                0.0.0.0:*                   LISTEN      749/dovecot

А вот и postfix / main.cf на всякий случай:

# Enable both IPv4 and/or IPv6: ipv4, ipv6, all.
inet_protocols = ipv4

# Enable all network interfaces.
inet_interfaces = all

3) Правильно ли вы устанавливаете безопасные соединения? Насколько мне известно, да, вот postfix / master.cf:

# Submission, port 587, force TLS connection.
submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
  -o content_filter=smtp-amavis:[127.0.0.1]:10026

4) А как насчет ограничений smtpd? Вроде нормально:

# HELO restriction
smtpd_helo_required = yes
smtpd_helo_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    reject_non_fqdn_helo_hostname
    reject_invalid_helo_hostname
    check_helo_access pcre:/etc/postfix/helo_access.pcre

5) Постфикс вообще нормально работает?

Да, вход на сервер и отправка тестового письма с консоли работают, и электронная почта принимается на другом конце, то есть:

echo "Test mail from postfix" | mail -s "Test Postfix" user@something.com

6) Что происходит при подключении к порту 587?

Видимо, вообще ничего. Если я попытаюсь подключиться к любому случайному порту по telnet, я хоть что-нибудь получу. Например, попытка telnet на порт 666 (который не открыт) не дает ответа клиенту, но, по крайней мере, я получаю что-то в tcpdump:

15:22:20.305697 IP xxx > xxx.com.mdqs: Flags [S], seq 3195304468, win 8192, options [mss 1352,nop,wscale 8,nop,nop,sackOK], length 0

Когда tcpdumping порт 587, абсолютно ничего не происходит при попытке подключиться к нему через telnet.

Что мне еще не хватает?

Все вышеперечисленное исчерпывает мои знания о том, что я еще могу попробовать. Мне удалось пригвоздить его к тому, что мой порт 587 был полностью заблокирован чем-то. Как я уже сказал, мой провайдер VPS подтвердил, что они вообще не блокируют никакие порты. Пробовал порт 25 и та же история.

Единственное, что я вижу, это то, что я каким-то образом заблокировал эти порты при настройке моего сервера, но я не могу вспомнить, так ли это, и я не знаю, как это проверить.

Буду очень признателен за любую помощь, которую вы можете мне оказать. На самом деле, я покупаю пиво тем, кто помогает мне решить эту проблему., Я уже потратил на это два дня, и это начинает сильно раздражать.

Ричергилт, добро пожаловать в Сан-Франциско и спасибо за отличный первый вопрос. Вам может казаться, что мы вас спасли, но, честно говоря, вы уже сделали всю тяжелую работу и представили ее очень систематично. Я надеюсь, что с таким криминалистическим мышлением вы останетесь в этих местах еще какое-то время.

В tcpdump вывод особенно ужасающий. Это вне всяких разумных сомнений доказывает, что ваши попытки подключиться даже не достигают вашего сервера, что снимает ответственность с брандмауэра сервера, postfixпривязки и все остальное на стороне сервера.

Вооружившись указателем, вы ушли и подтвердили, что исходящий подключения были заблокированы, поэтому ваши тесты никогда не доходили до вашего сервера. Это довольно (удручающе) нормально, когда 25 (и в меньшей степени 587) блокируются исходящие из современных сетей, потому что ботнеты, рассылающие спам, используют их.

В любом случае, теперь вы счастливы, что ваш новый почтовый сервер работает так, как рекламируется, и это хорошо.