The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Postfix +Cyrus-Imapdi +ClamAvi +Clamsmtpi +Аутентификация в Active ..."
Отправлено appc, 18-Сен-05 14:52 
Встала предомной задача, сделать почтовый сервер у себя в конторе для внутреннего испльзования и сделал :).
Есть у меня что-то типа опсания моих действий. Хочу выложить его чтобы другие могли в будующем пользоваться. Но в том виде как оно есть выкладывать стыдно, как-то все коряво. Посоветуйте как мне все это формить чтобы этим моим черновиком можно было пользоваться как неким руководством :)

Текст привожу ниже:
Общие параметры
Сервер:
ОС: Fedora Core 3
FQDN: k1-210.domain
Выполняемые функции: Почтовый сервер для внутреннего использования + Веб-интерфейс к почте
Требования к почтовому серверу:
•    Почта пользователей храниться на сервере (так проще делать Backup)
•    Не создавать пользователей дважды (Сначала в Active Directory потом на почтовом сервере)
•    Нужно чтобы имя пользователя и пароль на вход в Windows подходил и для почтового сервера, если пользователь сменил пароль в Windows, то пароль на почтовом сервере тоже должен смениться
•    В именах пользователей в AD присутствуют точки например: a.ivanov (так сложилось исторически)
•    
•    Нужно чтобы у пользователей была возможность самостоятельно перенаправить почту на другой ящик.
•    Вся переписка должна проверяться на вирусы
•    Хочеться иметь возможность использовать «Группы распространения» в Active Directory как почтовые псевдонимы
•    Желательно чтобы был WEB интерфейс для пользователей
Глядя на выше перечисленные требования я остановил свой выбор на следующих программах:
Дистрибутив: FC3
•    первое что попалось под руку
В качестве почтового сервера cyrus-imapd:
•    Это первое на что я наткнулся  и что отвечало моим требованиям
•    Есть возможность работать с почтой прямо на сервере (IMAP)
•    Есть возможность создавать ящики пользователям автоматически при первом входе или поступления письма через lmtp
•    Можно создавать Sieve скрипты которые позволяют управлять письмами (автоматически сортировать по папкам, перенаправлять на другой ящик и т.д. и т.п.)
В качестве MTA postfix:
•    Мне с ним проще работать чем с каким-либо другим MTA
•    Можно общаться с AD как с LDAP сервером (проверять наличие пользователя, использовать «Группы распространения» в качестве почтовых псевдонимов.
•    Можно подключить ClamAv для проверки писем на вирусы
В качестве WEB интерфейса Squirrelmail
•    Нашел в Google список вещей которые могут работать как web интерфейс к почте. SquirrelMail получилось настроить с первого раза
Аутентификация через Winbind
Параметры установки системы
Установка пакетов и дополнительных программ
Делаем минимальную установку
После установки обновляемся до последних версий с помощью yum –y update
Доставляем нужные пакеты и удаляем мешающие
/var/log/yum.log:
Sep 14 10:49:06 Installed: desktop-file-utils.i386 0.9-2
Sep 14 11:43:23 Installed: mc.i386 1:4.6.1-1.FC3
Sep 14 12:05:08 Installed: postfix.i386 2:2.1.5-5
Sep 14 12:14:28 Installed: samba-common.i386 3.0.10-1.fc3
Sep 14 12:14:28 Installed: samba-client.i386 3.0.10-1.fc3
Sep 14 12:27:29 Installed: cyrus-imapd.i386 2.2.12-1.1.fc3
Sep 14 12:29:16 Installed: perl-Cyrus.i386 2.2.12-1.1.fc3
Sep 14 12:29:16 Installed: cyrus-imapd-murder.i386 2.2.12-1.1.fc3
Sep 14 12:29:16 Installed: cyrus-imapd-nntp.i386 2.2.12-1.1.fc3
Sep 14 12:29:16 Installed: cyrus-imapd-utils.i386 2.2.12-1.1.fc3
Sep 14 12:37:10 Installed: apr.i386 0.9.4-24.2
Sep 14 12:37:10 Installed: libidn.i386 0.5.6-1
Sep 14 12:37:10 Installed: curl.i386 7.12.3-3.fc3
Sep 14 12:37:10 Installed: apr-util.i386 0.9.4-17
Sep 14 12:37:10 Installed: libc-client.i386 2002e-8
Sep 14 12:37:11 Installed: httpd.i386 2.0.53-3.3
Sep 14 12:37:12 Installed: php.i386 4.3.11-2.7
Sep 14 12:37:12 Installed: php-pear.i386 4.3.11-2.7
Sep 14 12:37:12 Installed: httpd-suexec.i386 2.0.53-3.3
Sep 14 12:37:14 Installed: squirrelmail.noarch 1.4.6-0.cvs20050812.1.fc3
Sep 14 12:37:14 Installed: php-imap.i386 4.3.11-2.7
Sep 14 17:35:36 Installed: openldap-clients.i386 2.2.13-2
Sep 14 18:16:25 Installed: cyrus-sasl-gssapi.i386 2.1.19-3
Sep 16 11:15:05 Installed: rpm-build.i386 4.3.2-21
Sep 16 12:16:14 Installed: php-mbstring.i386 4.3.11-2.7
Sep 16 19:41:26 Installed: openldap-clients.i386 2.2.13-2
Sep 18 10:21:04 Installed: autoconf.noarch 2.59-5
Sep 18 10:21:06 Installed: automake.noarch 1.9.2-3
Sep 18 10:43:21 Installed: ntp.i386 4.2.0.a.20040617-5.FC3
Sep 18 12:18:50 Installed: fetchmail.i386 6.2.5-7.fc3.1
Sep 14 12:05:20 Erased: sendmail
Вытыскиваем последнии версии, собираем и устанавливаем следующие пограммы:
+clamav
+clamsmtpd
Настройка программ
Настройка Почтовой подсистемы
Файл /etc/postfix/main.cf (параметры отличающиеся от параметров по умолчанию):
alias_maps      hash:/etc/aliases
content_filter     scan:127.0.0.1:10025
mailbox_transport     cyrus
fallback_transport     lmtp:unix:/var/lib/imap/socket/lmtp
local_recipient_maps     ldap:/etc/postfix/ldap_local_recipient_maps.conf
mydestination     $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomain, k1-210.$mydomain, kant-mail5.$mydomain
mynetworks     192.168.0.0/16, 127.0.0.0/8
myorigin     $myhostname
relayhost     smtp.domain
virtual_alias_maps     ldap:/etc/postfix/ldap_aliases.conf

/etc/postfix/ldap_local_recipient_maps.conf
server_host = domain
server_port = 389
search_base = dc=domain
timeout = 2
query_filter = (&(objectClass=user)(samAccountName=%u))
result_attribute = samAccountName
scope = sub
bind = yes
bind_dn =cn=postfix,cn=Users,dc=domain
bind_pw =secret
version = 3

/etc/postfix/ldap_aliases.conf
server_host = domain
server_port = 389
search_base = dc= domain
timeout = 3
query_filter = (&(mail=%s)(sAMAccountType=268435457))
result_filter = %u
result_attribute = userPrincipalName
special_result_attribute = member
scope = sub
bind = yes
bind_dn =cn=postfix,cn=Users,dc= domain
bind_pw =secret
version = 3

В /etc/postfix/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

Файл /etc/cyrus.conf
# standard standalone server implementation

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/lib/imap/sockets
SERVICES {
  # add or remove based on preferences
  imap          cmd="imapd" listen="imap" prefork=5
  imaps         cmd="imapd -s" listen="imaps" prefork=1
  pop3          cmd="pop3d" listen="pop3" prefork=3
  pop3s         cmd="pop3d -s" listen="pop3s" prefork=1
  sieve         cmd="timsieved" listen="sieve" prefork=0

  # these are only necessary if receiving/exporting usenet via NNTP
#  nntp         cmd="nntpd" listen="nntp" prefork=3
#  nntps                cmd="nntpd -s" listen="nntps" prefork=1

  # at least one LMTP is required for delivery
#  lmtp         cmd="lmtpd" listen="lmtp" prefork=0
  lmtpunix      cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1

  # this is only necessary if using notifications
#  notify       cmd="notifyd" listen="/var/lib/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,
  # Sieve or NNTP
  delprune      cmd="cyr_expire -E 3" at=0400

  # this is only necessary if caching TLS sessions
  tlsprune      cmd="tls_prune" at=0400
}

Файл /etc/imapd.conf
configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: cyrus root
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
autocreatequota: 10000
createonpost: yes
autocreateinboxfolders: Sent|Drafts|Trash
autosubscribeinboxfolders: Sent|Drafts|Trash
allowusermoves: 1
unixhierarchysep: yes
quotawarn: 90
quotawarnkb: 2048
username_tolower: 1
Настройка авторизации и аутентификации
Авторизацию пользоавтелей делаем через winbind
/etc/samba/smb.conf
[global]
        dos charset = CP866
        unix charset = UTF8
        workgroup = domain
        realm = DOMAIN
        server string = Samba server (v.%v) on %L
        security = ADS
        min passwd length = 0
        map to guest = Bad Password
        null passwords = Yes
        log file = /var/log/samba/%m.log
        max log size = 0
        announce version = 5.0 (2195)
        time server = Yes
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        wins server = 192.168.0.3
        ldap ssl = no
        default service = pub
        idmap uid = 10000-20000
        idmap gid = 10000-20000
        template homedir = /home/%U
        winbind use default domain = Yes
        username = samba

Файл /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = DOMAIN
dns_lookup_realm = false
dns_lookup_kdc = false

[realms]
DOMAIN = {
  kdc = domain:88
  admin_server = domain:749
  default_domain = domain
}

[domain_realm]
.domain = DOMAIN
domain = DOMAIN

[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf

[appdefaults]
pam = {
   debug = false
   ticket_lifetime = 36000
   renew_lifetime = 36000
   forwardable = true
   krb4_convert = false
}

Файл /etc/pam.d/system-auth.winbind
auth        required      /lib/security/$ISA/pam_env.so
auth        sufficient    /lib/security/$ISA/pam_winbind.so
auth        sufficient    /lib/security/$ISA/pam_unix.so use_first_pass likeauth nullok
auth        required      /lib/security/$ISA/pam_deny.so
account     sufficient    /lib/security/$ISA/pam_winbind.so
account     required      /lib/security/$ISA/pam_unix.so
account     sufficient    /lib/security/$ISA/pam_succeed_if.so uid < 100 quiet
account     required      /lib/security/$ISA/pam_permit.so
password    requisite     /lib/security/$ISA/pam_cracklib.so retry=3
password    sufficient    /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password    required      /lib/security/$ISA/pam_deny.so
session     required      /lib/security/$ISA/pam_limits.so
session     required      /lib/security/$ISA/pam_unix.so

Файл /etc/sysconfig/saslauthd
и пишем там строчку
MECH=pam

Файл /etc/pam.d/imap
auth       required     pam_stack.so service=system-auth.winbind
account    required     pam_stack.so service=system-auth.winbind
Файл /etc/pam.d/sieve
auth       required     pam_stack.so service=system-auth.winbind
account    required     pam_stack.so service=system-auth.winbind
Файл /etc/pam.d/pop
auth       required     pam_stack.so service=system-auth.winbind
account    required     pam_stack.so service=system-auth.winbind
Файл /etc/pam.d/lmtp
auth       required     pam_stack.so service=system-auth.winbind
account    required     pam_stack.so service=system-auth.winbind

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру