2015-05-20 3 views
4

У меня есть повторяющаяся проблема с postfix (на Debian Squeeze, amavisd-new и fail2ban также установлены): внезапно, часто на ночь (но не всегда), доставка почты доставляется и очередь заполняется. Журнал показывает кучу записей этого стиля:Postfix - connect to 127.0.0.1 [127.0.0.1]: 10024: Connection failed)

May 18 19:54:16 ks4000003 postfix/error[6889]: 376352016039: to=<[email protected]>, relay=none, delay=0.62, delays=0.58/0.01/0/0.04, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to 127.0.0.1[127.0.0.1]:10024: Connection refused) 

Однажды я перезагрузку сервера, он затем работает (и очередь очищается). Он остается без проблем до следующего раза (обычно один раз каждые 1-2 недели, но недавно каждое утро мне приходится перезагружать сервер).

Любая идея об этом будет очень признательна. Я должен упомянуть, что я действительно новичок в управлении сервером; Я искал аналогичные проблемы в google/stackoverflow и не мог найти настоящего подобного.

Мой постфикса конф:

alias_database = hash:/etc/aliases 
alias_maps = hash:/etc/aliases 
always_add_missing_headers = yes 
append_dot_mydomain = no 
biff = no 
body_checks = regexp:/etc/postfix/body_checks 
broken_sasl_auth_clients = yes 
config_directory = /etc/postfix 
content_filter = amavis:[127.0.0.1]:10024 
header_checks = regexp:/etc/postfix/header_checks 
html_directory = /usr/share/doc/postfix/html 
inet_interfaces = all 
mailbox_size_limit = 0 
message_size_limit = 0 
mime_header_checks = regexp:/etc/postfix/mime_header_checks 
mydestination = ks4000003.ip-198-245-60.net, localhost, localhost.localdomain 
myhostname = ks4000003.ip-198-245-60.net 
mynetworks = 127.0.0.0/8 [::1]/128 
myorigin = /etc/mailname 
nested_header_checks = regexp:/etc/postfix/nested_header_checks 
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps 
readme_directory = /usr/share/doc/postfix 
receive_override_options = no_address_mappings 
recipient_delimiter = + 
relay_domains = mysql:/etc/postfix/mysql-virtual_relaydomains.cf 
relay_recipient_maps = mysql:/etc/postfix/mysql-virtual_relayrecipientmaps.cf 
relayhost = 
smtp_destination_concurrency_limit = 5 
smtp_destination_rate_delay = 1s 
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache 
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) 
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, check_client_access mysql:/etc/postfix/mysql-virtual_client.cf 
smtpd_error_sleep_time = 0 
smtpd_recipient_restrictions = check_client_access hash:/etc/postfix/rbl_whitelist, permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unknown_recipient_domain, reject_unauth_destination, reject_unverified_sender, reject_unauth_destination,reject_unlisted_recipient, reject_invalid_hostname, reject_non_fqdn_sender, reject_rbl_client cbl.abuseat.org, reject_rbl_client bl.spamcop.net, reject_rbl_client sbl.spamhaus.org, reject_rbl_client truncate.gbudb.net 
smtpd_sasl_auth_enable = yes 
smtpd_sasl_authenticated_header = yes 
smtpd_sasl_path = private/auth 
smtpd_sasl_security_options = noanonymous 
smtpd_sasl_type = dovecot 
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access mysql:/etc/postfix/mysql-virtual_sender.cf reject_non_fqdn_sender reject_unknown_sender_domain 
smtpd_tls_cert_file = /etc/postfix/smtpd.cert 
smtpd_tls_key_file = /etc/postfix/smtpd.key 
smtpd_tls_security_level = may 
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache 
smtpd_use_tls = yes 
transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf 
unknown_local_recipient_reject_code = 550 
virtual_alias_domains = 
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf 
virtual_gid_maps = static:5000 
virtual_mailbox_base = /var/vmail 
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf 
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf 
virtual_transport = dovecot 
virtual_uid_maps = static:5000 
+1

Проверьте журнал ошибок вашего постфикса./var/log/mail или так ;-). Процесс отправителя не мог подключиться к службе postfix. Возможно, журналы ошибок сообщают вам, почему. –

+0

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

+1

Я наблюдал, что проблема связана с подключением к порту 10024. Взгляните в постфиксную конфигурацию, Ah, фильтр содержимого amavis. Похоже, ваш амавистский процесс зависает или, по крайней мере, не принимает никаких связей. Я не знаю, где найти журналы amavis. Возможно, в почтовом журнале тоже. http://forums.fedoraforum.org/showthread.php?t = 170210 –

ответ

4

Во-первых к проблеме AMaViS: Согласно вы Pastebin: QMGR просит что-то из Amavis и получает ответ, он не понимает. Я предполагаю, что qmgr отправит почту amavis, которая должна быть проверена. Либо amavis не работает, либо почта вызывает amavis для получения коррумпированного ответа. Но как вы можете это проверить?

Лучший способ, чтобы остановить службу AMaViS и запустить его из консоли с

# amavisd debug 

Тогда AMaViS будет выводить на консоль. Вот ссылка, которая может помочь: http://www.amavis.org/#faq

Затем вопросы базы данных:

По вашему Pastebin: голубятня и постфикса пытаются подключиться к базе данных MySQL. postfix использует tcp-сокет с адресом localhost или 127.0.0.1, dovecot использует unix-сокет. Если вы не изменили конфигурацию для порта mysql, должен быть прослушивающий сокет по адресу 127.0.0.1:3306. Вполне возможно, что слушающий адрес является адресом IPv6, как :: 1: 3306

вы можете проверить, что с: netstat -ltn

Если вы configered другой порт, этот порт должен быть показан в NETSTAT выводе. Возможно, вы настроили свой mysql на свой исходящий IP-адрес. Тогда вы найдете что-то вроде 198.245.60.7:3306. Доступ к 127.0.0.1:3306 не будет работать в этом случае.

Сообщение об ошибке «постфикс» говорит, что на этом порту нет слушателя или у вас нет доступа. Сообщение «dovecot» говорит, что вы не предоставили никому или неправильный пароль для сервера mysql, чтобы он не аутентифицировал dovecot. Проверьте конфигурации.

+0

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

+1

Спасибо. Я хотел бы узнать ваши выводы. Кстати: если вы связали mysql с внешним адресом, вы должны переназначить его на localhost. Если ваш брандмауэр не блокирует resp. порт, даже скрипт kiddys может войти в вашу базу данных. –

+0

Извините, я должен предупредить вас, что вы не публикуете свой вывод netstat. Хакер может использовать его для атаки ваших услуг. Например, он увидит, что есть четыре сетевых карты и есть адреса и открытый порт dns. Пожалуйста, удалите его из pastebin, если возможно, кстати. Выход кажется мне подходящим. И да, я думаю, что ваш вопрос не должен быть опущен. Поэтому +1 –

Смежные вопросы