dir = /opt/CA [ ca ] default_ca = CA_default [ CA_default ] serial = $dir/serial database = $dir/index.txt new_certs_dir = $dir/newcerts certificate = $dir/rootCA.crt private_key = $dir/private/rootCA.key default_days = 365 default_md = md5 preserve = no email_in_dn = no nameopt = default_ca certopt = default_ca policy = policy_match [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional #Заполняем своими данными [req] default_bits = 4096 default_md = md5 string_mask = nombstr distinguished_name = req_distinguished_name req_extensions = v3_req [ req_distinguished_name ] 0.organizationName = zavod organizationalUnitName = zeh emailAddress = zeh@mail.ru emailAddress_max = 40 localityName = Saratov stateOrProvinceName = Saratovskaja obl countryName = Russia countryName_min = 2 countryName_max = 2 commonName = kontora.ru commonName_max = 64 #Значения по умолчанию 0.organizationName_default = n/a localityName_default = Saratov stateOrProvinceName_default = Russia countryName_default = RU [ v3_ca ] basicConstraints = CA:TRUE subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer:always [ v3_req ] basicConstraints = CA:FALSE subjectKeyIdentifier = hashСоздаём два каталога newcerts и private. Находясь в /opt/CA даём команды - echo '01' > serial и touch index.txt.
openssl req -new -x509 -extensions v3_ca -keyout private/rootCA.key -out rootCA.crt -days 4000 -config ./openssl.cnfФайл rootCA.key - закрытый секретный ключ
openssl req -new -nodes -out kontora.ru.csr -keyout kontora.ru.key -config ./openssl.cnfфайл kontora.ru.key - закрытый секретный ключ, нужен для SSL кодирования
openssl ca -out kontora.ru.crt -config ./openssl.cnf -infiles kontora.ru.csrФайл kontora.ru.crt - сертификат
#/usr/lib/sasl2 pwcheck_method: auxprop auxprop_plugin: sasldb mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
protocols = imap imaps pop3 pop3s disable_plaintext_auth = yes ssl_disable = no ssl_cert_file = /etc/pki/dovecot/certs/kontora.ru.crt ssl_key_file = /etc/pki/dovecot/private/kontora.ru.key login_chroot = yes login_user = dovecot mail_location = maildir:/var/spool/mail/%u:INBOX=/var/spool/mail/%u protocol imap { } protocol pop3 { } protocol lda { } auth default { mechanisms = plain login passdb pam { } userdb passwd { } user = root socket listen { client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } } } dict { } plugin { }
mailbox_size_limit = 240000000 message_size_limit = 128000000 disable_vrfy_command = yes queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix mail_owner = postfix myhostname = kontora.ru mydomain = kontora.ru myorigin = $myhostname inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost unknown_local_recipient_reject_code = 550 mynetworks = 127.0.0.0/8 relay_domains = $mydestination relay_domains_reject_code = 554 relayhost = alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mail_spool_directory = /var/spool/mail/ debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.3.3/samples readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES inet_protocols = all smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination smtpd_sasl_authenticated_header = yes smtpd_sasl_path = smtpd smtpd_sasl_local_domain = $myhostname smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_require_helo = yes
Обращаю внимание: при создании пользователя в каталоге /var/spool/mail/ появляется файл с одноимённым названием. Его надо удалить и на его месте создать каталог с таким же именем. Выставить права на этот каталог, например пользователь valera: хозяин - valera, группа - mail. Можно также запретить логиниться пользователю в системе, прописав в /etc/passwd :/sbin/nologin.
Также обязательны для нормальной работы почтового сервера правильные записи в DNS домена kontora.ru зоны A, PTR и MX!
Запускаем службы dovecot и postfix, контролируя процессы запуска /var/log/maillog. Затем, при нормальном запуске служб, можно настроить почтовый клиент. Имя сервера входящие и исходящие - kontora.ru. Процессы подключения также контролировать /var/log/maillog
После того как убедимся, что клиент может получать и отправлять почту, можно настроить веб-интерфейс.
Используем пакет squirrelmail-1.4.8-5.el5.
Настройка squirrelmail:
запустить /usr/share/squirrelmail/config/conf.pl
В меню выбрать "D" (Set pre-defined setting for specific IMAP servers), установить в качестве IMAP-сервера - dovecot
Затем выбрать "3" (Folder Defaults), установить "Default Folder Prefix" - INBOX
Выбрать "10" (Languages), установить "Default Language" - ru_RU и "Default Charset" - utf-8
И последнее: выбрать "2" (Server Settings), установить "Domain" - kontora.ru
"S" сохранить и "Q" выйти
Размер вложений в отправляемых письмах можно установить, отредактировав /etc/php.ini
post_max_size = xxM upload_max_filesize = xxMГде xx размер в мегабайтах. После редактирования необходимо перегрузить apache.
service httpd restart
Размещаем на нашем сайте kontora.ru ссылку /webmail и можно работать.
Данный сервер из разряда простых, рассчитанный на малое количество пользователей.
Собственно процедура похожа, за некоторыми мелочами: в CentOS 5.x использовался dovecot версии 1.х, а в CentOS 6.x dovecot версии 2.х.
/etc/dovecot/dovecot.conf:auth_mechanisms = plain login mail_location = maildir:/var/spool/mail/%u:INBOX=/var/spool/mail/%u mail_access_groups = mail passdb { driver = pam } protocols = imap pop3 service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } # user = root } service imap-login { chroot = login user = dovecot } service pop3-login { chroot = login user = dovecot } ssl_cert = </etc/pki/dovecot/certs/kontora.ru.crt ssl_key = </etc/pki/dovecot/private/kontora.ru.key userdb { driver = passwd } protocol imap { mail_plugins = $mail_plugins autocreate }
Ну и можно изменить немного файл конфигурации postfix, добавив немного защиты от спама. main.cf:
queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix mydomain = kontora.ru myorigin = $mydomain mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain unknown_local_recipient_reject_code = 550 mynetworks = 192.168.0.0/24 127.0.0.0/8 relay_domains = $mydestination relay_domains_reject_code = 554 mailbox_size_limit = 512000000 message_size_limit = 240000000 mail_owner = postfix inet_interfaces = all relayhost = alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mail_spool_directory = /var/spool/mail/ debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_recipient_restrictions = reject_non_fqdn_recipient, reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unknown_recipient_domain, permit_mynetworks,reject_unauth_destination, permit_sasl_authenticated, reject_non_fqdn_hostname, reject_invalid_hostname, reject_rbl_client relays.ordb.org, reject_rhsbl_sender dsn.rfc-ignorant.org, reject_unverified_sender, permit smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, reject_unknown_helo_hostname, permit smtpd_sasl_authenticated_header = yes smtpd_sasl_path = smtpd smtpd_sasl_local_domain = $myhostname smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_require_helo = yes disable_vrfy_command = yes smtpd_data_restrictions = reject_unauth_pipelining,reject_multi_recipient_bounce smtpd_etrn_restrictions = reject smtpd_reject_unlisted_sender = yes smtpd_reject_unlisted_recipient = yes smtpd_helo_required = yes strict_rfc821_envelopes = yes smtpd_delay_reject = yes smtpd_hard_error_limit = 1 smtpd_recipient_limit = 40 readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES sample_directory = /usr/share/doc/postfix-2.6.6/samples data_directory = /var/lib/postfixГлавная