Показаны сообщения с ярлыком Mail. Показать все сообщения
Показаны сообщения с ярлыком Mail. Показать все сообщения

Postfix & обрьба со спамом

8 июля 2009 г.
Posted by Admin
Comments

Спам достал!!! 90% всей корреспонденции получаемой по электронной почте это спам!!! Больше так продолжаться не может. Внимательно прочитав о smtpd_recipient_restrictions,  ознакомившись с Fighting Spam и почитав форум www.postfix.ru, мы настроили конфиг постфикса следующим образом:

smtpd_recipient_restrictions =
            check_sender_access hash:/etc/postfix/access_vip_sender,
            permit_mynetworks,
            permit_sasl_authenticated,
            reject_non_fqdn_sender,
            reject_unknown_sender_domain,
            reject_unknown_client,
            reject_unauth_destination,
            reject_invalid_hostname,
            reject_unknown_recipient_domain,
            reject_unauth_pipelining,
            reject_rbl_client zen.spamhaus.org,
            reject_rbl_client hostkarma.junkemailfilter.com=127.0.0.2,
            reject_rbl_client l2.apews.org,
            reject_rbl_client sbl-xbl.spamhaus.org,
            reject_rbl_client dnsbl.njabl.org,
            reject_rbl_client bl.spamcop.net,
            reject_rbl_client intercept.datapacket.net,
            reject_rbl_client bl.spamcannibal.org,
            reject_rbl_client dnsbl-1.uceprotect.net,
            reject_rhsbl_sender zen.spamhaus.org,
            reject_rhsbl_sender l2.apews.org


файл access_vip sender:



# содержит e-mail адреса или домены клиентов, 
# от которых нужно получать почту в любом случае
domain.ua           OK
user@yandex.ru      OK


не забываем создать access_vip sender.db программой postmap



Теперь спама ЗНАЧИТЕЛЬНО убавилось!

Ярлыки:

Unique Values for Mail Attributes

9 июня 2009 г.
Posted by Admin
Comments

Мы настроили почтовую систему Postfix–Dovecot–Sun Directory Server. Теперь нужно сделать чтобы атрибуты:

  • mail

  • mailAlternateAddress

  • mailEquivalentAddress

были уникальными. Воспользуемся руководством Sun Java System Delegated Administrator 6.4 Administration Guide. Нам нужно создать плагин, который и будет проверять уникальность требуемых атрибутов. Создадим файл mail uniq.ldif следующего содержания:

dn: cn=mail uniqueness,cn=plugins,cn=config
objectClass: top
objectClass: nsSlapdPlugin
objectClass: extensibleObject
cn: mail uniqueness
nssldap-pluginPath: /opt/sun/lib/uid-plugin.so
nsslapd-pluginInitfunc: NSUniqueAttrSet_Init
nsslapd-pluginType: preoperation
nsslapd-pluginEnabled: on
nsslapd-pluginarg0: attributeset=mail,mailalternateaddress,mailequivalentaddress
nsslapd-pluginarg1: dc=dn,dc=local
nsslapd-plugin-depends-on-type: database
nsslapd-pluginId: NSUniqueAttrSet
nsslapd-pluginVersion: 5.2
nsslapd-pluginVendor: Sun Microsystems, Inc.
nsslapd-pluginDescription: Enforce unique values among an attribute set


и выполняем следующую команду:



[root@ldap /]# ldapmodify -x -h ldap -p 389 -D "cn=Directory Manager" -w pasword -f mail uniq.ldif


Перезапускаем сервер slapd. Если при старте сервера не выдало ошибок, значит плагин установился. В консоли управления можно посмотреть наши результаты…



mail uniqueness

Ярлыки: ,

PostFix & Dynamic Group

22 мая 2009 г.
Posted by Admin
Comments

После настройки почтовика описанного в этом посте, стало возможным осуществить “старую мечту” :)  – рассылку сообщений ВСЕМ пользователям. Для этого нужно:

  1. создать в Sun Directory группу, прописать в атрибуте “mail” – электронный адрес для группы и в атрибуте “memberurl” следующий запрос:

ldap:///dc=dn,dc=local??sub?(&(objectclass=person)(mail=*)(!(nsAccountLock=true))) 

  запрос будет выбирать пользователей у которых присутствует атрибут “mail”  и учетная запись не отключена

    2. подправим наш ldap-groups-sun.cf добавив к переменой special_result_attribute memberurl и получился конфиг:

server_host = sunldap.dn.local 
search_base = ou=People,dc=dn,dc=local 
version = 3 
query_filter = (&(objectclass=groupOfUniqueNames)(|(mailAlternateAddress=%s)(mail=%s))) 
leaf_result_attribute = mail 
result_attribute = mail 
special_result_attribute = uniqueMember,  memberurl 
bind = yes 
bind_dn = uid=ldap,dc=dn,dc=local 
bind_pw = password


Ну и конечно в Postfix с помощью restriction_classes ограничить доступ на этот адрес.

Ярлыки: ,

Postfix-Dovecot-Sun Direcory Server

21 мая 2009 г.
Posted by Admin
Comments

