LINUX.ORG.RU
решено ФорумAdmin

postfix не открывает 25-ый порт

 , , ,


0

1

Запускается, пишет ok:

 # /etc/init.d/postfix start
 * Starting postfix  ...                                                                                                                                [ ok ]
однако слушать порт не начинает:
# ss -4l
State      Recv-Q Send-Q                                             Local Address:Port                                                 Peer Address:Port   
LISTEN     0      50                                                     127.0.0.1:mysql                                                           *:*       
LISTEN     0      128                                                            *:pop3                                                            *:*       
LISTEN     0      128                                                            *:imap                                                            *:*       
LISTEN     0      128                                                            *:http                                                            *:*       
LISTEN     0      128                                                            *:ssh                                                             *:*       
LISTEN     0      128                                                            *:https                                                           *:*  

# grep «smtp» /etc/postfix/master.cf

smtp      inet  n       -       n       -       -       smtpd -v
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
        -o smtp_fallback_relay=

в логах при запуске ничего не появляется, syslog-ng настроен так:

# grep "mail" /etc/syslog-ng/syslog-ng.conf | grep -v "#"
destination mail { file("/var/log/mail/mail.log"); };
destination mailinfo { file("/var/log/mail/mail.info"); };
destination mailwarn { file("/var/log/mail/mail.warn"); };
destination mailerr { file("/var/log/mail/mail.err"); }; 
filter f_mail { facility(mail); };
log { source(src); filter(f_mail); destination(mail); };
log { source(src); filter(f_mail); filter(f_info); destination(mailinfo); };
log { source(src); filter(f_mail); filter(f_warn); destination(mailwarn); };
log { source(src); filter(f_mail); filter(f_err); destination(mailerr); }; 

выдержки из /etc/postfix/main.cf:

# grep "my" /etc/postfix/main.cf
virtual_mailbox_domains=mysql:/etc/postfix/mysql/mysql-virtual-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql/mysql-virtual-maps.cf
virtual_uid_maps = mysql:/etc/postfix/mysql/mysql-virtual-uid.cf
virtual_gid_maps = mysql:/etc/postfix/mysql/mysql-virtual-gid.cf
myhostname = mydomain.ru
mydomain = mydomain.ru
mydestination = localhost
mynetworks = 192.168.9.0/24, 192.168.8.0/24, 192.168.7.0/24, 192.168.6.0/24, 127.0.0.0/8
здесь mydomain.ru я заменил из скромности

слушать вроде бы должен всё:

 # postconf -n | grep inet
inet_interfaces = all
inet_protocols = ipv4

С какой стороны начинать копать?

smtp inet n - n - - smtpd -v

smtp inet n - n - - smtpd -vv

И что в логах то же ничего нет ?

vlb ★★★ ()

А при этом другие процессы postfix'а запускаются и есть в списке процессов (pickup qmgr)?

Проверьте отправкой сообщений с помощью logger, что syslog работает и записывает в файлы mail.info и др. типы сообщений. ЕМНИП, у syslog-ng бывает очень большие кеши сообщений в ОЗУ.

Запустите ″/usr/bin/postfix check″.

mky ★★★★★ ()
Ответ на: комментарий от StrongDollar

# postfix check

# postfix set-permissions

Рестарт syslog- a ?

А файл /var/log/mail/mail.log существует ?

Может быть /var/log/maillog?

Что за система ?

vlb ★★★ ()

# grep «mail» /etc/syslog-ng/syslog-ng.conf | grep -v «#»

Для начала настрой отладочный лог, в который будет сыпаться вообще всё, без никаких исключений

router ★★★★★ ()
Ответ на: комментарий от vlb

Рестарт syslog- a ?

да! а потом останов/запуск постфикса

# postfix check

никакого эффекта

# postfix set-permissions

никакого эффекта

Что за система ?

gentoo, syslog-ng, настройки в первом сообщении

StrongDollar ()
Ответ на: комментарий от mky

