Необходимо наличие пакета perl 5.6 версии и выше.
На Red Hat, например, проверим:
rpm -qa perl
Установить, если не установлен, NetServer
>cpan [ENTER]
>install Net::Server
или, например, для RedHat
rpm -i perl-Net-Server-version.rpm
То же самое для IO::Multilex
>cpan [ENTER]
>install IO::Multilex
Также установить модули perl, если не установились или не установлены:
BerkeleyDB (Perl module)
Berkeley DB (Library, version ≥ 4.1)
perl-Net-DNS
perl-Digest-HMAC
perl-Digest-SHA1
perl-Parse-Syslog
Сам postgrey лежит на сайте here. Там же есть ссылки на вышеперечисленные пакеты.
Распакуем пакет:
tar -xvzf postgrey-1.34.tar.gz
Копируем файлы. Для большинства linux систем каталоги находятся там, где написано ниже (Однако нужно проверить и подкорректировать под свою систему):
cp postgrey /usr/sbin/
cp postgrey_whitelist_clients /etc/postfix/
cp postgrey_whitelist_recipients /etc/postfix/
сp contrib/postgreyreport /usr/sbin/
Далее возможно (для redhat EL5 наверняка потруется) ставим дополнительно еще из компилированного пакета. Пример ниже для Red hat (пакет взят из here):
rpm -i postgrey-version.rpm
Проверить наличие каталога /var/spool/postfix/postgrey и прав доступа к нему:
chown postfix:postfix /var/spool/postfix/postgrey
chmod 770 /var/spool/postfix/postgrey
Для работы postgrey совместно с postfix внесем изменения в конфигурационный файл main.cf (в данном примере, вместо параметра smtpd_recipient_restrictions использован параметр smtpd_client_restrictions. Разработчик рекомендует использовать smtpd_recipient_restrictions) :
smtpd_client_restrictions =
…,
…,
check_policy_service inet:127.0.0.1:60000
Внесем в файл /etc/postfix/ postgrey_whitelist_clients известные ip-адреса, домены почтовых сервисов, которые будут в белом списке (один адрес на одной строке).
Внесем в файл /etc/postfix/ postgrey_whitelist_recipient адреса получателей, к которым почта должна поступать незамедлительно:
postmaster@domain.tld
Administrators@domain.tld
root@domain.tld
Проверим наличие каталога /var/run/postgrey (если не существует – создать!!!), права на каталог root:postfix.
Откорректируем скрипт запуска сервиса postgrey /etc/init.d/postgrey. Параметр delay указывает время задержки сообщения в секундах :
prog=postgrey
postgrey=/usr/sbin/$prog
DBPATH=/var/spool/postfix/postgrey
SOCKET=$DBPATH/socket
OPTIONS=”-v –inet=127.0.0.1:60000 –delay=300 –user=postfix –group=postfix –pidfile=/var/run/postgrey/postgrey.pid”
Проверка работы сервиса postgrey
Запустим скрипт /etc/init.d/postgrey и проверим наличие процессов
>ps –aux | grep postgrey
postfix 14464 0.6 1.4 34580 29940 ? Ss Jun10 282:53 /usr/sbin/postgrey -d -v –inet=127.0.0.1:60000 –delay=300 –user=postfix –group=postfix –pidfile=/var/run/postgrey/postgrey.pid
root 29172 0.0 0.0 3892 700 pts/6 S+ 16:59 0:00 grep postgrey
> netstat -pan | grep postgrey
tcp 0 0 127.0.0.1:6060 0.0.0.0:* LISTEN 19224/postgrey.pid
tcp 0 0 127.0.0.1:6060 127.0.0.1:48744 ESTABLISHED 19224/postgrey.pid
unix 2 [ ] DGRAM 72023 19224/postgrey.pid
Выполним команды
service postgrey restart
service postfix restart
В результате в логах postfix должны появиться подобные строки:
> grep “action=” /var/log/mail/maillog
postgrey[23219]: action=greylist, reason=new, client_name=unknown, client_address=x.x.x.x, sender=test@domain.tld, recipient=testreception@domain2.tld
1. Компилировать postfix нужно с поддержкой sasl2
2. Обратить внимание на файлы:
/usr/lib/sasl2/smtpd.conf:
pwcheck_method: saslauthd
mech_list: plain login
и
/etc/saslauthd.conf:
ldap_servers: ldap://х.х.х.х
ldap_version: 3
ldap_timeout: 10
ldap_timelimit: 10
ldap_bind_dn: ldapuser
ldap_bind_pw: ldapuser
ldap_domain: ЗЗЗЗ_ЗЗЗЗЗ
#ldap_search_base: O=ВВВВ
ldap_auth_method: bind
ldap_password_attr: userpassword
ldap_size_limit: 0
3. Запусккать обязательно так:
saslauthd -a ldap
4. Второй пункт может находиться в одном файле
/etc/sasl2/smtpd.conf 5. Проверка работы sasl вне зависимости от функционирования и настроек postfix
testsaslauthd -u username -p password
0: OK "Success."
Recent Comments