Страница 1 из 1

[Linux] Postfix + QMAIL; проблема с релеем почты

Добавлено: 2009-03-25 11:44:37
helloworld
Всем привет.
Кратко: надо огранизовать связку postfix+ qmail,
Проблема - нужно фильтровать все письма(на helo, dns, rbl и тд) - постфикс это умеет, остальную почту перекидывать(релеить) на qmail, который идет "изкоробки" под названием Plesk.
Сервер имеет 1 ip адрес и у меня есть идея повесить postfix на внешний IP - x.x.x.x, qmail на 127.0.0.1.

/etc/postfix/main.cf

Код: Выделить всё

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
inet_interfaces = [b]x.x.x.x[/b]
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.3.3/samples
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES

relayhost = 127.0.0.1:25
relay_domains = hash:/etc/postfix/relaydomains

smtpd_helo_required=yes
В файлике /etc/postfix/relaydomains лежит список доменов на которые можно пересылать почту, этот список парситься из qmail скриптиком раз в 5 минут по этой ссылке http://rupp.de/howto_install_postfix_before_qmail.html

Код: Выделить всё

#!/usr/bin/perl -w

# create relaydomains for postfix from rcpthosts from qmail
# 20060405,arnim rupp

my $rcpthost = "/var/qmail/control/rcpthosts";

# must be same as postfixs main.cf "relay_domains="
my $relaydomains = "/etc/postfix/relaydomains";

my $postmap="/usr/sbin/postmap";
my $sort="/bin/sort";

use strict;


open (RCPTHOSTS, "$sort $rcpthost|" ) || die "cant open $rcpthost\n";
open (RELAYDOMAINS, "> $relaydomains" ) || die "cant open $relaydomains\n";

while(<RCPTHOSTS>) {
        chomp;
        print RELAYDOMAINS "$_ RELAY\n" if ( $_ );
}

close (RELAYDOMAINS);
close (RCPTHOSTS);

system "$postmap $relaydomains";

cat /etc/postfix/relaydomain:

Код: Выделить всё

xxxn.ru RELAY
xytyyopok.info RELAY
yaasdfljhenko.su RELAY
zdojkekowasdfo.ru RELAY
asdfz.ru RELAY
и тд
Вроде почта приходит на постфикс, релеиться на qmail, он уже раскидывает по своим правилам.
Но как настроить постфикс что бы разрешал отсылку писем через smtp программами типа bat, outlook, thunderbird.
Вроде надо настроить smtpd_recipient_restrictions = но я не знаю как.

Помогите, горю. Сейчас на внешке стоит кумыл - он вешает всю систему изза спама.
ps: постфикс собран с поддержкой mysql. Система CentOS5

Re: [Linux] Postfix + QMAIL; проблема с релеем почты

Добавлено: 2009-03-25 21:08:31
Alex Keda
экзим ставь =)

Re: [Linux] Postfix + QMAIL; проблема с релеем почты

Добавлено: 2009-03-25 21:41:31
helloworld
нафиг мне ваш эксим. даже майкрософт использует постфикс для почты :)

Код: Выделить всё

%nslookup -q=mx microsoft.com
Server:         89.186.244.18
Address:        89.186.244.18#53

Non-authoritative answer:
microsoft.com   mail exchanger = 10 mail.global.frontbridge.com.

Authoritative answers can be found from:
microsoft.com   nameserver = ns3.msft.net.
microsoft.com   nameserver = ns5.msft.net.
microsoft.com   nameserver = ns4.msft.net.
microsoft.com   nameserver = ns2.msft.net.
microsoft.com   nameserver = ns1.msft.net.
ns1.msft.net    internet address = 207.68.160.190
ns2.msft.net    internet address = 65.54.240.126
ns3.msft.net    internet address = 213.199.161.77
ns4.msft.net    internet address = 207.46.66.126
ns5.msft.net    internet address = 65.55.238.126

%telnet mail.global.frontbridge.com 25
Trying 216.32.181.22...
Connected to mail.global.frontbridge.com.
Escape character is '^]'.
220 mail182-wa4.bigfish.com ESMTP Postfix EGGS and Butter

А по поводу релея сломал себе голову но сделал, работает. Завтра выложу конфиги как буду на работе.

Re: [Linux] Postfix + QMAIL; проблема с релеем почты

Добавлено: 2009-03-26 10:41:58
helloworld
И так еще раз вкратце. кумыл живет на 127.0.0.1 и раскидывает всю почту по пользователям. Постфикс делает проверки на RBL, Hello ответы и тд - кароче фильтрует.
Кумыл жоско привязан к имени сервера - server1.host.xxx.ru, а для постфикса имени не было, поэтому взял и придумал relay.host.xxxx.ru(прописав в /etc/hosts - 127.0.0.1 relay.host.xxxx.ru). Зачем это надо было? Постфикс ругался что получает HELo приветстие от того же имени - server1.host.xxxx.ru :)
Что добавил к конфиг постфикса - main.cf

Код: Выделить всё

myhostname = relay.host.xxxx.ru
relayhost = 127.0.0.1
relay_domains = hash:/etc/postfix/relaydomains

smtpd_helo_required=yes

smtpd_recipient_restrictions =
    permit_mynetworks,
    reject_unauth_destination,   <<<<<-------  разрешаем отправлять почту через 25 порт всем тем кому разрешено в /etc/postfix/relaydomains
    reject_unknown_sender_domain,
    reject_rbl_client zen.spamhaus.org    <<<------- откидывает около 80 % спамеров
    permit
/etc/postfix/relaydomains Парсится каждые 5 минут из кумыла скриптиком выше.
Работает =)

Re: [Linux] Postfix + QMAIL; проблема с релеем почты

Добавлено: 2009-03-26 17:13:21
paix
у тебя не кумыл систему вешает а антиспам и антивир которые с кумылом завязаны. А поскольку последний дофига пропускает, то им тоже дофига работы.

Пиши статью, многим пригодится ;)
мне может тоже. Хотя ограниченность кумыла - веский аргнумент для построения новой системы, например, на syscp ;)

Re: [Linux] Postfix + QMAIL; проблема с релеем почты

Добавлено: 2009-03-27 20:21:55
Alex Keda
да. а ещё ftp на фряхе =)
======
не смешите.
просто это крупная корпорация, и им выгодней оутсорсить некоторые вещщи чем самим мучаться.