Kiev1.org Карта сайта Файлы Фотографии Киева
  
Реклама:






Разделы
 
 Sysadmin
 Антиглобалисты
 Ереси и секты
 Катастрофы
 Компьютерные новости
 Непроверенное
 О проекте
 О фотогалерее
 Политика и власть
 Православие
 Предприятия Украины
 Протесты Людей против нового мирового концлагеря
 Разное
 Россия
 Старец Паисий 1924-1994
 Стояние за Истину
 Суды в Украине
 Тайна беззакония
 экуменизм


Внимание! Читая пророчества на этом сайте помните что достоверность трудно проверить и все может во времени изменяться - самое главное думать своей головой и не верить легкомысленно всему что говорят, особенно советское телевидение
"О дне же том, или часе, никто не знает, ни Ангелы небесные, ни Сын, но только Отец (Мк. 13, 32)"

Установка простой конфигурации Postfix + ClamAV + procmail + Spamassassin



Используется postfix + cyrus-imap, авторизация пользователей через cyrus-sasl без прикручивания какой-либо БД (подходит для контор с несколькими десятками почтовых ящиков - хранить что-либо в mysql или postgress в данном случае нет смысла). Пользователи хранятся в базе sasldb, поэтому нет нужды заводить в системе реальных пользователей.

Возможно при установке указанных пакетов понадобится установить все зависимости, которые они за собой тянут. Предоставим системе самой разобраться, что же ей не хватает - она с этим вполне успешно справляется.

Предпочитаю использовать для /var reiserfs, но это сугубо личные предпочтения.


emerge -pv cyrus-sasl
[ebuild   N   ] dev-libs/cyrus-sasl-2.1.20  -authdaemond +berkdb -debug +gdbm +java -kerberos -ldap +mysql  +pam -postgres +ssl -static 0 kB

На всякий случай проверяем флаги - все ОК

emerge cyrus-sasl

Этот пакет поставили, едем дальше

emerge -pv postfix
These are the packages that I would merge, in order:
 Calculating dependencies ...done!
[ebuild   N   ] mail-mta/postfix-2.1.5-r1  +ipv6 -ldap -mailwrapper -mbox +mysql +pam -postgres -sasl*(-selinux) +ssl -vda 0 kB

Здесь нам может пригодиться флаг sasl, хотя в моем случае пока нет нужды авторизоваться на smtp, возможно в дальнейшем здесь будет описана авторизация через cyrus-sasl на smtp - вообщем выставляйте флаги по вкусу кому что надо

USE="sasl" emerge postfix

Постфикс собрался

emerge -pv cyrus-imapd
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild   N   ] net-mail/cyrus-imapd-2.2.10  -afs -drac -idled -kerberos +pam -snmp +ssl +tcpd 0 kB

После проверки и установки нужных нам флагов пересобираем openssl и imap-сервер

emerge cyrus-imapd


Программа для администрирования имаповских ящиков

emerge cyrus-imap-admin


После того как все нужные нам пакеты поставлены, можно приступать к настройке

сначала cyrus-sasl

passwd cyrus
pwconv
chown -R cyrus:mail /etc/sasl2 - доступ cyrus к базе /etc/sasl2/sasldb2
saslpasswd2 cyrus - заводим в sasldb2 
sasldblistusers2 - для проверки


Разбираемся с postfix

Cодержимое /etc/postfix/main.cf, ниже приведена примерная конфигурация почтового сервера подключенного напрямую к инету (не через relayhost), естественно для этого случая должна быть MX-запись в ДНС. Подчеркиваю, что умышленно опускаю многие параметры в main.cf, чтобы не раздувать описание. Добавьте все остальное руководствуясь документацией postfix.


queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
myhostname = mail.domain.tld
mydomain = mail.domain.tld
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
local_recipient_maps =
unknown_local_recipient_reject_code = 550
mynetworks_style = subnet
mynetworks = 192.168.1.0/24, 127.0.0.0/8
relay_domains = $mydestination
НА ЭТУ СТРОЧКУ ОБРАТИТЕ ВНИМАНИЕ!!! 
mailbox_transport = lmtp:unix:/var/imap/socket/lmtp
Если надо подключить procmail то вместо нее пишем
mailbox_transport = procmail