Была поставлена задача создать почтовую систему и связать ее с Active Directory, но если служба каталогов не будет доступна по какой-то причине, пользователям не будет доставляться почта. И мы решили развернуть еще одну службу каталогов. Выбор остановили на SUN ONE Directory Server. Он бесплатный, документация отличная и что немало важно управлять ним можно через WEB или java консоль, а синхронизировать Active Direcory и Sun Direcory мы будем с помощью ILM 2007 (Microsoft Identity Lifecycle Manager).

Postfix - Active Directory - Dovecot

6 мая 2009 г.
Posted by Admin

И так было решено связать Postfix с AD и Dovecot с AD. Я не буду останавливаться на описании сборке дистрибутивов, скажу только что нужно собрать из с поддержкой LDAP.
rpm пакеты Postfix-a для RH Enterprise Linux с поддержкой LDAP, pcre, mysql, SMTP AUTH (SASL) and TLS есть тут
Postfix:
Все пользователи у нас в присутствуют в AD и вся почта у нас будет принадлежать одному пользователю vmail(uid=800,gid=800) в первую очередь создаем его с домашней директорией /home/vmail
Теперь в конфиге postfix-a main.cf добавляем

virtual_mailbox_domains = $mydomain 
virtual_mailbox_base = /home/vmail/ 
virtual_uid_maps = static:800 
virtual_gid_maps = static:800 
virtual_transport = virtual 
virtual_create_maildirsize = yes 
virtual_mailbox_maps = ldap:/etc/postfix/ldap-users.cf 
virtual_alias_maps = ldap:/etc/postfix/ldap-groups.cf 
virtual_mailbox_limit_override = yes 
virtual_mailbox_limit_maps = hash:/etc/postfix/vquota


из переменной mydestination нужно удалить домен который прописан в

mydomain, иначе будет выдавать ошибку при отправке письма

Recipient address rejected: User unknown in virtual mailbox table


Теперь о ldap-users.cf:



server_host = ldap://dc1.dn.local 
ldap://dc2.dn.local 
search_base = dc=dn,dc=local 
version = 3 
query_filter = (&(objectclass=person)(mail=%s))(!(userAccountControl=514))) 
result_attribute = sAMAccountName 
result_format = %s/Maildir/ 
bind = yes 
bind_dn = postfix_ldap@dn.local 
bind_pw = password


Фильтр выбирает пользователя если у него заполнено поле Эл. почта и учетная запись не отключена, а также указываем что домашняя директория для этого пользователя sAMAccountName/Maildir


Проверим как это работает, выполним:


postmap -q test@mail.domain ldap:/etc/postfix/ldap-users.cf


если все нормально получим ответ:


Tets-User/Maildir/


Я решил использовать sAMAccountName для определения домашнего каталога пользователя, так как e-mail у пользователя может быть не один а почту нужно складывать в один каталог. Но об этом попозже.


ldap-groups.cf:


server_host = ldap://dc1.dn.local 
ldap://dc2.dn.local 
search_base = dc=dn,dc=local 
version = 3 
query_filter = (&(objectclass=group)(mail=%s)) 
leaf_result_attribute = mail 
result_attribute = mail 
special_result_attribute = member 
bind = yes 
bind_dn = postfix_ldap@dn.local 
bind_pw = password


Проверяем




postmap -q test-gr@mail.domain ldap:/etc/postfix/ldap-users.cf


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


О квотах на почтовые ящики есть хорошая статья


Dovecot:





dovecot.conf


protocols = pop3 
listen = * 
ssl_disable = yes 
disable_plaintext_auth=no 
mail_location = maildir:~/Maildir 
mail_access_groups = vmail 
protocol pop3 { 
pop3_uidl_format = %08Xu%08Xv 
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh 
} 
auth_cache_size = 1024 
auth_username_format = %Lu 
mail_uid=800 
mail_gid=800 
auth_ntlm_use_winbind = yes 
auth_winbind_helper_path = /usr/bin/ntlm_auth 
auth default { 
mechanisms = plain login ntlm 
passdb pam { 
args = dovecot 
} 
userdb ldap { 
args = /etc/dovecot-ldap.cf 
} 
}


О PAM Authentication отлично написано тут


dovecot-ldap.cf


uris = ldap://dn.local 
base = dc=dn,DC=local 
dn = CN=postfix_ldap,OU=Account,DC=dn,DC=local 
dnpass=password 
ldap_version = 3 
auth_bind = yes 
deref = never 
scope=subtree 
user_filter = (&(objectClass=Person)(sAMAccountName=%n)(!(userAccountControl=514))) 
user_attrs = sAMAccountName=home=/home/vmail/%$


user_attrs – мы указали домашний каталог аналогично как у postfix.


Так сложилось что у меня 2-ва равноправных внешних домена, и почту доставлять для второго тоже нужно. Адрес второго домена мы пропишем в атрибут otherMailbox . Далее мы добавим в main.cf к переменной virtual_mailbox_domains еще один домен:


virtual_mailbox_domains = $mydomain, mail.doman2.


В /etc/postfix/ldap-users.cf меняем query_filter на


query_filter = (&(objectclass=person)(|(mail=%s)(otherMailbox=%s))(!(userAccountControl=514))) 


Вот и все.


Как сделать чтобы второй домен автоматом прописывался в otherMailbox читаем тут.

----------------------------------
P.S. Если Вам понравилась статья, или статья была Вам интересна – кликните на рекламе :)

Ярлыки: