LINUX.ORG.RU
ФорумAdmin

Как заставить Postfix доставлять почту


0

0

Коллеги - знатоки МТА Postfix. Никак не могу заставить его правильно функционировать. Скачал версию 2.1.4 и скомпилировал. Fetchmail забирает письмо с ящика на mail.ru и передает его postfix'у для локальной доставки. Но доставки не происходит, хотя локальный пользователь sss существует. Ниже приведен лог почты.
Aug 20 19:10:01 proxy1 postfix/smtpd[28702]: connect from unknown[127.0.0.1]
Aug 20 19:10:01 proxy1 postfix/proxymap[28703]: warning: cannot access UNIX password database: Permission denied
Aug 20 19:10:01 proxy1 postfix/smtpd[28702]: NOQUEUE: reject: RCPT from unknown[127.0.0.1]: 451 <sss@localhost>: Temporary lookup failure; from=<sssf@arc.vr.ru> to=<sss@localhost> proto=ESMTP helo=<localhost>
Aug 20 19:10:01 proxy1 postfix/cleanup[28705]: A9DB91B42AE: message-id=<20040820151001.A9DB91B42AE@proxy1.mup-uga.vrn.ru>
Aug 20 19:10:01 proxy1 postfix/smtpd[28702]: disconnect from unknown[127.0.0.1]
Aug 20 19:10:01 proxy1 postfix/qmgr[26253]: A9DB91B42AE: from=<double-bounce@proxy1.mup-uga.vrn.ru>, size=856, nrcpt=1 (queue active)
Aug 20 19:10:01 proxy1 postfix/local[28706]: A9DB91B42AE: to=<root@proxy1.mup-uga.vrn.ru>, orig_to=<postmaster>, relay=local, delay=0, status=bounced (unknown user: "root")
Aug 20 19:10:01 proxy1 postfix/bounce[28707]: warning: A9DB91B42AE: undeliverable postmaster notification discarded
Aug 20 19:10:01 proxy1 postfix/qmgr[26253]: A9DB91B42AE: removed
Если заставить fetchmail доставить почту пользователю postmaster, то по логам доставка обрывается на сообщении:
Aug 20 19:35:43 proxy1 postfix/smtp[30223]: fatal: unknown service: smtp/tcp
Aug 20 19:35:44 proxy1 postfix/qmgr[26253]: warning: premature end-of-input on private/smtp socket while reading input attribute name
Aug 20 19:35:44 proxy1 postfix/qmgr[26253]: warning: private/smtp socket: malformed response
Aug 20 19:35:44 proxy1 postfix/qmgr[26253]: warning: transport smtp failure -- see a previous warning/fatal/panic logfile record for the problem description
Aug 20 19:35:44 proxy1 postfix/master[24081]: warning: process /usr/libexec/postfix/smtp pid 30223 exit status 1
Aug 20 19:35:44 proxy1 postfix/master[24081]: warning: /usr/libexec/postfix/smtp: bad command startup -- throttling
Не знаю, что и делать. Файлы конфигурации особо не правил.
Очень прошу помочь.

С уважением sss

anonymous

Aug 20 19:10:01 proxy1 postfix/proxymap[28703]: warning: cannot access UNIX password database: Permission denied

Судя по этому, у тебя файл /etc/shadow недоступен для postfix.

А вообще, ощущение такое, что у тебя косяки с правами.

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

Я ничего не менял в правах доступа к файлам /etc/shadow (0400) и /etc/passwd (0644). Как было после установке, так и осталось. Специально проверял на свежеустановленном дистрибутиве. Не знаю на что и пенять. FAQ самого Postfix'а объясняет подобные ошибки лишь в случае запуска в chroot окружении. У меня судя по файлу master.cf это не так. Вообщем еще прошу помощи.

sss

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

Как минимум - проверь postfix без fetchmail. Сделай так:

$ telnet localhost 25
...
MAIL FROM: <test@localhost>
...
RCPT TO: <sss@localhost>
...
DATA
...
Subject: test
From: test@localhost

123456789
.

После этого посмотри что будет в логах.

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

Проверял, уже. Вываливается ошибка: fatal: unknown service: smtp/tcp Самое интересное, что на свеустановленном дистре переключение на postfix происходит без проблем и ошибок. Конфиги одинаковы. Но эту конкретнро машину перебить сейчас не могу - всего много там.

sss

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

Пожалуйста:

