Настроика сервера электронной почты. Вспомогательные пакеты: mysql cirus-sasl postfix-admin apache+php Установка Mysql предварительно установим setenv WITH_OPENSSL yes make install clean /usr/local/bin/mysql_secure_installation Установим openssl cd /usr/ports/security/openssl Установим Cirus-sasl2 cd /usr/ports/security/cyrus-sasl2 make install clean cd /usr/ports/security/cyrus-sasl2-saslauthd/ make install clean добавляем при сборке опцию mysql Для аутентификации курьер imap устанвливаем courier-authlib cd /usr/ports/security/courier-authlib make install clean добавим поддержку mysql courier_authdaemond_enable="YES" Отредактируем конфигурационные файлы ee /usr/local/etc/authlib/authdaemonrc authmodulelist="authmysql" authmodulelistorig="authmysql" DEBUG_LOGIN=2 ee /usr/local/etc/authlib/authmysqlrc MYSQL_SOCKET /tmp/mysql.sock MYSQL_SERVER localhost MYSQL_PORT 3306 MYSQL_USERNAME postfix MYSQL_PASSWORD postfix MYSQL_DATABASE postfix MYSQL_CHARACTER_SET utf8 MYSQL_USER_TABLE mailbox MYSQL_CLEAR_PWFIELD password MYSQL_UID_FIELD '5555' MYSQL_GID_FIELD '5555' MYSQL_LOGIN_FIELD username MYSQL_HOME_FIELD '/var/spool/mail/virtual' MYSQL_NAME_FIELD name MYSQL_QUOTA_FIELD quota MYSQL_WHERE_CLAUSE active='1' MYSQL_PORT 3306 Стартуем сервер: /usr/ports/security/courier-authlib # /usr/local/etc/rc.d/courier-authdaemond start Установим Courier-imap cd /usr/ports/mail/courier-imap/ добавляем transhquota, auth_mysql Отредактрируем конфиг POP3AUTH="PLAIN LOGIN CRAM-MD5" POP3AUTH_ORIG="PLAIN LOGIN CRAM-MD5" POP3AUTH_TLS="PLAIN LOGIN CRAM-MD5" POP3AUTH_TLS_ORIG="LOGIN PLAIN CRAM-MD5" LOGGEROPTS="-name=courier-imap" POP3DSTART=YES Стартуем не забудем добавить courier_imap_pop3d_enable="YES" /usr/local/etc/rc.d/courier-imap-pop3d start Установка Postfix Поставим значение опций ee /etc/defaults/periodic.conf daily_clean_hoststat_enable="NO" daily_status_mail_rejects_enable="NO" daily_status_include_submit_mailq="NO" daily_submit_queuerun="NO" непосредственно установка cd /usr/ports/mail/postfix make install clean опции pcre, sasl2, tls, mysql, vda отредактируем файл main.cf ''mail_owner = postfix\\ myhostname = mx.mkm.local\\ inet_interfaces = all\\ mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain\\ mynetworks = 127.0.0.0/8\\ smtpd_etrn_restrictions = reject\\ smtpd_reject_unlisted_sender = yes\\ disable_vrfy_command = yes\\ smtpd_sasl_auth_enable = yes\\ broken_sasl_auth_clients = yes\\ smtpd_sasl_security_options = noanonymous\\ smtpd_sender_login_maps = mysql:$base/mysqlLookupMaps/sender.conf\\ virtual_alias_maps = mysql:$base/mysqlLookupMaps/alias.conf\\ virtual_mailbox_domains = mysql:$base/mysqlLookupMaps/domain.conf\\ virtual_mailbox_maps = mysql:$base/mysqlLookupMaps/mailbox.conf\\ virtual_mailbox_base = /var/spool/mail/virtual\\ virtual_mailbox_limit_maps = mysql:$base/mysqlLookupMaps/quota.conf\\ virtual_maildir_extended = yes\\ virtual_mailbox_limit_override = yes\\ virtual_create_maildirsize = yes\\ virtual_overquita_bounce = yes\\ virtual_maildir_limit_message = "Mailbox is full!!!"\\ message_size_limit = 10485760\\ virtual_gid_maps = static:5555\\ virtual_uid_maps = static:5555\\ '' ee /usr/local/lib/sasl2/smtpd.conf ''pwcheck_method: auxprop log_level: 3 \\ mech_list: PLAIN LOGIN CRAM-MD5 \\ auxprop_plugin: sql\\ sql_usessl: yes\\ sql_engine: mysql\\ sql_hostnames: localhost\\ sql_user: postfix\\ sql_passwd: postfix\\ sql_database: postfix\\ sql_select: select password from mailbox where username = '%u@%r'\\ '' cd /usr/local/etc/postfix/ mkdir mysqlLookupMaps touch hello_access touch client_access touch sender_access touch recipient_access postmap hello_access postmap sender_access postmap recipient_access postmap client_access cd mysqlLookupMaps/ touch alias.conf touch domain.conf touch mailbox.conf touch quota.conf touch sender.conf ee alias.conf '' user = postfix\\ password = postfix\\ hosts = localhost\\ dbname = postfix\\ table = alias\\ select_field = goto\\ where_field = address\\ '' ee domain.conf '' user = postfix \\ password = postfix\\ hosts = localhost\\ dbname = postfix\\ table = domain\\ select_field = domain \\ where_field = domain \\ additional_conditions = and active = '1' and backupmx = '0' \\ '' ee mailbox.conf '' user = postfix password = postfix hosts = localhost dbname = postfix table = mailbox select_field = mailbox where_field = username additional_conditions = and active = '1' '' ee quota.conf '' user = postfix \\ password = postfix\\ hosts = localhost\\ dbname = postfix\\ table = mailbox\\ select_field = quota\\ where_field = username\\ additional_conditions = and active = '1'\\ '' ee sender.conf '' user = postfix \\ password = postfix\\ hosts = localhost\\ dbname = postfix \\ table = mailbox\\ select_field = username \\ where_field = username\\ additional_conditions = and active = '1' \\ '' Создадим пользователя virtual pw group add virtual - g 5555 pw user add virtual -g virtual -s /sbin/nologin mkdir /var/spool/mail/virtual chown virtual:virtual /var/spool/mail/virtual chown -R root:postfix /usr/local/etc/postfix/mysqlLookupMaps/ chmod 440 /usr/local/etc/postfix/mysqlLookupMaps/*.conf chmod 550 /usr/local/etc/postfix/mysqlLookupMaps/ Установим веб интерфейс управления - PostfixAdmin cd /usr/ports/mail/postfixadmin/ make install clean после этого в конфиг апача дописываем '' \\ AllowOverride Limit \\ Options None \\ Order allow,deny \\ Allow from all \\ \\ ''