установка и запуск Openchange Для начала настроим postfix и dovecot Для корректной работы необходимо отключить iptables и selinux Настроим сетевое подключение и пропишем днс серверы. Установим mysql yum install mysql mysql-server mysql-devel -y Добавим его в автозагрузку chkconfig mysqld on Запустим его service mysqld start Настроим сервер на запрос пароля при подключение mysql_secure_installation ## Тут задается пароль пользователю root сервера mysql(не системному) Заходим в консоль mysql и создаем базу и пользователя для работы с почтой mysql -u root -p (после вводим пароль root на mysql) create database mail; grant all privileges on mail.* to 'postfix'@'localhost' identified by '123qaz'; exit Непосредственно установка и настройка postfix yum install postfix pam mod_ssl openssl crypto-utils mc system-config-firewall-tui setuptool wget -y сделаем копию всей парки etc в домашний каталог root tar czvf /root/etc1.tar.gz /etc Заменим содержимое /etc/postfix/main.cf следующим ''soft_bounce = no \\ queue_directory = /var/spool/postfix \\ daemon_directory = /usr/libexec/postfix \\ mail_owner = postfix \\ default_privs = nobody \\ inet_interfaces = all \\ myhostname = mx.nadejnei.net \\ mydomain = nadejnei.net \\ myorigin = $mydomain \\ mydestination = $myhostname,localhost.$myhostname,localhost \\ local_recipient_maps = proxy:unix:passwd.byname $alias_maps \\ unknown_local_recipient_reject_code = 550 \\ mynetworks = 127.0.0.0/8 \\ relay_domains = \\ alias_maps = hash:/etc/aliases \\ alias_database = hash:/etc/aliases \\ mail_spool_directory = /var/mail \\ smtpd_banner = $myhostname ESMTP \\ debug_peer_level = 2 \\ debug_peer_list = 127.0.0.1 \\ 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 \\ mailq_path = /usr/bin/mailq \\ setgid_group = postdrop \\ html_directory = no \\ manpage_directory = /usr/local/man \\ config_directory = /etc/postfix \\ ###################################### \\ virtual_mailbox_domains = mysql:$config_directory/sql/vdomains.cf \\ virtual_mailbox_base = /var/vmail \\ virtual_mailbox_maps = mysql:$config_directory/sql/vmailbox.cf \\ virtual_alias_maps = mysql:$config_directory/sql/valias.cf \\ virtual_minimum_uid = 1150 \\ virtual_uid_maps = static:1150 \\ virtual_gid_maps = static:12 \\ virtual_transport = dovecot \\ dovecot_destination_recipient_limit = 1 \\ smtpd_sasl_auth_enable = yes \\ smtpd_sasl_exceptions_networks = $mynetworks \\ smtpd_sasl_security_options = noanonymous \\ broken_sasl_auth_clients = yes \\ smtpd_sasl_type = dovecot \\ smtpd_sasl_path = /var/spool/postfix/private/dovecot-auth \\ ################################################# \\ smtpd_recipient_restrictions = permit_mynetworks, \\ permit_sasl_authenticated, \\ reject_unauth_destination, \\ reject_non_fqdn_recipient, \\ reject_invalid_hostname, \\ reject_unknown_recipient_domain, \\ reject_unknown_client, \\ reject_unlisted_recipient, \\ reject_unverified_recipient, \\ reject_unauth_pipelining, \\ reject_rbl_client cbl.abuseat.org, \\ reject_rbl_client dialups.mail-abuse.org, \\ reject_rbl_client bl.spamcop.net, \\ reject_rbl_client zen.spamhaus.org, \\ reject_rbl_client sbl-xbl.spamhaus.org,\\ permit \\ '' создадим пользователя useradd -r -u 1150 -g mail -d /var/vmail -s /sbin/nologin -c Virtual vmail Здесь правило reject_unauth_destination - должно запрещать открытый релей через ваш сервер. Создадим дополнительные конфигурационные файлы, которые указаны в /etc/postfix/main.cf, эти файлы отвечают за обращение к базе данных MySQL mkdir /etc/postfix/sql touch /etc/postfix/sql/vdomains.cf добавим в него ''user = postfix \\ password = password \\ hosts = localhost \\ dbname = mail \\ table = domain \\ select_field = domain \\ where_field = domain \\ additional_conditions = and backupmx = '0' and active = '1' \\ '' touch /etc/postfix/sql/vmailbox.cf запишем в него ''password = password \\ hosts = localhost \\ dbname = mail \\ table = mailbox \\ select_field = CONCAT(domain,'/',maildir) \\ where_field = username \\ additional_conditions = and active = '1' \\ '' touch /etc/postfix/sql/valias.cf запишем в него ''user = postfix \\ password = password \\ hosts = localhost \\ dbname = mail \\ table = alias \\ select_field = goto \\ where_field = address \\ additional_conditions = and active = '1''' Установим Dovecot yum install dovecot dovecot-mysql -y Чтобы Dovecot служил локальным транспортом, допишем следующие строчки в /etc/postfix/master.cf ''dovecot unix - n n - - pipe \\ flags=DRhu user=vmail:mail argv=/usr/libexec/dovecot/deliver -d $(recipient) \\'' В конец main.cf добавим Чтобы лучше отбивался спам, добавим также следующие ограничения: ''smtpd_client_restrictions = \\ reject_unauth_pipelining, \\ permit_sasl_authenticated, \\ permit_mynetworks, \\ reject_unknown_client_hostname, \\ permit \\ smtpd_helo_restrictions = \\ permit_mynetworks, \\ permit_sasl_authenticated, \\ reject_invalid_hostname, \\ reject_invalid_helo_hostname, \\ reject_unknown_hostname, \\ reject_non_fqdn_helo_hostname, \\ reject_unknown_helo_hostname, \\ permit \\ smtpd_sender_restrictions = \\ permit_sasl_authenticated, \\ permit_mynetworks, \\ reject_non_fqdn_sender, \\ reject_authenticated_sender_login_mismatch, \\ reject_unauthenticated_sender_login_mismatch, \\ reject_unknown_sender_domain, \\ permit_sasl_authenticated, \\ reject_sender_login_mismatch \\ permit \\ '' Скопируем etc еще раз уже под номером 2 см выше. Настроим dovecot Заменим содержимое /etc/dovecot/dovecot.conf следующим ''# 2.0.9: /etc/dovecot/dovecot.conf \\ # OS: Linux 2.6.32-220.7.1.el6.i686 i686 CentOS release 6.6 (Final) ext4 \\ auth_debug = yes \\ auth_debug_passwords = yes \\ auth_mechanisms = plain login cram-md5 \\ auth_verbose = yes \\ base_dir = /var/run/dovecot/ \\ disable_plaintext_auth = no \\ ssl = no \\ first_valid_uid = 1150 \\ last_valid_uid = 1150 \\ log_timestamp = %Y-%m-%d %H:%M:%S \\ mail_debug = yes \\ mail_location = maildir:/var/vmail/%d/%u \\ passdb { \\ args = /etc/dovecot/dovecot-sql.conf \\ driver = sql \\ } \\ protocols = imap pop3 \\ service auth { \\ unix_listener /var/spool/postfix/private/dovecot-auth { \\ user = postfix \\ group = postfix \\ mode = 0660 \\ } \\ unix_listener auth-master { \\ user = vmail \\ group = mail \\ mode = 0660 \\ } \\ unix_listener auth-userdb { \\ user = vmail \\ group = mail \\ mode = 0660 \\ } \\ #user=root } \\ service imap-login { \\ executable = /usr/libexec/dovecot/imap-login \\ inet_listener imap { \\ address = * \\ port = 143 \\ } \\ } \\ service imap { \\ executable = /usr/libexec/dovecot/imap \\ } \\ service pop3-login { \\ executable = /usr/libexec/dovecot/pop3-login \\ inet_listener pop3 { \\ address = * \\ port = 110 \\ } \\ } \\ service pop3 { \\ executable = /usr/libexec/dovecot/pop3 \\ } \\ userdb { \\ args = /etc/dovecot/dovecot-sql.conf \\ driver = sql \\ } \\ protocol lda { \\ auth_socket_path = /var/run/dovecot/auth-master \\ postmaster_address = admin@point.local \\ } '' создаем /etc/dovecot/dovecot-sql.conf и записываем в него: '' driver = mysql \\ connect = host=localhost dbname=mail user=postfix password=password \\ default_pass_scheme = CRAM-MD5 \\ user_query = SELECT '/var/vmail/%d/%n' as home, 'maildir:/var/vmail/%d/%n'as mail, 1150 AS uid, 12 AS gid,\\ concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1' \\ password_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/var/vmail/%d/%n' as userdb_mail, 1150 as userdb_uid, 12 asuserdb_gid FROM mailbox WHERE username = '%u' AND active = '1' '' Установим Postgrey для этого установим репозиторий rpmforge rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm установим Postgrey: yum install postgrey -y После установки рекомендуется отключить репозиторий rpmforge в /etc/yum.repos.d/rpmgorge.repo проставить enable=0 после строки reject_unauth_destination файла main.cf вставляем check_policy_service unix:/var/spool/postfix/postgrey/socket, Установим антивирус Clamav Для этого подключим репозиторий epel rpm -Uvh http://mirror.yandex.ru/epel/6Server/x86_64/epel-release-6-8.noarch.rpm yum install clamav clamav-server clamsmtp –y Обновим и установим и включим автобновление fresclam -v fresclam -d Сохраним исходный конфиг mv /etc/clamsmtpd.conf /etc/clamsmtpd.conf.orig и создадим новый touch /etc/clamsmtpd.conf отредактируем его ''OutAddress: 10026 \\ TimeOut: 180 \\ KeepAlives: 0 \\ XClient: on \\ Listen: 127.0.0.1:10025 \\ ClamAddress: /var/run/clamav/clamd.sock \\ Header: X-Virus-Scanned: ClamAV using ClamSMTP \\ TempDirectory: /var/tmp \\ Action: drop \\ Quarantine: on \\ User: clam'' Дадим пользователю права доступа к нужным папкам и файлам chown clam:mail -R /var/run/clamd.clamsmtp/ chown clam:clam -R /var/lib/clamd.clamsmtp Подключим фильтрацию вирусов к postfix в /etc/postfix/main.cf добавим ''content_filter = scan:127.0.0.1:10025 \\ receive_override_options = no_address_mappings'' а в master.cf vi /etc/postfix/master.cf ''scan unix - - n - 16 smtp -o smtp_send_xforward_command=yes \\ 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 '' Установим Postfixadmin и apache yum -y install httpd php php-imap php-mbstring php-common php-pdo php-mysql php-cli перейдем в /var/www/html и скачаем postfixadmin и распакуем его cd /var/www/html wget http://sourceforge.net/projects/postfixadmin/files/postfixadmin/postfixadmin-2.91/postfixadmin-2.91.tar.gz/download -O postfixadmin-2.91.tar.gz tar -xvzf postfixadmin-2.91.tar.gz mv postfixadmin-2.91/ postfixadmin cd postfixadmin Сменим владельца на apache chown -R apache:apache /var/www/html/postfixadmin/templates_c откроем /var/www/html/postfixadmin/config.inc.php и укажем настроики $CONF['configured'] = true; $CONF['database_type'] = 'mysql'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfix'; $CONF['database_password'] = 'password'; $CONF['database_name'] = 'mail'; $CONF['encrypt'] = 'dovecot:CRAM-MD5'; $CONF['dovecotpw'] = "/usr/bin/doveadm pw"; $CONF['emailcheck_resolve_domain']='YES'; Включаем автозагрузку всего что нужно chkconfig mysqld on chkconfig dovecot on chkconfig postfix on chkconfig httpd on chkconfig postgrey on chkconfig clamd on chkconfig clamsmtpd on chkconfig saslauthd on