А при этом другие процессы postfix'а запускаются

как это выяснить?

и есть в списке процессов (pickup qmgr)?

нет, их нет в списке процессов.

Проверьте отправкой сообщений с помощью logger, что syslog работает и записывает в файлы mail.info и др. типы сообщений.
ЕМНИП, у syslog-ng бывает очень большие кеши сообщений в ОЗУ.

проверил, записывает:

# logger -p mail.warn "Mail warining"
# logger -p mail.info "Mail info"
# logger -p mail.error "Mail error"
# cat /var/log/mail/mail.log
Feb  2 20:08:25 test154 nobody: Mail warining
Feb  2 20:08:32 test154 nobody: Mail info
Feb  2 20:08:39 test154 nobody: Mail error

Запустите ″/usr/bin/postfix check″.

ничего не происходит:

#/usr/sbin/postfix check
#

StrongDollar ()
Ответ на: комментарий от router

Для начала настрой отладочный лог

посмотри выше по треду и уточни, что именно ты имеешь в виду.

StrongDollar ()
Ответ на: комментарий от StrongDollar

В контексте syslog-ng? А может сам догадаешься?

router ★★★★★ ()
Ответ на: комментарий от router

нет, сам не догадался. иначе бы я написал, «ага, всё понятно».

выше написано, что syslog-ng я протестировал при помощи logger, всё работает.

Я думаю, что не запускается postfix. Что делать, чтобы запускался - мне непонятно.

StrongDollar ()
Ответ на: комментарий от StrongDollar

Хорошо, вот развёрнутый комментарий.

В заголовке топика ты привёл строки, которые на твой взгляд должны записать в логи все сообщения от postfix. Для меня не очевидно что ты предусмотрел всё. Более того, строка с описанием проблемы может не иметь facility == mail. Сюрприз. Поэтому добавь ещё один лог, в который будет писатьсь вообще всё, без исключений. Перезапускай postfix и смотри что в этот лог упадёт

log { source(src); destination(d_debug); };

Я достаточно понятно выражаюсь?

router ★★★★★ ()
Ответ на: комментарий от router

Я достаточно понятно выражаюсь?

теперь да.

Такой лог тоже есть, это /var/log/messages.
Там тоже ничего нет.

StrongDollar ()
Ответ на: комментарий от StrongDollar

Тогда я бы посмотрел init скрипт для postfix, и в изменил цель start для запуска postfix не непосредственно, а через strace

Т.е. вместо, например,

/usr/sbin/postfix start 2>/dev/null 1>&2 && success || failure $«$prog start»

добавить

/usr/bin/strace -f -ff -s 2048 -o /tmp/postfix_trace /usr/sbin/postfix start && success || failure $«$prog start»

Кстати, если у тебя есть >/dev/null, убери. Может и strace не понадобится

router ★★★★★ ()

С какой стороны начинать копать?

Версия постфикса ?

vlb ★★★ ()
Ответ на: комментарий от router

да, теперь всё наладилось.

надо было etc-update тщательнее делать.
в старом было:
daemon_directory = /usr/lib64/postfix
а в новом стало:
daemon_directory = /usr/libexec/postfix

из-за этого не запускался

execve("/usr/lib64/postfix/postfix-script", ["/usr/lib64/postfix/postfix-script", "start"], [/* 18 vars */]) = -1 ENOEXEC (Exec format error)

StrongDollar ()
Ответ на: комментарий от StrongDollar
2012-07-23-upgrading-postfix
  Title                     Upgrading to postfix-2.9
  Author                    Eray Aslan <eras@gentoo.org>
  Posted                    2012-07-23
  Revision                  1

Daemons for >=mail-mta/postfix-2.9 are installed under
/usr/libexec/postfix.  Please do not forget to adjust your main.cf by
running etc-update/dispatch-conf or similar and accepting the new
daemon_directory setting.  Otherwise, postfix will not be able to find
the binaries it is looking for. 
StrongDollar ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.