Когда добавили все, что нужно в main.cf, идем в /etc/postfix/master.cf

Ищем такую строку

 # Also specify in main.cf: cyrus_destination_recipient_limit=1
cyrus     unix  -       n       n       -       -       pipe
 user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
 

И заменяем путь на

 # Also specify in main.cf: cyrus_destination_recipient_limit=1
cyrus     unix  -       n       n       -       -       pipe
 user=cyrus argv=/cyrus/deliver -e -r ${sender} -m ${extension} ${user}

При использовании procmail, добавляем

procmail unix  -       n      n       -        -       pipe
 flags=R user=cyrus argv=/usr/bin/procmail -p /etc/procmailrc  USER=${user}

Где файл /etc/procmailrc :

DELIVERMAIL=/usr/lib/cyrus/deliver
LOGFILE=/var/log/procmaillog
IMAP="$DELIVERMAIL -e -a $USER -m user.$USER"
(если надо подключить spamassassin)
:0fw : spamassassin.lock
* < 90000
| /usr/bin/spamassassin
и далее обязательно
:0
| $IMAP
:0w
{
EXITCODE=$?
HOST
}  

Все, постфиксом разобрались, теперь cyrus-imapd

Редактируем /etc/cyrus.conf

# $Header: /var/cvsroot/gentoo-x86/net-mail/cyrus-imapd/files/cyrus.conf,v 1.4 2004/07/18 04:02:23 dragonheart  Exp $
# Standard standalone server configuration.
START {
 # Do not delete this entry!
 recover	cmd="ctl_cyrusdb -r"
 # This is only necessary if using idled for IMAP IDLE.
 #idled		cmd="idled"
}
# UNIX sockets start with a slash and are put into /var/imap/socket.
SERVICES {
  # Add or remove based on preferences.
  imap		cmd="imapd" listen="imap2" prefork=0
  pop3		cmd="pop3d" listen="pop-3" prefork=0
   # Don't forget to generate the needed keys for SSL or TLS
  # (see doc/html/install-configure.html).
  imaps		cmd="imapd -s" listen="imaps" prefork=0
  pop3s		cmd="pop3d -s" listen="pop3s" prefork=0
  sieve		cmd="timsieved" listen="sieve" prefork=0
  # at least one LMTP is required for delivery
  #lmtp		cmd="lmtpd" listen="lmtp" prefork=0
   ##ОБРАТИТЕ ВНИМАНИЕ НА ЭТУ СТРОКУ
  lmtpunix	cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0
     # this is only necessary if using notifications
  #notify	cmd="notifyd" listen="/var/imap/socket/notify" proto="udp" prefork=1
}
EVENTS {
  # This is required.
  checkpoint	cmd="ctl_cyrusdb -c" period=30
  # This is only necessary if using duplicate delivery suppression.
  delprune	cmd="ctl_deliver -E 3" period=1440
  # This is only necessary if caching TLS sessions.
  tlsprune	cmd="tls_prune" period=1440
}


Далее редактируем /etc/imapd.conf

configdirectory:	/var/imap
partition-default:	/var/spool/imap
auto_transition:	yes
tls_ca_path:            /etc/ssl/certs
tls_cert_file:		/etc/ssl/cyrus/server.crt
tls_key_file:		/etc/ssl/cyrus/server.key
admins:			cyrus
hashimapspool:		yes
allowanonymouslogin:	no
allowplaintext:		yes
sasl_pwcheck_method:	auxprop
sasl_auxprop_plugin:	sasldb
sasldb_path:		/etc/sasl2/sasldb2
sasl_mech_list:		LOGIN PLAIN 

Авторизация через базу sasldb, механизмы авторизации LOGIN,PLAIN вроде бы с настройкой cyrus покончено

Теперь займемся почтовыми ящиками юзеров, для этого используем программу cyradm

/etc/init.d/cyrus start
cyradm -user cyrus -server localhost
localhost> cm user.testuser
localhost> help - выводит все команды для руления юзерскими ящиками
localhost> exit

Не забудьте забить в sasldb2 нового юзера:

sasldbpasswd2 testuser ( может правильнее saslpasswd2 testuser ? )


