1. Главная страница » Компьютеры

Freebsd 11 почтовый сервер

Автор: | 16.12.2019

Вступление

Данный документ описывает установку и настройку почтовой системы на основе 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 = $<$demime_errorlevel><2><1><0>>
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 [ответить] [﹢﹢﹢] [ · · · ] + / –
В самом начале моих разборок мне попалось подобное хофту по postfix+mysql+чего то еще. Так вот — нафиг мне эта база на самом деле не нужна была.
1.6 , BlackHawk ( ok ), 21:17, 10/07/2009 [ответить] [﹢﹢﹢] [ · · · ] + / –
мне всегда было интересно — чем же так MySQL приманил всех для почты?;) exim+openLDAP+courier делают свое дело на ура 😉 и на много структурированее и нагляднее получается. тем более как показывает практика на загруженных машинах MySQL очень любит тупить, а если еще и и сайты там крутяться на чем-то типа joomla так вообще ховайся
  • 2.7 , HFSC ( ?? ), 15:19, 11/07/2009 [^] [^^] [^^^] [ответить]
  • + / –
    чем нагляднее? ) добавлением через зад десяток собственных атрибутов в схему и написанием ограниченных фильтров? И кто сказал что опенлдап быстрее при большой нагрузке?
  • 3.8 , expr ( ? ), 23:42, 12/07/2009 [^] [^^] [^^^] [ответить]
  • + / –
    ну как сказать, сервер поднятый еще 4 года назад на связке postfix + openldap + courier работает до сих пор без проблем и достаточно гибок. Главное в этом направлении решить что запихивать в ldap а что не стоит. Некоторые вещи, такие управление аккаутнами/доменами гораздо нагляднее и удобнее реализовывываются как раз через ldap, а вот фильтры, черные/белые списки и тд. лучше оставить на откуп плоским конф файлам. Да пришлось написать несколько скриптов обёрток для управления помимо ldap администратора, но так и для мускула придется писать, чтобы для наиболее частых действий не приходилось в консоли набивать селекты и инсерты, а веб интерфейсы по определению не гибки.
  • 4.9 , HFSC ( ?? ), 00:39, 13/07/2009 [^] [^^] [^^^] [ответить]
  • + / –
    С sql гораздо проще добавлять в таблицу дополнительные поля и строить сложные фильтры, в моем конфиге exim например указано всего несколько макросов со сложными селектами для рутеров и транспортов.
    Для веба я просто взял исходники postfixadmin и вбил туда все нужные поля,селекты и инсерты, тк там очень простой интерфейс на пхп
    1.10 , xz ( ?? ), 15:17, 14/07/2009 [ответить] [﹢﹢﹢] [ · · · ] + / –
    1.12 , Ct2Sik ( ? ), 14:10, 10/08/2009 [ответить] [﹢﹢﹢] [ · · · ] + / –
    Что почтовики не хотят получать почту, например The Bat пишет "FETCH — Сервер сообщает об ошибке: -ERR Temporary authentication failure." Куда копать не подскажете? Спасибо
    2.13 , daggerok ( ? ), 23:52, 10/10/2009 [^] [^^] [^^^] [ответить] + / –
    >Что почтовики не хотят получать почту, например The Bat пишет "FETCH —
    >Сервер сообщает об ошибке: -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

    Читайте также:  Intel pentium dual core сокет

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *