Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по FreeBSD (http://forum.oszone.net/forumdisplay.php?f=10)
-   -   [решено] Проблемы с postgrey (http://forum.oszone.net/showthread.php?t=76384)

INTELLIGENTIK 18-12-2006 20:43 526316

Проблемы с postgrey
 
Всем доброго времени суток.
В обзем есть проблемочка одна. Я поднял рутер, сделал редирект 25 порта, все работает.... Только вот не заводится postgrey
пишет
Код:

Error: --unix or --inet must be specified
покопав маны нашел
Код:


    -h, --help              display this help and exit
        --version          output version information and exit
    -v, --verbose          increase verbosity level

    -u, --unix=PATH        listen on unix socket PATH
    -i, --inet=[HOST:]PORT  listen on PORT, localhost if HOST is not specified
    -d, --daemonize        run in the background
        --pidfile=PATH      put daemon pid into this file
        --user=USER        run as USER (default: postgrey)
        --group=GROUP      run as group GROUP (default: nogroup)
        --dbdir=PATH        put db files in PATH (default: /var/spool/postfix/postgrey)
        --delay=N          greylist for N seconds (default: 300)
        --max-age=N        delete entries older than N days since the last time
                            that they have been seen (default: 35)
        --retry-window=N    allow only N days for the first retrial (default: 2)
                            append 'h' if you want to specify it in hours
        --greylist-action=A if greylisted, return A to Postfix (default: DEFER_IF_PERMIT)
        --greylist-text=TXT response when a mail is greylisted
                            (default: Greylisted for %s seconds + help url, see below)
        --lookup-by-subnet  strip the last 8 bits from IP addresses (default)
        --lookup-by-host    do not strip the last 8 bits from IP addresses
        --whitelist-clients=FILE    default: /usr/local/etc/postfix/postgrey_whitelist_clients
        --whitelist-recipients=FILE  default: /usr/local/etc/postfix/postgrey_whitelist_recipients
        --auto-whitelist-clients=N  whitelist host after first successful delievery
                                      N is the minimal count of mails before a client is
                                      whitelisted (turned on by default with value 5)
                                      specify N=0 to disable.
        --privacy          store data using one-way hash functions

    Note that the --whitelist-x options can be specified multiple times,
    and that per default /usr/local/etc/postfix/postgrey_whitelist_clients.local is
    also read, so that you can put there local entries.

В частности интересуют строки
Код:

    -u, --unix=PATH        listen on unix socket PATH
    -i, --inet=[HOST:]PORT  listen on PORT, localhost if HOST is not specified

при этом настройка выполнена его в main.cf
Код:

        smtpd_recipient_restrictions = permit_sasl_authenticated,
            reject_unauth_destination,
            check_policy_service inet:127.0.0.1:10023

Так же sockstat выдает
Код:

postfix  smtpd      642  13 tcp4  127.0.0.1:60833      127.0.0.1:10023
postfix  smtpd      630  6  tcp4  *:25                  *
postfix  smtpd      630  7  dgram  -> /var/run/logpriv
postfix  smtpd      630  13 tcp4  127.0.0.1:50896      127.0.0.1:10023


не пойму что происходит, порт есть, все вроде как запущено(кроме постгрей), но вот ругается негодяй... пролейте свет как говорится, а то совсем запутался.

INTELLIGENTIK 19-12-2006 10:03 526555

Спасибо BuGfiX за помощь, проблема старта решенаю.
Дело в том что по какой то непонятной причине сокет 10023 забитый постфиксом для работы постгрей не работал. Точнее работал, но постгрей при обращении говорил что сокет (порт) занят.
нужно было ввести
Код:

postgrey -d -inet localhost:1023
И я увидел долгожданное
Код:

Dec 19 09:57:34 mail-ix postgrey[4107]: Process Backgrounded
Dec 19 09:57:34 mail-ix postgrey[4107]: 2006/12/19-09:57:34 postgrey (type Net::Server::Multiplex) starting! pid(4107)
Dec 19 09:57:34 mail-ix postgrey[4107]: Binding to TCP port 1023 on host localhost 
Dec 19 09:57:34 mail-ix postgrey[4107]: Setting gid to "65533 65533"
Dec 19 09:57:34 mail-ix postgrey[4107]: Setting uid to "225"
Dec 19 09:57:35 mail-ix postfix/smtpd[4108]: warning: 192.168.2.101: hostname router.ridom.lan.2.168.192.in-addr.arpa verification failed: hostname nor servname provided, or not known
Dec 19 09:57:35 mail-ix postfix/smtpd[4108]: connect from unknown[192.168.2.101]

Но все равно грей листы не работают. В логах должна присутвовать строка
Код:

        450 <testuser@home.net.>: Recipient address rejected: Greylisted for 300 seconds (see
        http://isg.ee.ethz.ch/tools/postgrey/help/home.net.html); from=<root@work.net.> to=<testuser@home.net.> pro
        to=ESMTP helo=<mail.work.net>

Меня её в логах нет. Плизз помогите если кто сталкивался с похожим, статьи и маны подойдут на любом языке(благо есть переводчики), все что сам нашел не помогло.

Sadok 19-12-2006 12:52 526618

Я ставил из портов + эта статья (она для какого-то линуха, судя по apt-get install postgrey). Работает. Какая версия postfix у тебя?

INTELLIGENTIK 19-12-2006 15:03 526655

версия
Код:

mail-ix# postgrey --version
postgrey 1.24

Sadok плизз скинь логи свои на постфиксе. нужно посмотреть как у других работает постгрей по логам. А то он у меня стартует но в логах типа того что он ставит письмо на 300 милисекунд (или скока там задаш) нет :-(

По поводу статьи, у меня все так же, только порт по работе с постгрей 10023 ....

часто ругается на рутера через которого он письма отправляет
Код:

Dec 19 09:57:35 mail-ix postfix/smtpd[4108]: warning: 192.168.2.101: hostname router.ridom.lan.2.168.192.in-addr.arpa verification failed: hostname nor servname provided, or not known
при этом на самом серваке при nslookup
Код:

mail-ix# nslookup router.ridom.lan
Server:        192.168.2.254
Address:        192.168.2.254#53

Name:  router.ridom.lan
Address: 192.168.2.101

mail-ix# nslookup 192.168.2.101
Server:        192.168.2.254
Address:        192.168.2.254#53

101.2.168.192.in-addr.arpa      name = router.ridom.lan.2.168.192.in-addr.arpa.

mail-ix#


Sadok 20-12-2006 12:04 527040

INTELLIGENTIK
у меня postgrey 1.27 и postfix 2.4. Логи постгрея выглядят так:
Код:

Dec 20 11:59:32 gw postfix/smtpd[71498]: NOQUEUE: reject: RCPT from host181-35-dynamic.3-87-r.retail.telecomitalia.it[87.3.35.181]:
450 4.7.1 <sales@firma.ru>: Recipient address rejected: Greylisted, see http://isg.ee.ethz.ch/tools/postgrey/help/firma.ru.html;
 from=<vqwwiny@retail.telecomitalia.it> to=<sales@firma.ru> proto=SMTP helo=<retail.telecomitalia.it>

Я про версию postfix спрашивал потому, что с начала пытался прикрутить постгрей на какой-то дрений постфикс (2.0....), а он не поддерживает методов проверки check_policy_service inet:

INTELLIGENTIK 26-12-2006 13:52 529292

Sadok спасибочки :-)
уже скока мучаюсь а все одно и тоже, не зваодится :-( спам замучал, эхх я бы этих спамеров под расстрел поставил :-(
версия postfix 2.2.10_1,1
postgrey 1.24


Думаю все строить заново (+ Ldapi вводить буду)
вот только вопросик тем кто использовал imap, он символические ссылки нормально подхватывает, как он в работе, насколько грузит сетку, какие неудобства пользователям приносит...??? Плизз ребята помогите...

INTELLIGENTIK 06-01-2007 18:23 532599

Возвращусь к проблеме postgrey
Код:

Jan  6 18:14:18 mail-srv postgrey[6341]: Process Backgrounded
Jan  6 18:14:18 mail-srv postgrey[6341]: 2007/01/06-18:14:18 postgrey (type Net::Server::Multiplex) starting! pid(6341)
Jan  6 18:14:18 mail-srv postgrey[6341]: Binding to TCP port 10023 on host localhost
Jan  6 18:14:18 mail-srv postgrey[6341]: 2007/01/06-18:14:18 Can't connect to TCP port 10023 on localhost [Address already in use]  at line 88 in file /usr/local/lib/perl5/site_perl/5.8.8/Net/Server/Proto/TCP.pm
Jan  6 18:14:18 mail-srv postgrey[6341]: 2007/01/06-18:14:18 Server closing!

не пойму. говорит что порт забит, так этот порт остался специально для него.
помогите

вот main.cf и значения smtpd_recipient_restrictions
Код:

smtpd_recipient_restrictions =  permit_mynetworks, permit_sasl_authenticated, permit_auth_destination, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023, check_recipient_access hash:$base/recipient_access, reject_unlisted_recipient, reject_unknown_recipient_domain, reject_non_fqdn_recipient, reject_unverified_recipient, reject
Все делал по ману к postgrey -> #perldock postgrey
Не помогает ничего

версии
FreeBSD 6.1
postfix-2.3.5,1
postgrey-1.27

Странно, делал перед установкой cvsup полный, и у меня портирован postfix-2.3.5. To Sadok ты через порты разворачивал или через pkg_add ???
И ещё одна странность, у человека писавшего статью работает postgrey на версии Postfix 2.2.5, которая старше моей малость.

Дело в том что если бы постфикс не поддерживал check_policy_service inet:127.0.0.1:10023 то он бы ругался у меня на синтаксис файла main.cf при вводе #postfix check. А ведь не ругается, вроде все правильно.
конечно можно посадить на другой порт через #postgrey --inet=10024 -d на смысл тот же, правда заводится но логи пусты и спама просто до ужаса много.

Да и ещё, хотелось бы спросить мнения о postfixadmin, поствил, балуюсь сижу. Как он вам ? как в работе ? Просто в нете о нем мало чего хорошего говорят....

Sadok 07-01-2007 12:35 532908

Цитата:

To Sadok ты через порты разворачивал или через pkg_add ???
Цитата:

Я ставил из портов
Цитата:

Дело в том что если бы постфикс не поддерживал check_policy_service inet:127.0.0.1:10023 то он бы ругался у меня на синтаксис файла main.cf при вводе #postfix check. А ведь не ругается, вроде все правильно
Мой предыдущий (древний) postfix вис на старте. Никаких руганей не было.

INTELLIGENTIK 08-01-2007 16:18 533448

В том то и дело что не виснет, мне это не понятно. Тоесть он эту комманду воспринимает как надо. Порт он резервирует.
Чудеса какие то...

Где же наши гуру. Может кто помогеть :-( или про комментирует или хотя бы подскажет куда копать. Манов по postgrey очень очень мало...

INTELLIGENTIK 12-01-2007 09:58 535112

Все решил проблему, докопался таки :-)
в общем как заставить работать Postfix 2.2.10 и скрипты Postgrey 1.27 если вы уже установили и в логах нет того самого greylisting
сначало чистим полностью файлы
Код:

postgrey_whitelist_clients
postgrey_whitelist_recipients

Убиваем процесс postgrey
Код:

смотрим через top PID
kill ....

Затем делаем инициализацию базы данных postgrey которая работает с файлами данных berkleyDB. По чему то по ману мы должны создать каталог /var/spool/postfix/postgrey, но это не так, при инсталле он все закидывает в /var/db/postgrey (неплохо бы проверить заниул он туда чего или нет).
в общем, смотрим в стопе ли у нас postgrey и если в его в процессах нет тогда вводим
Код:

postgrey --inet=10023
Этой коммандой как я понял инициализурет базу данных и создает правило по какому порту он будет работать (если только --inet=10023 то по умолчанию у него localhost)
Вот мои настройки в main.cf
Код:

smtpd_recipient_restrictions =  check_recipient_access hash:$base/recipient_access, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023, permit
Теперь о граблях которых нет в манах.
Дело в том что если у вас в smtpd_recipient_restrictions не указана опция permit_mynetworks и в permit_mynetworks стоит только 127.0.0.1 (ты вы видимо очень недоверчивый админ :-) ) Тогда в обещм надо добавить в
Код:

postgrey_whitelist_clients
название вашего домена.

Потом делаем старт демона
Код:

postgrey --inet=10023 -d
И усё, у меня так он завелся.


Время: 05:34.

Время: 05:34.
© OSzone.net 2001-