Поднимаем сервисы

/etc/init.d/postfix start
/etc/init.d/cyrus start

Настраиваем почтового клиента (проверено с thunderbird 1.0 и с KMail 1.7.1, с Outlook Express тоже должно быть проблем).

Пробуем отправить письмо , если что-то не работает - смотрим логи, прежде всего проверьте права на доступ в /var/imap/socket/lmtp для пользователей postfix и cyrus, чаще всего проблемы связаны именно с этим. Также проверьте права на доступ к /etc/sasl2/sasldb2 для пользователя cyrus, который должен быть в группе mail.

Желательно поставить антивирус например cmalav используем для этого связку clamav + clamsmtp хотя возможны и другие варианты например amavisd-new. Установка прекрасно описана здесь http://www.nixp.ru/articles/clamav_postfix>, необходимо руководствоваться ей,естественно с адаптацией под реалии Gentoo

emerge clamav
ACCEPT_KEYWORDS="~x86" emerge clamsmtp (пока замаскирован в портаджах)

Затем в файле /etc/conf.d/clamd START_CLAMD = yes (для версии старше 0.85 уже не актуально - все настройки только в clamd.conf и clamsmtpd.conf)

Редактируем файлы /etc/clamd.conf и /etc/clamsmtpd.conf в соответствии с рекомендациями приведенными выше по ссылке Обратите внимание на параметры LocalSocket: /var/run/clamav/clamd.sock в /etc/clamav.conf и ClamAddress: /var/run/clamav/clamd.sock в /etc/clamsmtpd.conf - путь и имя файла должен одинаковым для обоих конфигов

В файл main.cf необходимо добавить две строчки:

content_filter = scan:127.0.0.1:10025
receive_override_options = no_address_mappings
  

Первая говорит postfix'у о том, что необходимо пересылать всю почту через сервис (фильтр) 'scan' на 10025-ый порт, который, как раз, открыт clamsmtpd. Вторая строчка говорит о том, чтобы postfix не делал никаких манипуляций с адресами до того, как они дойдут до content_filter. Так что получается, что фильтр работает с реальными почтовыми адресами, а не с результатами перевода в виртуальные псевдонимы, маскарадингом и т.п.

В файл master.cf необходимо добавить следующие строки:

# AV scan filter (used by content_filter)
scan      unix  -       -       n       -       16      smtp
       -o smtp_send_xforward_command=yes
# For injecting mail back into postfix from the filter
127.0.0.1:10026 inet  n -       n       -       16      smtpd
       -o content_filter=
       -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
       -o smtpd_helo_restrictions=
        -o smtpd_client_restrictions=
       -o smtpd_sender_restrictions=
       -o smtpd_recipient_restrictions=permit_mynetworks,reject
       -o mynetworks_style=host
       -o smtpd_authorized_xforward_hosts=127.0.0.0/8

Примечание: вокруг знака '=' пробелы не ставить. Значение 127.0.0.1:10026 открывает 10026-порт для возвращения почты обратно от clamsmtpd.

rc-update add clamd default
rc-update add clamsmtpd default
/etc/init.d/postfix reload

все - антивирус должен проверять всю почту проходящую через Ваш почтовик


P.S. Все вышеописанное проверялось на моей рабочей машине и на серваке небольшой конторы. Автор (или авторы) не несут ответственности за безграмотное и необдуманное применение данного руководства. Ваша безопасность в ваших руках и в голове! Данное описание не претендует на полное и развернутое и не является единственно возможным вариантом конфигурации. Также выражаю признательность разработчикам вышеописанных замечательных программ за прекрасное исполнение и хорошую документацию. Практически все вышенаписанное подчерпнуто из документации к самим пакетам, а также некоторые мысли родились из отрывочных данных, блуждающих в рунете - большое спасибо за это их авторам.

ru.gentoo-wiki.com





 Устанока SpamAssassin, Postfix, MySQL, WebUsePref


Внимание! Читая пророчества на этом сайте помните что достоверность трудно проверить и все может во времени изменяться
"О дне же том, или часе, никто не знает, ни Ангелы небесные, ни Сын, но только Отец (Мк. 13, 32)"