Содержание
Вступление
Данный документ описывает установку и настройку почтовой системы на основе Postfix, Cyrus-SASL, MySQL, Courier-IMAP, postfixadmin, clamav, spamassassin, amavisd-new. При этом нет разницы, сколько почтовых доменов заведено в системе, как называются пользователи, мы будем использовать виртуальных пользователей, которые с системными никак не пересекаются.
Перед началом настройки данной связки рекомендую обновить дерево портов.
В нашем распоряжении имеется следующая система:
# uname -a
FreeBSD www.it-volga.org 8.1-STABLE FreeBSD 8.1-STABLE
C двумя сетевыми интерфейсами:
rl0 [y.y.y.y] – внутренний ip
rl1 [x.x.x.x] – внешний ip, выданный провайдером
Примечание .
Если вы настраиваете новую систему и собираетесь ее использовать в промышленных целях, настоятельно рекомендую до начала сборки пакетов обновить систему (мир) и применить все патчи безопасности.
Итак, начнем по порядку. Скорее всего, perl уже стоит у вас в системе, т.к. на него завязано слишком много пакетов. В линуксе он вообще сразу ставится с системой. Если perl не установлен, то ставим его
# cd /usr/ports/lang/perl5.8/
# make install clean
# rehash
Некоторые командные процессоры для ускорения поиска выполнимых файлов и команд кэшируют имена программ, доступных для вызова из каталогов, перечисленных в переменной окружения PATH.
Если вы используете один из таких командных процессоров, то перед использованием только что добавленных программ вам может понадобиться вызвать команду rehash после установки порта. Эта команда будет работать с такими оболочками, как, например, tcsh.
При работе с такими командными процессорами, как sh или shells/bash, воспользуйтесь командой hash -r. Дополнительную информацию можно найти в документации к вашему командному процессору
Openssl
Устанавливаем openssl. Он нам понадобится для генерации сертификатов/ключей, а также для поддержки SSL/TLS.
# cd /usr/ports/security/openssl/
# make install clean
# rehash
Mysql
Устанавливаем и настраиваем MySQL. На unix системах, наверное, одна из самых распространенных СУБД. MySQL необходим для работы postfixadmin. В базе данных мы будем хранить информацию о пользователях и почтовых ящиках.
# cd /usr/ports/databases/mysql51-server/
# setenv BUILD_OPTIMIZED yes
# setenv WITH_OPENSSL yes (если mysql будет работать на той же машине и обслуживать тока этот хост, можно отключить поддержку ssl)
# setenv WITH_CHARSET utf8
# make install clean
# rehash
Устанавливаем набор вспомогательных скриптов, которые помогают настроить MySQL.
# cd /usr/ports/databases/mysql51-scripts/
# make install clean
# rehash
Производим первоначальную настройку MySQL сервера. Настраиваем запуск MySQL вместе с системой
# echo ‘mysql_enable=»YES»‘ >> /etc/rc.conf
Создаем конфигурационный файл, исправляем по своему желанию
# cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf
Единственное, что я подправил, так это указал лог файл и в целях безопасности указал, чтобы mysql слушал только localhost. Если вы не собираетесь «выставлять» mysql наружу, то лучше привязать его или к внутреннему интерфейсу или к localhost.
#
# /etc/my.cnf
#
[mysqld]
general_log=/var/log/mysql.log
bind-address=127.0.0.1
Создаем соответствующий файл и выставляем необходимые права
# touch /var/log/mysql.log
# chown mysql:mysql /var/log/mysql.log
Примечание : Если логи не пипутся в /var/log, то проверьте папку баз /var/db/mysql. Скорее всего там будет файлик <имя хоста>.log
# /usr/local/etc/rc.d/mysql-server start
Starting mysql.
# cat /var/log/mysql.log
/usr/local/libexec/mysqld, Version: 5.1.52 started with:
Tcp port: 3306 Unix socket: /tmp/mysql.sock
Time Id Command Argument
А теперь воспользуемся скриптом для настройки безопасности MySQL сервера
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we’ll need the current password for the root user. If you’ve just installed MySQL, and you haven’t set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none):
OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n]Y
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.
Remove anonymous users? [Y/n]Y
Normally, root should only be allowed to connect from ‘localhost’. This ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n]Y
By default, MySQL comes with a database named ‘test’ that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.
Remove test database and access to it? [Y/n]Y
— Dropping test database…
— Removing privileges on test database…
Reloading the privilege tables will ensure that all changes made so far will take effect immediately.
Reload privilege tables now? [Y/n] Y
All done! If you’ve completed all of the above steps, your MySQL installation should now be secure.
Что делает скрипт mysql_secure_installation
Как видно из названия самого скрипта он предназначен для повышения безопасности MySQL сервера. С помощью этого скрипта мы выполнили следующие действия:
задали пароль для супер пользователя root (с системным root он не имеет ничего общего, это абсолютно два разных пользователя), так как по умолчанию для него не установлен пароль;
удалили анонимного пользователя, который создается только для тестовых целей;
запретили пользователю root входить удаленно. Теперь он сможет заходить только с localhost;
удалили тестовую БД test и доступ к ней;
Все, с MySQL мы разобрались, идем дальше.
Cyrus-Sasl
Собираем и настраиваем Cyrus-SASL. Данную библиотеку мы будем использовать для SMTP аутентификации, т.е. проверки логина и пароля по некоторому алгоритму, например PLAIN, LOGIN, CRAM-MD5.
# make install clean
Courier-authlib
Собираем и настраиваем courier-authlib. Данную библиотеку courier-imap использует для аутентификации пользователей.
# make install clean
Делаем автоматический запуск authdaemond при старте системы
# echo ‘courier_authdaemond_enable=»YES»‘ >> /etc/rc.conf
Настраиваем courier-authlib. Для этого редактируем два конфигурационных файла: /usr/local/etc/authlib/authdaemonrc и /usr/local/etc/authlib/authmysqlrc
# cat /usr/local/etc/authlib/authdaemonrc | grep -v ^# | grep -v ^$
DEBUG_LOGIN=2 (уровень ошибок 0-2)
# cat /usr/local/etc/authlib/authmysqlrc | grep -v ^# | grep -v ^$
Данная статья описывает настройку почтового сервера на ОС FreeBSD ( у меня стоит версия 11.1-STABLE ) на базе Exim в качестве SMTP сервера с поддержкой SpamAssasin и ClamAV, Dovecot в качестве POP3 / IMAP сервера, поддержкой SSL и веб интерфейсами Vexim для упрвавления ящиками и Roundcube в качестве почтового веб клиента. Данные будем хранить в MySQL
Установка Web сервера и сервера баз данных
Ставим nginx
# cd /usr/ports/www/nginx
# make config-recursive
# make install clean
в /etc/rc.conf добавляем:
nginx_enable="YES"
Ставим MySQL ( я выбрал MariaDB 10.2 )
# cd /usr/ports/databases/mariadb102-server
# make config-recursive
# make install clean
в /etc/rc.conf добавляем:
mysql_enable="YES"
Запускаем MySQL
# /usr/local/etc/rc.d/mysql-server start
Задаем пароль для root в MySQL ( в скобках сам пароль )
# mysqladmin -u root password ‘password’
Ставим PHP ( отмечаем FPM )
# cd /usr/ports/lang/php72
# make config-recursive
# make install clean
в /etc/rc.conf добавляем:
php_fpm_enable="YES"
Приводим файл /usr/local/etc/php-fpm.conf к такмоу виду:
[global]
p > error_log = /var/log/php-fpm.log
events.mechanism = kqueue
include=/usr/local/etc/php-fpm.d/*.conf
Редактируем файл пула
# ee /usr/local/etc/php-fpm.d/www.conf
и приводим к такому виду
[www]
user = www
group = www
listen = /tmp/www.sock
listen.backlog = -1
listen.owner = www
listen.group = www
listen.mode = 0666
pm.status_path = /status
ping.path = /ping
pm = dynamic
pm.max_children = 5
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 5
pm.max_requests = 5000
security.limit_extensions = .php
chdir = /usr/local/www/
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
php_admin_value[cgi.fix_pathinfo] = 0
php_admin_value[open_basedir] = /usr/local/www:/tmp:/usr/local/share/pear:/usr/local/mail:/var/www
php_admin_value[error_log] = /usr/local/www/logs/php-fpm-error.log
php_admin_value[memory_limit] = 128M
php_admin_value[upload_max_filesize] = 16G
php_admin_value[post_max_size] = 16G
php_admin_value[max_input_time] = -1
php_admin_value[max_execution_time] = 0
php_admin_value[output_buffering] = Off
php_admin_value[disable_functions] = escapeshellarg,escapeshellcmd,exec,ini_alter,parse_ini_file,passthru,pcntl_exec,popen,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,show_source,shell_exec,symlink,system
Запускаем PHP-FPM:
# /usr/local/etc/rc.d/php-fpm start
Установка и настройка Vexim
Ставим Vexim (отмечаем MySQL):
# cd /usr/ports/mail/vexim/
# make config-recursive
# make install clean
Ставим модуль p5-DBD-mysql
# cd /usr/ports/databases/p5-DBD-mysql
# make config-recursive
# make install clean
Заходим в MySQL и создаем базу для Vexim
# mysql -u root -p
Вводим ранее установленный пароль для root
Создаем пользователя для Vexim
CREATE USER ‘vexim’@’localhost’ IDENTIFIED BY ‘PASSWORD’;
Устанавливаем тип таблиц и прочие настройки
SET storage_engine=INNODB;
SET GLOBAL innodb_file_per_table=1, innodb_file_format=Barracuda, innodb_large_prefix=1;
Создаем базу
CREATE DATABASE IF NOT EXISTS `vexim` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_general_ci`;
Предоставляем привилегии на базу для пользователя vexim
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER, LOCK TABLES, REFERENCES, TRIGGER ON `vexim`.* TO ‘vexim’@’localhost’;
Выходим из MySQL
q
Заливаем дамп
# mysql -p vexim
получаем логин и пароль
A site administrator user has been created with the following credentials:
User name: siteadmin
Password: PASSWORD
Создаем каталог с виртуальными хостами для nginx
# mkdir -p /usr/local/etc/nginx/vhosts
Приводим /usr/local/etc/nginx/nginx.conf к такому виду:
worker_processes auto;
events <
worker_connections 1024;
>
http <
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# PHP-FPM
upstream php-fpm <
server unix:/tmp/www.sock;
>
include /usr/local/etc/nginx/vhosts/*;
>
Делаем виртуальный хост в nginx для Vexim
# ee /usr/local/etc/nginx/vhosts/exim.deathstar.name и приводим к такому виду
<
listen 80;
#listen 443 ssl;
#ssl on;
#ssl_certificate /usr/local/etc/letsencrypt/live/exim.deathstar.name/fullchain.pem;
#ssl_certificate_key /usr/local/etc/letsencrypt/live/exim.deathstar.name/privkey.pem;
server_name exim.deathstar.name;
access_log /var/log/nginx/exim.deathstar.name_access.log;
error_log /var/log/nginx/exim.deathstar.name_error.log;
root /usr/local/www/vexim;
index index.php;
charset utf-8;
location /.well-known/acme-challenge <
allow all;
auth_basic off;
root /tmp/;
>
location
.php$ <
fastcgi_pass php-fpm;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /usr/local/etc/nginx/fastcgi_params;
>
location
Копируем конфиг vexim
# cp /usr/local/www/vexim/config/variables.php.example /usr/local/www/vexim/config/variables.php
и прописываем в нем пароль к БД
$sqlserver = "localhost";
$sqltype = "mysql";
$sqldb = "vexim";
$sqluser = "vexim";
$sqlpass = "PASSWORD";
и путь к каталогу Mailroot
$mailroot = "/usr/local/mail/"
Создаем группу и пользователя exim:
# pw groupadd vexim -g 90
# pw useradd vexim -u 90 -g vexim -d /usr/local/mail -m -s /nonexistant
Установка и настройка Exim ( с поддержкой SpamAssasin и ClamAV )
Устанавливаем Exim ( отмечаем опцию SA-EXIM для работы SpamAssasin , MySQL , DMARC , SPF ) :
# cd /usr/ports/mail/exim
# make config-recursive
# make install clean
Добавляем в /etc/rc.conf:
exim_enable="YES"
Копируем и правим конфиги
# cd /usr/local/etc/exim/
# cp /usr/local/share/doc/vexim/docs/*.conf ./
# cp /usr/local/share/doc/vexim/docs/configure ./
# ee /usr/local/etc/exim/configure
Находим:
trusted_users = avleen:www-data
и удаляем avleen и www-data .Остается www:
trusted_users = www
Раскомментируем
tls_on_connect_ports = 465
Находим блок #TLS и приводим к такому виду
# TLS
tls_advertise_hosts = *
tls_certificate = /usr/local/etc/exim/exim.crt
tls_privatekey = /usr/local/etc/exim/exim.key
tls_dhparam = /usr/local/etc/exim/dhparam.pem
Находим закоментированную строку, отвечающую за подключение к MySQL серверу,раскоментируем ее и поставим там свой пароль:
h >
Изменяем путь к антивирусу ClamAV:
av_scanner = clamd:/var/run/clamav/clamd
и меняем на
av_scanner = clamd:/var/run/clamav/clamd.sock
Редактируем /usr/local/etc/exim/vexim-acl-check-content.conf
# ee /usr/local/etc/exim/vexim-acl-check-content.conf
и закоментируем или удаляем строки ( так как в Exim 4.88 demime выпилили ):
deny message = This message contains a MIME error ($demime_reason)
demime = *
condition = $
deny message = This domain has a policy of not accepting certain types of attachments
in mail as they may contain a virus. This mail has a file with a .$found_extension
attachment and is not accepted. If you have a legitimate need to send
this particular attachment, send it in a compressed archive, and it will
then be forwarded to the recipient.
demime = ade:adep:adp:bas:bat:chm:cmd:cnf:com:cpl:crt:dll:hlp:hta:inf:ins:isp:js:jse:lnk:mad:maf:mag:mam:maq:mar:mas:mat:mav:maw:ocx:pcd:pif:reg:scf:scr:sct:vbe:vbs:wsc:wsf:wsh:url:xnk
Генерируем /usr/local/etc/exim/dhparam.pem
openssl dhparam -out /usr/local/etc/exim/dhparam.pem 4096
Добавляем в /etc/rc.conf
spamd_enable="YES" и запускаем
# sa-update
# /usr/local/etc/rc.d/sa-spamd start
Ставим ClamAV:
# cd /usr/ports/security/clamav
# make config-recursive
# make install clean
Добавляем в /etc/rc.conf:
clamav_freshclam_enable="YES"
clamav_clamd_enable="YES
запускаем ClamAV
# /usr/local/etc/rc.d/clamav-clamd start
Запускаем обновление баз ClamAV
# freshclam
# /usr/local/etc/rc.d/clamav-freshclam start
Установка и настройка Dovecot
Устанавливаем Dovecot ( отмечаем MySQL ):
# cd /usr/ports/mail/dovecot
# make config-recursive
# make install clean
Добавляем в /etc/rc.conf:
dovecot_enable="YES"
Копируем конфиги:
# cp -R /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot
Настраиваем подключение к MySQL:
# ee /usr/local/etc/dovecot/dovecot-sql.conf.ext
И добавляем строки
driver = mysql
connect = host=localhost user=vexim password=PASSWORD dbname=vexim
default_pass_scheme = CRYPT
password_query = SELECT `username` AS `user`, `crypt` AS `password`, `pop` AS `userdb_home`, `u
user_query = SELECT pop as home, u
Редактируем dovecot.conf
# ee /usr/local/etc/dovecot/dovecot.conf
Правим ( или раскоментировать при наличии и поправить) строки
protocols = imap pop3
listen = *
base_dir = /var/run/dovecot/
instance_name = dovecot
login_greeting = Dovecot ready.
verbose_proctitle = no
shutdown_clients = yes
doveadm_socket_path = doveadm-server
Редактируем conf.d/10-auth.conf
# ee /usr/local/etc/dovecot/conf.d/10-auth.conf
Правим ( или раскоментировать при наличии и поправить) строки
disable_plaintext_auth = no
auth_cache_size = 0
auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
auth_username_format = %Lu
auth_ssl_require_client_cert = no
auth_ssl_username_from_cert = no
auth_mechanisms = plain
!include auth-sql.conf.ext
Редактируем conf.d/10-master.conf
# ee /usr/local/etc/dovecot/conf.d/10-master.conf
Правим ( или раскоментировать при наличии и поправить) строки:
default_process_limit = 100
default_client_limit = 1000
default_login_user = dovenull
default_internal_user = dovecot
service stats <
fifo_listener stats-mail <
user = vexim
mode = 0600
>
>
service imap-login <
inet_listener imap <
port = 143
>
inet_listener imaps <
port = 993
ssl = yes
>
>
service pop3-login <
inet_listener pop3 <
port = 110
>
inet_listener pop3s <
port = 995
ssl = yes
>
>
service lmtp <
unix_listener lmtp <
>
service auth <
unix_listener auth-userdb <
mode = 0666
user = vexim
group = vexim
>
>
Редактируем conf.d/10-mail.conf
# ee /usr/local/etc/dovecot/conf.d/10-mail.conf
Правим ( или раскоментировать при наличии и поправить) строки:
namespace inbox <
inbox = yes
>
mail_u > mail_g > first_val > first_val > auth_socket_path = /var/run/dovecot/auth-userdb
mail_plugin_dir = /usr/local/lib/dovecot
mail_plugins=$mail_plugins stats
Редактируем conf.d/10-ssl.conf
ee /usr/local/etc/dovecot/conf.d/10-ssl.conf
Правим ( или раскоментировать при наличии и поправить) строки:
ssl = yes
ssl_cert =
Добавляем запись в /etc/rc.conf:
dovecot_enable=»YES»
Установка и настройка Roundcube
Ставим RoundCube (выбираем MySQL):
# cd /usr/ports/mail/roundcube/
# make config-recursive
# make install clean
И далее команды по порядку:
# cd /usr/local/www/roundcube
# chmod 777 logs/
# chmod 777 temp/
Заходим в MySQL
# mysql -u root -p
Вводим ранее установленный пароль для root
Создаем пользователя для Roundcube
CREATE USER ’roundcube’@’localhost’ IDENTIFIED BY ‘PASSWORD’;
Устанавливаем тип таблиц и прочие настройки
SET storage_engine=INNODB;
SET GLOBAL innodb_file_per_table=1, innodb_file_format=Barracuda, innodb_large_prefix=1;
Создаем базу
CREATE DATABASE IF NOT EXISTS `roundcubemail` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_general_ci`;
Предоставляем привелегии на базу для пользователя roundcube
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER, LOCK TABLES, REFERENCES, TRIGGER ON `roundcubemail`.* TO ’roundcube’@’localhost’;
Вызодим из MySQL
q
Копируем конфиг:
# cd /usr/local/www/roundcube/config
# cp config.inc.php.sample config.inc.php
И прописываем подключение к БД:
$config[‘db_dsnw’] = ‘mysql://roundcube:PASSWORD@localhost/roundcubemail’;
Заливаем дамп
mysql -p roundcubemail
Редактируем /usr/local/www/roundcube/config/defaults.inc.php
# ee /usr/local/www/roundcube/config/defaults.inc.php
Правим ( или раскоментировать при наличии и поправить) строки:
$config[‘smtp_user’] = ‘%u’;
$config[‘smtp_pass’] = ‘%p’;
$config[‘create_default_folders’] = true;
Делаем виртуальный хост в nginx для Roundcube
# ee /usr/local/etc/nginx/vhosts/mail.deathstar.name и приводим к такому виду
<
listen 80;
#listen 443 ssl;
#ssl on;
#ssl_certificate /usr/local/etc/letsencrypt/live/mail.deathstar.name/fullchain.pem;
#ssl_certificate_key /usr/local/etc/letsencrypt/live/mail.deathstar.name/privkey.pem;
server_name mail.deathstar.name;
access_log /var/log/nginx/mail.deathstar.name_access.log;
error_log /var/log/nginx/mail.deathstar.name_error.log;
root /usr/local/www/vexim;
index index.php;
charset utf-8;
location /.well-known/acme-challenge <
allow all;
auth_basic off;
root /tmp/;
>
.php$
<
fastcgi_pass php-fpm;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /usr/local/etc/nginx/fastcgi_params;
>
Запускаем Nginx
/usr/local/etc/rc.d/nginx start
Получение SSL сертификатов от Let’s Encrypt
Устанавливаем Certbot Для получения SSL сертификата.
# cd /usr/ports/security/py-certbot
# make config-recursive
# make install clean
Получаем сертификат SSL
c# ertbot certonly —rsa-key-size 4096 —webroot -w /tmp/ -d exim.deathstar.name
и видим
— Congratulations! Your certificate and chain have been saved at:
/usr/local/etc/letsencrypt/live/exim.deathstar.name/fullchain.pem
Your key file has been saved at:
Тоже самое проделываем для поддомена mail.deathstar.name
# certbot certonly —rsa-key-size 4096 —webroot -w /tmp/ -d mail.deathstar.name
Копируем сертификат для Exim
# cat /usr/local/etc/letsencrypt/live/mail.deathstar.name/fullchain.pem > /usr/local/etc/exim.crt
# cat /usr/local/etc/letsencrypt/live/mail.deathstar.name/privkey.pem > /usr/local/etc/exim.key
Редактируем виртуальный хост в nginx для Roundcube
# ee /usr/local/etc/nginx/vhosts/mail.deathstar.name и раскоментируем строки, отвечающие за работу с SSL
listen 443 ssl;
ssl on;
ssl_certificate /usr/local/etc/letsencrypt/live/mail.deathstar.name/fullchain.pem;
ssl_certificate_key /usr/local/etc/letsencrypt/live/mail.deathstar.name/privkey.pem;
Для редиректа с http на https можно прописать после строки ssl_certificate_key
if ( $scheme = "http" ) <
rewrite ^/(.*)$ https://$host/$1 permanent;
>
То же самое делаем с /usr/local/etc/nginx/vhosts/exim.deathstar.name
Запуск
Перезапускаем Nginx
/usr/local/etc/rc.d/nginx restart
Перезапускаем PHP-FPM
# /usr/local/etc/rc.d/php-fpm restart
Запускаем Exim и Dovecot
# /usr/local/etc/rc.d/exim start
# /usr/local/etc/rc.d/dovecot start
Roundcube доступен по адресу http://mail.deathstar.name а Vexim по http://exim.deathstar.name
Заходим по адресу http://exim.deathstar.name
Логинимся под siteadmin и пароль, что выставляли ранее
Жмем Add local domain
Прописываем домен, имя администратора ( по умолчанию postmaster, можно сменить на любое , так же создастся ящик вида postmaster@domain, а создадим например admin )
прописываем пароль ( например pass )
повторяем пароль
отмечаем антиспам и антивирус ( по желанию ) и жмем Submit
У нас появился почтовый аккаунт admin@domain с паролем pass
Чтоб для созданного домена создать еще ящик, логинимся под логином админа домена, в нашем случае — admin
Жмем Add, delete and manage POP/IMAP accounts
Потом Add User
Прописываем имя ( любое, оно просто для отображения в списке юзеров )
логин ( например user )
два раза пароль ( например userpass )
Has domain admin privileges? — отмечаем, есди хотим сделать юзера тоже админом домена
И жмем Submit.
У нас появился почтовый аккаунт user@domain с паролем userpass
Теперь можно зайти в roundcube по ссылке http://mail.deathstar.name под логином user@domain и паролем userpass
Обновление сертификатов
# certbot renew
# cat /usr/local/etc/letsencrypt/live/mail.deathstar.name/fullchain.pem > /usr/local/etc/exim.crt
# cat /usr/local/etc/letsencrypt/live/mail.deathstar.name/privkey.pem > /usr/local/etc/exim.key
# /usr/local/etc/rc.d/nginx restart
# /usr/local/etc/rc.d/exim restart
# /usr/local/etc/rc.d/dovecot restart
Оставить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.
а по готовому конфигу уже можно рыть доки (ибо ясно, что именно рыть), а не блуждать в тумане, не понимая, что с чем нужно связать, чтобы хоть что-то заработало
считайте это open source configs 🙂
| 1.4 , charon ( ok ), 18:54, 10/07/2009 [ответить] [﹢﹢﹢] [ · · · ] | + / – |
| мне понравилось, что в ДиректАдмине всё это изящно реализовано без баз данных, в обычных текстовых файлах. Плюс еще ограничение на количество писем в день для логина включается созданием одного файла. На досуге и эту статью почитаю. |
| 1.5 , Михаил Кривушин ( ? ), 18:56, 10/07/2009 [ответить] [﹢﹢﹢] [ · · · ] | + / – |
| 1.6 , BlackHawk ( ok ), 21:17, 10/07/2009 [ответить] [﹢﹢﹢] [ · · · ] | + / – |
| мне всегда было интересно — чем же так MySQL приманил всех для почты?;) exim+openLDAP+courier делают свое дело на ура 😉 и на много структурированее и нагляднее получается. тем более как показывает практика на загруженных машинах MySQL очень любит тупить, а если еще и и сайты там крутяться на чем-то типа joomla так вообще ховайся |
| | + / – |
| чем нагляднее? ) добавлением через зад десяток собственных атрибутов в схему и написанием ограниченных фильтров? И кто сказал что опенлдап быстрее при большой нагрузке? |
| | + / – |
| ну как сказать, сервер поднятый еще 4 года назад на связке postfix + openldap + courier работает до сих пор без проблем и достаточно гибок. Главное в этом направлении решить что запихивать в ldap а что не стоит. Некоторые вещи, такие управление аккаутнами/доменами гораздо нагляднее и удобнее реализовывываются как раз через ldap, а вот фильтры, черные/белые списки и тд. лучше оставить на откуп плоским конф файлам. Да пришлось написать несколько скриптов обёрток для управления помимо ldap администратора, но так и для мускула придется писать, чтобы для наиболее частых действий не приходилось в консоли набивать селекты и инсерты, а веб интерфейсы по определению не гибки. |
| | + / – |
| С sql гораздо проще добавлять в таблицу дополнительные поля и строить сложные фильтры, в моем конфиге exim например указано всего несколько макросов со сложными селектами для рутеров и транспортов. Для веба я просто взял исходники postfixadmin и вбил туда все нужные поля,селекты и инсерты, тк там очень простой интерфейс на пхп |
| 1.10 , xz ( ?? ), 15:17, 14/07/2009 [ответить] [﹢﹢﹢] [ · · · ] | + / – |
| 1.12 , Ct2Sik ( ? ), 14:10, 10/08/2009 [ответить] [﹢﹢﹢] [ · · · ] | + / – |
| 2.13 , daggerok ( ? ), 23:52, 10/10/2009 [^] [^^] [^^^] [ответить] | + / – |
>Сервер сообщает об ошибке: -ERR Temporary authentication failure." Куда копать не >подскажете? Спасибо |
автор и так сделал практически все за Вас, но все-таки не плохо было бы разобраться.
скорее всего, если вы просто передерли конфиги не вчитываясь в них это и есть причина.
к примеру в статье автор пишет:
>6. Создаём пользователя MySQL и выделяем ему права на БД:
>
> echo "GRANT SELECT, INSERT, UPDATE, LOCK TABLES, CREATE, DROP, DELETE, INDEX ON exim_db.*
> TO exim@localhost IDENTIFIED BY ‘Mta_MaileR’" | mysql -u root -p mysql
тоесть пароль пользователя exim в базе данных в данном случае: Mta_MaileR
далее он говорит
>13. Конфигурируем dovecot
> mv /usr/local/etc/dovecot.conf /usr/local/etc/dovecot.conf.orig
> cd /usr/local/etc/
> fetch -v https://www.opennet.ru/soft/dovecot.conf
> fetch -v https://www.opennet.ru/soft/dovecot-sql.conf
то есть нужно брать конфиг dovecot-sql.conf: по указной ссылке, но не тупо копировать а посмотреть что там написано хотя бы
а вот там во второй строчке есть ответ на вашь вопрос:
connect = host=localhost dbname=exim_db user=exim password=password
то есть в конфиге автор указал соверщенно другой пароль: password
в общем поменяйте эту строку на такую:
connect = host=localhost dbname=exim_db user=exim password=Mta_MaileR





