Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

Модуль предназначен для упрощения процесса создания и управления почтовыми ящиками пользователей из интерфейса биллинга.

Возможности

  • Авторизация на отправку почты (Plain Password, TLS)

  • Авторизация на приём почты (Plain Password, TLS)

  • Квоты на размер почтового ящика и количество писем

  • Управление неограниченным количеством доменов

  • Фильтры, аксеслисты, алиасы

  • Антиспам

  • Антивирус

  • Заведение нескольких почтовых ящиков на один пользовательский акаунт

  • Возможность изменять пароль на почтовый ящик пользователем

Установка

abills/libexec/config.pl

@MODULES = (
          'Mail'
          );

При использовании SpamAssasin 

mysql -D abills < db/Mail.sql
$conf{MAIL_CHG_PASSWD}=1;Разрешить пользователям изменять пароли для своих почтовых ящиков
$conf{MAIL_USER_FULL_CONTROL}=1;Разрешить пользователям удалять и добавлять себе почтовые ящики с возможностью снятия платы за услугу
$conf{MAIL_USER_DOMAIN_MNG}=1;Разрешить пользователю управлять своим доменом
$conf{MAIL_SPAMD}='spamassasin';Включить поддержку SpamAssasin

Настройка

Меню Настройка>E-MAIL 

Domains 

Список виртуальных доменов системы.

DomainНазвание домена
TransportТранспорт для данного домена. Возможные варианты:
virtual:
maildrop: Почтовый агент maildrop 
local:
relay:
Backup MXСервер является промежуточный MX для данного домена
DisableБлокировать
CommentsКоментарии

Access

Контроль доступа к почтовой службе.

Меню Клиенты>Логины>E-MAIL List - Список почтовых ящиков системы.

Меню Customers>Logins>Information>Services>E-MAIL - Управление почтовым ящиком пользователя.

Postfix

Используемые константы:
%user% - имя пользователя в MySQL 
%password% - пароль в MySQL
%dbname% - база MySQL
%hosts% - хост MySQL

cyrus-sasl2

SASL - (Simple Authentication and Security Layer) служит для авторизации входящих соединений от пользователей. 


Сборка

cd /usr/ports/security/cyrus-sasl2 
make USE_MYSQL_VERSION=5 WITHOUT_OTP=yes WITHOUT_NTML=yes && make install 

Конфигурация
Создаем файл /usr/local/lib/sasl2/smtpd.conf

pwcheck_method: saslauthd auxprop
mech_list: login plain
auxprop_plugin: sql
sql_engine: mysql  
mysql_user: %dbuser%
mysql_passwd: %dbpasswd%
mysql_database: %dbname%
mysql_hostnames: %dbhost%
mysql_statement: SELECT DECODE(mb.password, 'test12345678901234567890') FROM mail_boxes mb, mail_domains md WHERE CONCAT(mb.username, '@', md.domain)='%u@%r' and mb.domain_id=md.id and mb.status = '0' and (mb.expire = '0000-00-00' or mb.expire > curdate())

Далее

chmod 750 /usr/local/lib/sasl2
chgrp mail /usr/local/lib/sasl2

Автостарт saslauthd при запуске системы FreeBSD

echo saslauthd_enable=\"YES\" >> /etc/rc.conf

проверить механизм авторизации

saslauthd -v

Postfix

        Postfix При установке postfix в меню выбираем поддержку SASL2, VDA, TLS и MYSQL.

cd /usr/ports/mail/postfix && make install clean 

Проверяем собран ли Postfix c поддержкой Cyrus-SASL

postconf -a

Если включён должна присутствовать строка:

cyrus

Проверяем собран ли Postfix c поддержкой Mysql

postconf -m

Если включён должна присутствовать строка:

mysql

После установки

newaliases

main.cf должен содержать:

debug_peer_level = 2
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
#mydestination = $myhostname

disable_vrfy_command = yes
smtpd_helo_required = yes

smtpd_helo_restrictions =       permit_mynetworks, 
                    reject_invalid_hostname, 
                    reject_unknown_hostname,
                    reject_non_fqdn_hostname

smtpd_recipient_restrictions =  permit_mynetworks, 
                    permit_sasl_authenticated, 
                    reject_unauth_destination, 
                    reject_unknown_recipient_domain, 
                    reject_non_fqdn_recipient, 
                    reject_unauth_destination
                      


smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sender_restrictions =     permit_mynetworks, 
                    permit_sasl_authenticated, 
                    reject_unknown_sender_domain, 
                    check_sender_access mysql:/usr/local/etc/postfix/sql/access.cf 
#                      reject_rhsbl_sender dsn.rfc-ignorant.org

transport_maps = mysql:/usr/local/etc/postfix/sql/transport.cf
virtual_alias_maps = mysql:/usr/local/etc/postfix/sql/aliases.cf
virtual_gid_maps = static:1005
virtual_mailbox_base = /var/spool/virtual
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/sql/virtual_domains.cf
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/sql/virtual_mailbox.cf
virtual_mailbox_limit = 51200000
virtual_minimum_uid = 1005
virtual_uid_maps = static:1005
# Additional for quota support for virtual transport
#virtual_create_maildirsize = yes
#virtual_mailbox_extended = yes
#virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/sql/virtual_mailbox_limits.cf
#virtual_mailbox_limit_override = yes
#virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
#virtual_overquota_bounce = yes

maildrop_destination_recipient_limit=1

readme_directory = no
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
html_directory = no
setgid_group = maildrop
manpage_directory = /usr/local/man
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
queue_directory = /var/spool/postfix
mail_owner = postfix

Для TLS авторизации создаём сертификат x509 добавляем в конфиг main.cf:

# tls config
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /usr/abills/Certs/smtpd.key
smtpd_tls_cert_file = /usr/abills/Certs/smtpd.cert
smtpd_tls_CAfile = /usr/abills/Certs/smtpd.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

Создание сертификата

/usr/abills/misc/certs_create.sh postfix_tls

Обратите внимание!  Что virtual uid и gid имеют статическую привязку и эти значения следует изменить на uid и gid юзера, от которого будет работать maildrop. В моем случае, это юзер vmail с uid 1005 и gid 1005. Транспорт virtual не поддерживает квоты, в отличии от maildrop, поэтому, если вы хотите включить поддержку квот для virtual, установите патч VDA

Создайте пользователя vmail с UID 1005 и GID 1005 

Каталог для виртуальных хостов

# mkdir /var/spool/virtual
# chown -R vmail:vmail /var/spool/virtual
# chmod -R 771 /var/spool/virtual

transport.cf

user = %dbuser%
password = %dbpasswd%
dbname = %dbname%
hosts = %dbhost%
query = SELECT transport FROM mail_domains WHERE domain='%d'



  • No labels