[sss@proxy1 sss]# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
default_privs = nobody
html_directory = no
inet_interfaces = all
local_recipient_maps = unix:passwd.byname $alias_maps
mail_owner = postfix
mailq_path = /usr/bin/mailq
manpage_directory = /usr/local/man
mydomain = arc.vr.ru
myhostname = proxy1.arc.vr.ru
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 450

master.cf
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
#submission inet n - n - - smtpd
# -o smtpd_etrn_restrictions=reject
#628 inet n - n - - qmqpd
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
#qmgr fifo n - n 300 1 oqmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
smtp unix - - n - - smtp
-o myhostname-proxy1.mup-uga.vrn.ru
relay unix - - n - - smtp
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - n - - showq
error unix - - n - - error
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
#
smtp-local unix - - n - - smtp
-o myhostname-proxy1.arc.vr.ru

Вот иак, вообщем. Что делать хз. Прошу помощи.

sss

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

Настораживает то, что у тебя ни local_transport, ни mydestination нет...

======================================================
$ postconf -n
...
local_recipient_maps = unix:passwd.byname $alias_maps
local_transport = local
mydestination = $myhostname
...
======================================================

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

На самом деле эти параметры есть. Именно такие, только они идут по умолчанию из main.cf.default.
По поводу faq скажу следующее, я, конечно, прежде чем обоататся в форум смотрел и faq и искал по гуглу. Но там ответы в основном касающиеся проблем postfix при запуске в chroot. У меня вроде такого нет (судя по значениям в master.cf). Postfix не работал ни из дистрибутива, ни сейчас - компиленнный. Причем выдает одни и теже ошибки. Следовательно, что-то в системе ему не нравится. Прошу помощи, так как сроки поджимают.

sss

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

Трудно что-то посоветовать, когда нечего посоветовать. :).

1). Смотри ниже мой конфиг. Он работает для нескольких виртуальных доменов + для локального хоста.
2). Попробуй поставить точно такую же систему на стенде (сначала с дефолтными конфигами, потом с конфигами с боевого сервера). Если стенд заработает, то ищи отличие твоей рабочей системы от системы на стенд.
3). Если будет совсем плохо - оставляй координаты. Бум выезжать на место. ;)

# postconf -n
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
disable_vrfy_command = yes
inet_interfaces = localhost, 1.2.3.4, 1.2.3.5, mx1.zzzdomain.net
local_recipient_maps = unix:passwd.byname $alias_maps
local_transport = local
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = plain.zzzdomain.net mail.zzzdomain.net
myhostname = mail.zzzdomain.net
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.0.16/README_FILES
sample_directory = /usr/share/doc/postfix-2.0.16/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 450
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_gid_maps = static:5000
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_domains = hash:/etc/postfix/vmaildomains
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
virtual_transport = virtual
virtual_uid_maps = static:5000

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

Файл master.cf не покажешь?
Я в master.cf изменил строки
smtp inet n - n - - smtpd
smtp unix - - n - - smtp на
smtp inet n - y - - smtpd
smtp unix - - y - - smtp
(я так понимаю, что включил chroot-запуск демонов или я не прав)
после этого проблема с fatal: "unknown service: smtp/tcp" вроде пропала. Осталась проблема с "warning: cannot access UNIX database: Permission denied". Проверил все права - нормально. Скопировал файл passwd в /var/spool/postfix/etc. Что ему надо не пойму. И появилась проблема с неопределением в dns имени хоста на котором postfix и запускается.
моя аська - 259812058, если что

sss

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

master.cf штатный:

==================================================================
smtp inet n - n - - smtpd
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 nqmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
showq unix n - n - - showq
error unix - - n - - error
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
old-cyrus unix - n n - - pipe
flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
cyrus unix - n n - - pipe
user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
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=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
==================================================================

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

Так вот и не пойму, почему возникает ошибка по доступу к паролям? Вроде сделал как написано в факе. Тем не менее возникает ошибка "warning: cannot access UNIX password database: Permission denied". И еще вопрос - для локальной доставки к существующем пользователям можно ли просто использовать postfix или необходимо procmail поднимать?

sss

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

> Так вот и не пойму, почему возникает ошибка по доступу к паролям? Вроде сделал как написано в факе. Тем не менее возникает ошибка "warning: cannot access UNIX password database: Permission denied".

Смотри куда у тебя делается chroot и что там лежит.
Или убери наконец chroot :)

> И еще вопрос - для локальной доставки к существующем пользователям можно ли просто использовать postfix или необходимо procmail поднимать?

postfix достаточно.

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

Есть chroot или нет его сообщение о недостатке прав все равно появляется.

sss

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.