Приветствую уважаемые! Есть очень слабенький почтовый сервер на Freebsd 7.2. Случилась вот какая неприятность, вздумалось прикрутить к postfix-у spamassassin, но он потребовал обновить perl, т.к. на сервере был 5.8.3, а убивец спама затребовал более свежую версию. Я решил обновить perl. Сразу на 5.14 он меня послал, и я решил ограничится 5.10. После установки 5.10 postfix упал. Я долго мучался поисками и не придумал ничего лучше, чем пройтись по системе portupgrade -afrR
Он долго пыжился пересобирая всё и вся, но к положительному результату так и не пришёл. Вопчем в лог сыплет теперь вот что:/usr/local/sbin/postconf: warning: /usr/local/etc/postfix/main.cf: unused parameter: virtual_maildir_limit_message="Sorry, the user's maildir has overdrawn his diskspace quota, please try again later"
/usr/local/sbin/postconf: warning: /usr/local/etc/postfix/main.cf: unused parameter: virtual_mailbox_limit_maps=mysql:$base/mysqlLookupMaps/quota.conf
/usr/local/sbin/postconf: warning: /usr/local/etc/postfix/main.cf: unused parameter: virtual_mailbox_limit_override=yes
/usr/local/sbin/postconf: warning: /usr/local/etc/postfix/main.cf: unused parameter: virtual_maildir_extended=yes
/usr/local/sbin/postconf: warning: /usr/local/etc/postfix/main.cf: unused parameter: virtual_overquota_bounce=yes
/usr/local/sbin/postconf: warning: /usr/local/etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes
/usr/local/sbin/postconf: warning: /usr/local/etc/postfix/main.cf: unused parameter: smtpd_sasl_application_name=smtpd
/usr/local/sbin/postconf: warning: /usr/local/etc/postfix/master.cf: unused parameter: content-filter=Postfix, mysql, smtpd, squid, всё стартует.
Вот rc.conf:
ifconfig_fxp0="inet 192.168.0.125 netmask 255.255.255.0"
ifconfig_rl0="inet 192.168.1.23 netmask 255.255.255.224"defaultrouter="192.168.1.16"
hostname="relay.nesterova.ru"static_routes='net'
route_net="-net 192.168.100.0/24 192.168.0.248"sshd_enable="YES"
font8x8="cp866-8x8"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
scrnmap="koi8-r2cp866"
keyrate="fast"
keymap="ru.koi8-r"apache22_enable="YES"
courier_authdaemond_enable="YES"
courier_imap_pop3d_enable="YES"sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"postfix_enable="YES"
mysql_enable="YES"
squid_enable="YES"
squid_flags="-D -f /usr/local/etc/squid/squid.conf"firewall_enable="YES"
# added by ./+POST-INSTALL at ЧПУЛТЕУЕОШЕ, 22 ОПСВТС 2009 З. 00:29:50 (MSK)
postfix_mastercf='/usr/local/etc/postfix/master.cf'Вот main.cf:
#
# /usr/local/etc/postfix/main.cf
## LOCAL PATHNAME INFORMATION
#
queue_directory = /var/spool/postfix# postXXX (postmap, postconf, postdrop)
command_directory = /usr/local/sbin#
#
base = /usr/local/etc/postfix#
#
daemon_directory = /usr/local/libexec/postfix# QUEUE AND PROCESS OWNERSHIP
#
#
mail_owner = postfix#
default_privs = nobody# INTERNET HOST AND DOMAIN NAMES
#
myhostname = relay.mydomain.ru#
mydomain = mydomain.ru# SENDING MAIL
#
#
#
#
# myorigin = $myhostname ( : "alex@mail.akko.com.ua")
# myorigin = $mydomain ( : "alex@akko.com.ua")
myorigin = $mydomain# RECEIVING MAIL
#
#
inet_interfaces = all#
#
#
mydestination = $myhostname, localhost.$mydomain, localhostlocal_transport = virtual
# REJECTING MAIL FOR UNKNOWN LOCAL USERS
#
#
#local_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps, $alias_maps
local_recipient_maps = unix:passwd.byname $alias_maps# TRUST AND RELAY CONTROL
#
#
#
#
mynetworks = 127.0.0.0/8
#relayhost = $mydomain
relay_domains =# ALIAS DATABASE
#
#
#
#
alias_maps = hash:/etc/mail/aliases
alias_database = hash:/etc/mail/aliases# JUNK MAIL CONTROLS
#
# The controls listed here are only a very small subset. The file
# SMTPD_ACCESS_README provides an overview.
#header_checks = regexp:$base/header_checks# SHOW SOFTWARE VERSION OR NOT
#
#
smtpd_banner = $myhostname ESMTP# DEBUGGING CONTROL
#
debug_peer_level = 1
#debug_peer_list = 127.0.0.1, mydomain.ru, domain.ru# RESTRICTIONS
#
# client, helo, sender, recipient, data, end-of-data
#
#smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated,
check_client_access hash:$base/client_access,
reject_unknown_client_hostname
#
smtpd_helo_restrictions = check_helo_access hash:$base/hello_access,
permit_mynetworks,
permit_sasl_authenticated,
reject_invalid_helo_hostname,
reject_non_fqdn_helo_hostname,
reject_unknown_helo_hostname
smtpd_sender_restrictions = permit_mynetworks,
check_sender_access hash:$base/sender_access,
reject_authenticated_sender_login_mismatch,
reject_unknown_sender_domain,
reject_unlisted_sender
# reject_unverified_sender#permit_sasl_authenticated,
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
check_recipient_access hash:$base/recipient_access,
reject_unlisted_recipient,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unverified_recipient#permit_mynetworks,
#
smtpd_data_restrictions = reject_unauth_pipelining,
reject_multi_recipient_bounce#
smtpd_etrn_restrictions = reject#
smtpd_reject_unlisted_sender = yes#
#
disable_vrfy_command = yes#
#
strict_rfc821_envelopes = yes#
# yes: User unknown in virtual mailbox table
# no: User unknown
show_user_unknown_table_name = no#
address_verify_sender = <>#
#
unverified_sender_reject_code = 550#
#
smtpd_helo_required = yes#
smtp_always_send_ehlo = yes#
smtpd_hard_error_limit = 8#
#smtpd_timeout = 120s#
#smtp_helo_timeout = 60s#
#smtp_mail_timeout = 60s#
#smtp_rcpt_timeout = 90s#
smtpd_sasl_auth_enable = yes#
smtpd_sasl_application_name = smtpd#
broken_sasl_auth_clients = yes#
smtpd_sasl_security_options = noanonymous# Optional lookup table with the SASL login names
# that own sender (MAIL FROM) addresses
smtpd_sender_login_maps = mysql:$base/mysqlLookupMaps/sender.conf
#
transport_maps = mysql:$base/mysqlLookupMaps/transport.conf
#
virtual_alias_maps = mysql:$base/mysqlLookupMaps/alias.conf
#
virtual_mailbox_domains = mysql:$base/mysqlLookupMaps/domain.conf
#
virtual_mailbox_maps = mysql:$base/mysqlLookupMaps/mailbox.conf
virtual_mailbox_base = /var/spool/mail
#
virtual_mailbox_limit_maps = mysql:$base/mysqlLookupMaps/quota.conf
virtual_maildir_extended=yes
virtual_mailbox_limit_override=yes
virtual_create_maildirsize = yes
virtual_overquota_bounce = yes
virtual_maildir_limit_message="Sorry, the user's maildir has overdrawn his diskspace quota, please try again later"#
message_size_limit = 35242880
# 1979 - uid gid virtual
virtual_gid_maps = static:1979
virtual_uid_maps = static:1979
virtual_minimum_uid = 1979
readme_directory = /usr/local/share/doc/postfix
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
html_directory = /usr/local/share/doc/postfix
setgid_group = maildrop
manpage_directory = /usr/local/man
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
data_directory = /var/db/postfix
inet_protocols = ipv4
Подскажите, где и что искать. К сожалению, этот сервер делал не я, а я postfix вообще до этого не щупал.З.Ы. ip и домены переименованы
> Приветствую уважаемые! Есть очень слабенький почтовый сервер на Freebsd 7.2. Случилась
> вот какая неприятность, вздумалось прикрутить к postfix-у spamassassin, но он потребовал
> обновить perl, т.к. на сервере был 5.8.3, а убивец спама затребовал
> более свежую версию. Я решил обновить perl. Сразу на 5.14 он
> меня послал, и я решил ограничится 5.10. После установки 5.10 postfix
> упал.Постфикс вообще-то никак от перла не зависит.
> Я долго мучался поисками и не придумал ничего лучше, чем
> пройтись по системе portupgrade -afrRСначала делаем, а потом думаем .. что же теперь делать. ССЗБ.
По теме: постфикс собран без требуемых для работы опций. идем в порты и пересобираем, включив нужное.
> По теме: постфикс собран без требуемых для работы опций. идем в порты
> и пересобираем, включив нужное.Большое спасибо за внимание. Подскажите пжалста, а как определить что нужно включить?
>> По теме: постфикс собран без требуемых для работы опций. идем в порты
>> и пересобираем, включив нужное.
> Большое спасибо за внимание. Подскажите пжалста, а как определить что нужно включить?Подскажите, кто-нить, как поднять сервер???
/usr/local/sbin/postconf: warning: /usr/local/etc/postfix/main.cf: unused parameter: virtual_maildir_limit_message="Sorry, the user's maildir has overdrawn his diskspace quota, please try again later"постфикс собран без вда патча потомучто
> Подскажите, кто-нить, как поднять сервер???
отапгрейдился на 2.9, а для 2.9 патча нету http://vda.sourceforge.net/. На него забил бразильянин ленивый. Поэтому все эти инструкции можно выковырнуть из конфига и делать квоты через dovecot. Тока сперва dovecot назначить ответственным за локальную доставку или вообще без квот
> отапгрейдился на 2.9, а для 2.9 патча нету http://vda.sourceforge.net/. На него забил
> бразильянин ленивый. Поэтому все эти инструкции можно выковырнуть из конфига и
> делать квоты через dovecot. Тока сперва dovecot назначить ответственным за локальную
> доставку или вообще без квотВот ты отжигаешь, ты думаешь топикстартер на такие финты способен ?
> отапгрейдился на 2.9, а для 2.9 патча нету http://vda.sourceforge.net/. На него забил
> бразильянин ленивый. Поэтому все эти инструкции можно выковырнуть из конфига и
> делать квоты через dovecot. Тока сперва dovecot назначить ответственным за локальную
> доставку или вообще без квотБольшущее спасибо, за уделённое время! В принципе, у меня были подозрения, что проблема в этом, т.к. postfix отказывался собираться с поддержкой VDA. Я попробовал даунгрейдить порт, но он что-то не выходит. Пока не могу понять почему. Уж простите, что такие вопросы задаю - новичёк во FreeBSD и в Postfix. Как-то больше на Windows сидел, но жысь заставила - обидно, что надо как всегда, вчера. Даю честное пионерское - разберусь обязательно, но сейчас нужна помощь.
При попытке даунгрейда порта пишет:
/usr/local/sbin/portdowngrade -s "anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs"Seeking port mail/postfix ...
Found several matches:
1: mail/postfix
2: mail/postfix-current
3: mail/postfix-gps
4: mail/postfix-logwatch
5: mail/postfix-policyd-sf
6: mail/postfix-policyd-spf-perl
7: mail/postfix-policyd-spf-python
8: mail/postfix-policyd-weight
9: mail/postfix-postfwd
10: mail/postfix25
11: mail/postfix26
12: mail/postfix27
13: mail/postfix28
14: mail/postfixadminPlease choose one: 1
Downgrading port: mail/postfix
Step 1: Checking out port from CVS repository
CVS root directory: anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
ssh: connect to host anoncvs.tw.FreeBSD.org port 22: Permission denied
cvs [checkout aborted]: end of file from server (consult above messages if any)
portdowngrade error: Can not check out port mail/postfixAn error had occured. If this was an cvs error, try another cvs server.
If this was an cvs login error, try the -o option.то же самое и на других, предложенных тут: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/an... серверах. Что делать? Dovecot не видел никогда. Сложно будет через него сделать? Просто сложность в том, что я не до конца понимаю как вообще это работает. Заранее спасибо.
>>>Есть очень слабенький почтовый сервер на Freebsd 7.2.Не надо даунгрейдить. VDA патч занимается квотированием.
Если сервер слабенький, то квоты вам, скорее всего, не нужны.Ну, или от них, по крайней мере, можно отказаться на время и разобраться как их реализовать с использованием dovecot.
Квоты на dovecote это: а) независимость от медленно выходящего патча б) интересная возможность чистить Trash & Junk (ну, если imap пользователь использует) автоматически, если квота превышена, а пришло новое письмо.
Сам dovecot в качестве lda - это ещё и возможность писать sieve скрипты (для обработки почты на сервере). Вобщем, один сплошной шоколад, а не трагедия
Крч, выпилите из конфига эти параметры и не парьтесь
P.S. unused parameter - по ихнему "неиспользуемый параметр", а совсем не "ппц всё пропало!". Т.е. вообще можно забить на эти сообщения. Может бразильянин родит однажды
> P.S. unused parameter - по ихнему "неиспользуемый параметр", а совсем не "ппц
> всё пропало!". Т.е. вообще можно забить на эти сообщения. Может бразильянин
> родит однаждыТак проблема в том, что не работает. Процессы вроде все на месте, а почту клиенты забрать не могут. А я не могу понять где грабли
> а почту клиенты забрать не могут.Забрать почту это не к постфиксу.
>> а почту клиенты забрать не могут.
> Забрать почту это не к постфиксу.раздачами пользователям занимается dovecot или courier или ещё какая бесовская программа
>>> а почту клиенты забрать не могут.
>> Забрать почту это не к постфиксу.
> раздачами пользователям занимается dovecot или courier или ещё какая бесовская программаМне нужно как можно быстрее вернуть сервер в строй. Насколько я понимаю, иначе как даунгрейдом не обойтись, помогите с даунгрейдом, где зарылась собака??? С dovecot и прочим потом разберусь самостоятельно, благо инфы вроде навалом всякой. Мне сейчас очень важно сервер в строй вернуть. Помогите пжалста
> всякой. Мне сейчас очень важно сервер в строй вернуть. Помогите пжалста
>>
>а почту клиенты забрать не могут.
>>Забрать! забрать! забрать? Забирать по POP3 или IMAP4. Забирать по POP3 или IMAP4. Забирать не postfix, не postfix.
Ну так после обновления упал сервер, раздающий пользователю почту по протоколам IMAP4 или POP3. Не postfix, не postfix.
Не даёт отправить или не получает с других серверов - виноват postfix
Не раздаёт пользователям - виноват не postfix, а dovecot или courier. Я не знаю что у вас стоит.Поднимите его и всё заработает. Постфикс не будет раздавать пользователям почту как бы вы его не даунгрейдили. Unused param в данном случае не критично и причиной проблем не является
smtp протокол - postfix
pop3, imap4 - не postfix, не postfix. Отличное от postfix. Разное, другое, не такое.Скачайте windows, MDaemon и не мучайте себя.
>[оверквотинг удален]
> Не даёт отправить или не получает с других серверов - виноват postfix
> Не раздаёт пользователям - виноват не postfix, а dovecot или courier. Я
> не знаю что у вас стоит.
> Поднимите его и всё заработает. Постфикс не будет раздавать пользователям почту как
> бы вы его не даунгрейдили. Unused param в данном случае не
> критично и причиной проблем не является
> smtp протокол - postfix
> pop3, imap4 - не postfix, не postfix. Отличное от postfix. Разное, другое,
> не такое.
> Скачайте windows, MDaemon и не мучайте себя.Не обижайтесь пжалста. Я понимаю, что пишу как чайник. С MDaemon и пр. разобрался бы сам, но, во первых пора отходить от продукции известной компании, а во вторых катастрофически не хватает времени - надо оживить именно этот сервер.
Насколько я понимаю, стоял courier, но он и сейчас висит в процессах. Очень тяжко с непривычки разобраться.
> Очень тяжко с непривычки разобраться.Так можно протестировать раздавателя почты.
Ну и самое время уже посмотреть его логи и логи постфиткса и до кучи /var/log/messages
в консоле на сервере
telnet localhost 110 [ENTER]
сервер ответит ОКuser ИМЯ ПОЛБЗОТЕЛЯ
сервер ответит ОКpass ПАРОЛЬ
сервер ответит ОК вообще зависит от того как у вас авторизация настроена, но вы по крайней мере увидите, что он у вас отвечаетlist
сервер ответит что-нибудь вроде
+OK 10 messages:
1 1414
2 3071
3 15916
4 4140
5 29874
6 43289
7 2089
8 3369
9 3929
10 399989вы ему скажите
retr 1сервер выдаст текст письма
quitсервер ответит
OK Logging out.
Connection closed by foreign host.
>[оверквотинг удален]
> 8 3369
> 9 3929
> 10 399989
> вы ему скажите
> retr 1
> сервер выдаст текст письма
> quit
> сервер ответит
> OK Logging out.
> Connection closed by foreign host.По телнету залогиниться не даёт. Всех пользователей не узнаёт
НО!!! По необъяснимой мне причине, в 12 с чем-то сервер внезапно заработал!
Т.е. почтовые клиенты начали получать почту. Так же начали уходить письма.
Судя по спаму, сервер лёг вчера около восьми вечера и начал набирать почту около десяти утра. Похожая ситуация была и позавчера, когда он прекратил собирать почту около часу ночи и начал около двух дня. Хм... Неужели железо?!?!
> Судя по спаму, сервер лёг вчера около восьми вечера и начал набиратьЛоги! Логи надо смотреть, а не по спаму определять работает сервер или нет
>> Судя по спаму, сервер лёг вчера около восьми вечера и начал набирать
> Логи! Логи надо смотреть, а не по спаму определять работает сервер или
> нетСпасибо огромное, за поддержку. Если б не форумчане, так и не поднялся б. Осталось понять почему это произошло. То, что нужно будет создавать свой, понятный сервер - однозначно ясно, но т.к. на это уйдёт время, надо вернуть в строй этот. Что искать в логах? Они ж из-за спама километровые
Похоже postfix не может построить карту по директиве:virtual_mailbox_limit_maps. В конфиге должны быть описаны правила обращения к сиквэл. Попробуйте вручную построить запрос.
> Похоже postfix не может построить карту по директиве:virtual_mailbox_limit_maps. В конфиге
> должны быть описаны правила обращения к сиквэл. Попробуйте вручную построить запрос.К сожалению, не представляю, как это сделать и где начинать копать
>> Похоже postfix не может построить карту по директиве:virtual_mailbox_limit_maps. В конфиге
>> должны быть описаны правила обращения к сиквэл. Попробуйте вручную построить запрос.
> К сожалению, не представляю, как это сделать и где начинать копатьСперва найдите конфиг mysql:$base/mysqlLookupMaps/quota.conf, он должен содержать информацию о том как цеплятся к сиквэл базе. Подцепитесь к базе, выполните запрос.
Я думаю, что не в постфикс порблема а в сиквэл, это он не может построить карту, отсюда проблемы.
> Подцепитесь к базе, выполните запрос.unused parameter
>> Подцепитесь к базе, выполните запрос.
> unused parameterЯ думаю это нулевой возврат. Отсюда и анюзед. Бага явно не со стороны постфикс. Скорее всего сиквэл с перлом не дружат.
> Я думаю это нулевой возвратПинцет всемогущий! Он скомпилировал постфикс без vda патча потому как нету патча к 2.9
Постфикс ему говорит, что он эти параметры не использует. Причём здесь нулевой возврат ?
Ладно мне по-барабану
>> Я думаю это нулевой возврат
> Пинцет всемогущий! Он скомпилировал постфикс без vda патча потому как нету патча
> к 2.9
> Постфикс ему говорит, что он эти параметры не использует. Причём здесь нулевой
> возврат ?
> Ладно мне по-барабануДа, похоже на правду.
>>> Похоже postfix не может построить карту по директиве:virtual_mailbox_limit_maps. В конфиге
>>> должны быть описаны правила обращения к сиквэл. Попробуйте вручную построить запрос.
>> К сожалению, не представляю, как это сделать и где начинать копать
> Сперва найдите конфиг mysql:$base/mysqlLookupMaps/quota.conf, он должен содержать информацию
> о том как цеплятся к сиквэл базе. Подцепитесь к базе, выполните
> запрос.
> Я думаю, что не в постфикс порблема а в сиквэл, это он
> не может построить карту, отсюда проблемы.Я, к сожалению, не силён в mysql. Ну то есть совсем. Мне б почтовый сервер оживить, может посоветуете что поконкретнее, желательно не опуская то, что "и так понятно"
find / -name "transport.conf"cat transport.conf
> find / -name "transport.conf"
> cat transport.confrelay# cat /usr/local/etc/postfix/mysqlLookupMaps/transport.conf
user = postfix
password = Password25
hosts = localhost
dbname = postfix
table = domain
select_field = transport
where_field = domain
>> find / -name "transport.conf"
>> cat transport.conf
> relay# cat /usr/local/etc/postfix/mysqlLookupMaps/transport.conf
> user = postfix
> password = Password25
> hosts = localhost
> dbname = postfix
> table = domain
> select_field = transport
> where_field = domainmysql postfix -u postfix -p
после этого введи:
select * from domain where transport IS NOT EMPTY (вроде так)
В результате:
1. если ошибка при подключении к базе, копать что с сиквэлом, он не запущен
2. Если селект вернет не пустой список, тогда действительно траблы с постфиксом, если пустой, нужно убрать из конфига лишние директивы.
> mysql postfix -u postfix -p
> после этого введи:
> select * from domain where transport IS NOT EMPTY (вроде так)
> В результате:
> 1. если ошибка при подключении к базе, копать что с сиквэлом, он
> не запущен
> 2. Если селект вернет не пустой список, тогда действительно траблы с постфиксом,
> если пустой, нужно убрать из конфига лишние директивы.relay# mysql postfix -u postfix -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1131 to server version: 4.1.25-logType 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> select * from domain where transport IS NOT EMPTY
->Вот так отвечает
; - в конце поставь
> ; - в конце поставь-> select * from domain where transport IS NOT EMPTY;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EMPTY
relayhelp contents
select * from domain where transport IS NOT EMPTY' at line 1Тогда так
> ; - в конце поставьmysql> SELECT * FROM domain WHERE transport IS NOT NULL;
+--------------+-----------------+---------+-----------+----------+-------+-----------+----------+---------------------+---------------------+--------+
| domain | description | aliases | mailboxes | maxquota | quota | transport | backupmx | created | modified | active |
+--------------+-----------------+---------+-----------+----------+-------+-----------+----------+---------------------+---------------------+--------+
| ALL | | 0 | 0 | 0 | 0 | | 0 | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 | 1 |
| mydomain.ru | work domain | 0 | 0 | 10 | 0 | virtual | 0 | 2009-11-21 22:52:48 | 2009-11-21 22:52:48 | 1 |
| domain.ru | old work domain | 0 | 0 | 10 | 0 | virtual | 0 | 2009-11-21 22:53:10 | 2009-11-21 22:53:10 | 1 |
+--------------+-----------------+---------+-----------+----------+-------+-----------+----------+---------------------+---------------------+--------+
3 rows in set (0.00 sec)