Настройка почтового сервера — различия между версиями
PastorDi (обсуждение | вклад) (→Настройка Postfix) |
Ilfat (обсуждение | вклад) (fix permissions for /etc/ssl/mail directory) |
||
(не показаны 24 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
== Настройка Postfix + Dovecot + MySQL + PostfixAdmin + SSL/TLS == | == Настройка Postfix + Dovecot + MySQL + PostfixAdmin + SSL/TLS == | ||
− | === Настройка для ОС | + | === Настройка для ОС Роса Никель === |
Устанавливаем пакеты '''dovecot-plugins-mysql''' и '''php-imap''' | Устанавливаем пакеты '''dovecot-plugins-mysql''' и '''php-imap''' | ||
Строка 10: | Строка 10: | ||
* Сервер - ip: 192.168.1.76 | * Сервер - ip: 192.168.1.76 | ||
* Все клиенты в этой же подсети - 192.168.1.0/24 | * Все клиенты в этой же подсети - 192.168.1.0/24 | ||
− | * Имя хоста сервера - '''mx.rosa3.loc''' | + | * Имя хоста сервера - '''{{Процесс|mx.rosa3.loc}}''' |
+ | * Имя почтового домена - '''{{Процесс|rosa3.loc}}''' | ||
* Все сервисы у нас отключены и не запущены | * Все сервисы у нас отключены и не запущены | ||
− | Редактируем nano /etc/hosts | + | Редактируем nano {{Источник|/etc/hosts}} |
<pre> | <pre> | ||
192.168.1.76 mx.rosa3.loc mx | 192.168.1.76 mx.rosa3.loc mx | ||
Строка 34: | Строка 35: | ||
mysql> quit | mysql> quit | ||
</pre> | </pre> | ||
− | + | <gallery> | |
+ | Файл:Mx2.png | ||
+ | Файл:Mx3.png | ||
+ | </gallery> | ||
+ | Редактируем: | ||
− | [ | + | nano {{Источник|/etc/my.cnf}} |
+ | |||
+ | Добавим в секцию: | ||
+ | <pre> | ||
+ | [client-server] | ||
+ | socket=/run/mysqld/mysql.sock | ||
+ | </pre> | ||
+ | |||
+ | Редактируем: | ||
+ | |||
+ | nano {{Источник|/etc/my.cnf.d/server.cnf}} | ||
+ | |||
+ | Подправим: | ||
+ | bind-address=127.0.0.1 | ||
=== Инсталляция PostfixAdmin === | === Инсталляция PostfixAdmin === | ||
Строка 52: | Строка 70: | ||
chown -R apache:apache /var/www/html/postfixadmin/templates_c | chown -R apache:apache /var/www/html/postfixadmin/templates_c | ||
</pre> | </pre> | ||
+ | Либо скачать с wiki эту версию postfixadmin: [[Файл:Postfixadmin-postfixadmin-3.2.4.tar.gz|Скачать]] | ||
=== Настройка PHP 5.6.40 === | === Настройка PHP 5.6.40 === | ||
Строка 57: | Строка 76: | ||
Редактируем: | Редактируем: | ||
− | nano /etc/php.ini | + | nano {{Источник|/etc/php.ini}} |
date.timezone = Europe/Moscow | date.timezone = Europe/Moscow | ||
Строка 67: | Строка 86: | ||
Редактируем: | Редактируем: | ||
− | nano /etc/httpd/conf/httpd.conf | + | nano {{Источник|/etc/httpd/conf/httpd.conf}} |
После DocumentRoot "/var/www/html" добавляем: | После DocumentRoot "/var/www/html" добавляем: | ||
Alias "/postfixadmin" "/var/www/html/postfixadmin/public" | Alias "/postfixadmin" "/var/www/html/postfixadmin/public" | ||
+ | |||
+ | Копируем конфиги: | ||
cp ./config.inc.php ./config.local.php | cp ./config.inc.php ./config.local.php | ||
Строка 81: | Строка 102: | ||
Редактируем: | Редактируем: | ||
− | nano /var/www/html/postfixadmin/config.local.php | + | nano {{Источник|/var/www/html/postfixadmin/config.local.php}} |
<pre> | <pre> | ||
Строка 98: | Строка 119: | ||
</pre> | </pre> | ||
− | + | <gallery> | |
− | + | Файл:Mx6.png | |
− | + | Файл:Mx7.png | |
− | + | Файл:Mx8.png | |
− | + | Файл:Mx9.png | |
− | + | Файл:Mx10.png | |
− | + | Файл:Mx11.png | |
+ | </gallery> | ||
− | chown apache:apache postfixadmin/config.local.php | + | chown apache:apache /var/www/html/postfixadmin/config.local.php |
systemctl start httpd.service | systemctl start httpd.service | ||
В браузере: http://localhost/postfixadmin/setup.php | В браузере: http://localhost/postfixadmin/setup.php | ||
− | Вводим пароль, жмем ОК, нам предлагаютс исправить параметр | + | Вводим пароль, жмем ОК, нам предлагаютс исправить параметр setup_password и hash. |
− | Копируем hash и в /var/www/html/postfixadmin/config.local.php в параметре setup_passwd вместо changeme вписываем наш hash. | + | Копируем hash и в {{Процесс|/var/www/html/postfixadmin/config.local.php}} в параметре {{Процесс|setup_passwd}} вместо {{Процесс|changeme}} вписываем наш hash. |
− | + | <gallery> | |
− | + | Файл:Mx12.png | |
+ | Файл:Mx13.png | ||
+ | </gallery> | ||
=== Настройка Postfix === | === Настройка Postfix === | ||
Строка 126: | Строка 150: | ||
Генерация закрытого ключа CSR | Генерация закрытого ключа CSR | ||
− | openssl req -nodes -newkey rsa:2048 -keyout /etc/ssl/mail/mx.rosa3.loc.key -out /etc/ssl/mail/mx.rosa3.loc.csr | + | openssl req -nodes -newkey rsa:2048 -keyout /etc/ssl/mail/{{Процесс|mx.rosa3.loc.key}} -out /etc/ssl/mail/{{Процесс|mx.rosa3.loc.csr}} |
− | На вопрос про FQDN отвечаем: '''mx.rosa3.loc''' | + | На вопрос про FQDN отвечаем: '''{{Процесс|mx.rosa3.loc}}''' |
− | Если запрос на FQDN не получите, то закончите генерацию, сотрите: | + | {{Предупреждение|Если запрос на FQDN не получите, то закончите генерацию, сотрите: |
rm /etc/ssl/mail/mx.rosa3.* | rm /etc/ssl/mail/mx.rosa3.* | ||
− | |||
И повторите отперацию генерации. | И повторите отперацию генерации. | ||
+ | }} | ||
Генерация самозаверяющего сертификата | Генерация самозаверяющего сертификата | ||
− | openssl x509 -req -days 365 -in /etc/ssl/mail/mx.rosa3.loc.csr -signkey /etc/ssl/mail/mx.rosa3.loc.key -out /etc/ssl/mail/mx.rosa3.loc.crt | + | openssl x509 -req -days 365 -in /etc/ssl/mail/{{Процесс|mx.rosa3.loc.csr}} -signkey /etc/ssl/mail/{{Процесс|mx.rosa3.loc.key}} -out /etc/ssl/mail/{{Процесс|mx.rosa3.loc.crt}} |
− | [[Файл:Mx14.png]] | + | [[Файл:Mx14.png|500px]] |
Генерация dh для dovecot | Генерация dh для dovecot | ||
Строка 146: | Строка 170: | ||
Займет долго время, примерно минут 10-15. | Займет долго время, примерно минут 10-15. | ||
− | chmod -R | + | chmod -R 644 /etc/ssl/mail |
+ | |||
+ | chmod 755 /etc/ssl/mail | ||
cp /etc/postfix/main.cf /etc/postfix/main.cf.original | cp /etc/postfix/main.cf /etc/postfix/main.cf.original | ||
Строка 152: | Строка 178: | ||
Редактируем: | Редактируем: | ||
− | nano /etc/postfix/main.cf | + | nano {{Источник|/etc/postfix/main.cf}} |
Правим: | Правим: | ||
Строка 272: | Строка 298: | ||
Редактируем: | Редактируем: | ||
− | nano /etc/postfix/sql/vdomains.cf | + | nano {{Источник|/etc/postfix/sql/vdomains.cf}} |
<pre> | <pre> | ||
user = postfix | user = postfix | ||
Строка 286: | Строка 312: | ||
Редактируем: | Редактируем: | ||
− | nano /etc/postfix/sql/vmailbox.cf | + | nano {{Источник|/etc/postfix/sql/vmailbox.cf}} |
<pre> | <pre> | ||
user = postfix | user = postfix | ||
Строка 297: | Строка 323: | ||
additional_conditions = and active = '1' | additional_conditions = and active = '1' | ||
</pre> | </pre> | ||
− | + | Редактируем: | |
− | nano /etc/postfix/sql/valias.cf | + | nano {{Источник|/etc/postfix/sql/valias.cf}} |
<pre> | <pre> | ||
user = postfix | user = postfix | ||
Строка 313: | Строка 339: | ||
Редактируем: | Редактируем: | ||
− | nano /etc/postfix/master.cf | + | nano {{Источник|/etc/postfix/master.cf}} |
Закомментировать после этих строк: | Закомментировать после этих строк: | ||
Строка 399: | Строка 425: | ||
-o milter_macro_daemon_name=ORIGINATING | -o milter_macro_daemon_name=ORIGINATING | ||
</pre> | </pre> | ||
− | Перед "-o....." ДВА пробела!! | + | '''Перед "-o....." ДВА пробела!!''' |
Проверяем, должны получится вот такие конфигурационные файлы: | Проверяем, должны получится вот такие конфигурационные файлы: | ||
Строка 413: | Строка 439: | ||
Редактируем: | Редактируем: | ||
− | nano /etc/dovecot/dovecot.conf | + | nano {{Источник|/etc/dovecot/dovecot.conf}} |
Правим и раскомментируем: | Правим и раскомментируем: | ||
Строка 485: | Строка 511: | ||
ssl = required | ssl = required | ||
verbose_ssl = yes | verbose_ssl = yes | ||
− | ssl_cert = </etc/ssl/mail/mx. | + | ssl_cert = </etc/ssl/mail/mx.rosa3.loc.crt |
− | ssl_key = </etc/ssl/mail/mx. | + | ssl_key = </etc/ssl/mail/mx.rosa3.loc.key |
ssl_dh = </etc/ssl/mail/dh.pem | ssl_dh = </etc/ssl/mail/dh.pem | ||
− | ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GC | + | ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GC |
ssl_prefer_server_ciphers = yes | ssl_prefer_server_ciphers = yes | ||
</pre> | </pre> | ||
Строка 494: | Строка 520: | ||
Редактируем: | Редактируем: | ||
− | nano /etc/dovecot/dovecot-sql.conf | + | nano {{Источник|/etc/dovecot/dovecot-sql.conf}} |
<pre> | <pre> | ||
driver = mysql | driver = mysql | ||
Строка 502: | Строка 528: | ||
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' | 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' | ||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Далее: | Далее: | ||
Строка 557: | Строка 566: | ||
Добавляем туда: | Добавляем туда: | ||
− | Админ: admin@rosa3.loc | + | Админ: '''{{Процесс|admin@rosa3.loc}}''' |
Ну и пароли свои... Запоминаем... | Ну и пароли свои... Запоминаем... | ||
− | + | <gallery> | |
− | + | Файл:Mx17.png | |
+ | Файл:Mx18.png | ||
+ | </gallery> | ||
В браузере http://localhost/postfixadmin/ | В браузере http://localhost/postfixadmin/ | ||
− | Логин: admin@rosa3.loc / пароль который запомнили | + | Логин: {{Процесс|admin@rosa3.loc}} / пароль который запомнили |
− | [[Файл:Mx19.png]] | + | [[Файл:Mx19.png|500px]] |
Добавляем домен: "Список доменов" -> "Новый домен" | Добавляем домен: "Список доменов" -> "Новый домен" | ||
− | Домен: rosa3.loc | + | Домен: '''{{Процесс|rosa3.loc}}''' |
Жмем "Добавить" | Жмем "Добавить" | ||
− | [[Файл:Mx21.png]] | + | [[Файл:Mx21.png|500px]] |
Добавляем ящики1: "Обзор" -> "Создать ящик" | Добавляем ящики1: "Обзор" -> "Создать ящик" | ||
Строка 588: | Строка 599: | ||
Жмем "Создать ящик" | Жмем "Создать ящик" | ||
− | [[Файл:Mx22.png]] | + | [[Файл:Mx22.png|500px]] |
Добавляем ящики2: "Обзор" -> "Создать ящик" | Добавляем ящики2: "Обзор" -> "Создать ящик" | ||
Строка 600: | Строка 611: | ||
Жмем "Создать ящик" | Жмем "Создать ящик" | ||
− | [[Файл:Mx23.png]] | + | [[Файл:Mx23.png|500px]] |
=== Настройка клиентских станций === | === Настройка клиентских станций === | ||
Строка 606: | Строка 617: | ||
На компе Клиента1 | На компе Клиента1 | ||
− | В /etc/hosts добавляем: | + | В {{Источник|/etc/hosts}} добавляем: |
− | 192.168.1.76 mx.rosa3.loc mx | + | {{Cmd|192.168.1.76 mx.rosa3.loc mx}} |
В почтовой программе добавляем УЗ: | В почтовой программе добавляем УЗ: | ||
− | Логин везде user1@rosa3.loc | + | Логин везде {{Процесс|user1@rosa3.loc}} |
IMAP: | IMAP: | ||
Строка 634: | Строка 645: | ||
Запусуаем почтовую программу. | Запусуаем почтовую программу. | ||
− | + | <gallery> | |
− | + | Файл:Mx24.png | |
− | + | Файл:Mx25.png | |
− | + | Файл:Mx26.png | |
− | + | Файл:Mx27.png | |
+ | Файл:Mx28.png | ||
+ | </gallery> | ||
И можно наживамть "Получить" почту. | И можно наживамть "Получить" почту. | ||
Строка 644: | Строка 657: | ||
Но первый раз не сработает. Надо перезапустить программу. | Но первый раз не сработает. Надо перезапустить программу. | ||
− | [[Файл:Mx29.png]] | + | [[Файл:Mx29.png|500px]] |
После перезапуска возможно такая же ошибка, просто жмем ОК и еще раз "Получить" почту. | После перезапуска возможно такая же ошибка, просто жмем ОК и еще раз "Получить" почту. | ||
Строка 650: | Строка 663: | ||
У нас высветится запрос на получение серфтификатов, нажимаем в левом нижнем углу кнопку "Подтверждаем ...." | У нас высветится запрос на получение серфтификатов, нажимаем в левом нижнем углу кнопку "Подтверждаем ...." | ||
− | [[Файл:Mx30.png]] | + | [[Файл:Mx30.png|500px]] |
Далее высветится запрос на пароль user1 | Далее высветится запрос на пароль user1 | ||
− | [[Файл:Mx31.png]] | + | [[Файл:Mx31.png|500px]] |
Видим письмо с "Добро пожаловать!", значит все настроили правильно с IMAP сервером. | Видим письмо с "Добро пожаловать!", значит все настроили правильно с IMAP сервером. | ||
− | [[Файл:Mx32.png]] | + | [[Файл:Mx32.png|500px]] |
Теперь создадим и отошлем письмо user2@rosa3.loc | Теперь создадим и отошлем письмо user2@rosa3.loc | ||
Строка 666: | Строка 679: | ||
Наждмем "Отправить", у нас как обычно высветится принятие сертификата (теперь уже от SMTP) сервера. | Наждмем "Отправить", у нас как обычно высветится принятие сертификата (теперь уже от SMTP) сервера. | ||
− | [[Файл:Mx33.png]] | + | [[Файл:Mx33.png|500px]] |
Принимаем его, НО ничего не отошлется. Нажимаем на "Отмена", и снова создаем новое письмо и потом уже жмем "Отправить". | Принимаем его, НО ничего не отошлется. Нажимаем на "Отмена", и снова создаем новое письмо и потом уже жмем "Отправить". | ||
− | [[Файл:Mx34.png]] | + | [[Файл:Mx34.png|500px]] |
Будет теперь уже запрос на пароль. Вводим его. И письмо должно отправиться. | Будет теперь уже запрос на пароль. Вводим его. И письмо должно отправиться. | ||
− | + | <gallery> | |
− | + | Файл:Mx35.png | |
+ | Файл:Mx36.png | ||
+ | </gallery> | ||
Далее настраиваем АНАЛОГИЧНО учентую запись (УЗ) для user2@rosa3.loc | Далее настраиваем АНАЛОГИЧНО учентую запись (УЗ) для user2@rosa3.loc | ||
Строка 685: | Строка 700: | ||
Проверяем получение письма тестового от user1@rosa3.loc | Проверяем получение письма тестового от user1@rosa3.loc | ||
− | [[Файл:Mx37.png]] | + | [[Файл:Mx37.png|500px]] |
Если всё настроили правильно, увилим тестое письмо. | Если всё настроили правильно, увилим тестое письмо. |
Текущая версия на 13:02, 24 июня 2024
Настройка Postfix + Dovecot + MySQL + PostfixAdmin + SSL/TLS
Настройка для ОС Роса Никель
Устанавливаем пакеты dovecot-plugins-mysql и php-imap
dnf install php-imap dovecot-plugins-mysql
Условия работаты такие:
- Сервер - ip: 192.168.1.76
- Все клиенты в этой же подсети - 192.168.1.0/24
- Имя хоста сервера - mx.rosa3.loc
- Имя почтового домена - rosa3.loc
- Все сервисы у нас отключены и не запущены
Редактируем nano /etc/hosts
192.168.1.76 mx.rosa3.loc mx
Настройка MySQL
Mysql создание почтовой базы:
systemctl start mysqld.service mysql_secure_installation mysql -u root -p # pass=654321 mysql> CREATE DATABASE mail; mysql> GRANT ALL PRIVILEGES ON mail.* TO 'postfix'@'localhost' IDENTIFIED BY 'maildbpass'; mysql> FLUSH PRIVILEGES; mysql> quit
Редактируем:
nano /etc/my.cnf
Добавим в секцию:
[client-server] socket=/run/mysqld/mysql.sock
Редактируем:
nano /etc/my.cnf.d/server.cnf
Подправим:
bind-address=127.0.0.1
Инсталляция PostfixAdmin
postfixadmin инсталляция:
cd /var/www/html wget -O postfixadmin.tgz https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.2.4.tar.gz tar -zxvf postfixadmin.tgz mv postfixadmin-postfixadmin-3.2.4/ postfixadmin chown -R apache:apache /var/www/html/postfixadmin cd postfixadmin mkdir /var/www/html/postfixadmin/templates_c chown -R apache:apache /var/www/html/postfixadmin/templates_c
Либо скачать с wiki эту версию postfixadmin: Файл:Postfixadmin-postfixadmin-3.2.4.tar.gz
Настройка PHP 5.6.40
Редактируем:
nano /etc/php.ini
date.timezone = Europe/Moscow
Настройка Apache
Редактируем:
nano /etc/httpd/conf/httpd.conf
После DocumentRoot "/var/www/html" добавляем:
Alias "/postfixadmin" "/var/www/html/postfixadmin/public"
Копируем конфиги:
cp ./config.inc.php ./config.local.php
Настройка PostfixAdmin
Редактируем:
nano /var/www/html/postfixadmin/config.local.php
$CONF['configured'] = true; $CONF['database_type'] = 'mysqli'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfix'; $CONF['database_password'] = 'maildbpass'; $CONF['database_name'] = 'mail'; $CONF['encrypt'] = 'dovecot:CRAM-MD5'; $CONF['dovecotpw'] = "/usr/bin/doveadm pw"; $CONF['emailcheck_resolve_domain']='NO'; $CONF['fetchmail'] = 'NO';
chown apache:apache /var/www/html/postfixadmin/config.local.php systemctl start httpd.service
В браузере: http://localhost/postfixadmin/setup.php
Вводим пароль, жмем ОК, нам предлагаютс исправить параметр setup_password и hash.
Копируем hash и в /var/www/html/postfixadmin/config.local.php в параметре setup_passwd вместо changeme вписываем наш hash.
Настройка Postfix
Генерация сертификатов
mkdir /etc/ssl/mail
Генерация закрытого ключа CSR
openssl req -nodes -newkey rsa:2048 -keyout /etc/ssl/mail/mx.rosa3.loc.key -out /etc/ssl/mail/mx.rosa3.loc.csr
На вопрос про FQDN отвечаем: mx.rosa3.loc
Если запрос на FQDN не получите, то закончите генерацию, сотрите:
rm /etc/ssl/mail/mx.rosa3.*И повторите отперацию генерации.
Генерация самозаверяющего сертификата
openssl x509 -req -days 365 -in /etc/ssl/mail/mx.rosa3.loc.csr -signkey /etc/ssl/mail/mx.rosa3.loc.key -out /etc/ssl/mail/mx.rosa3.loc.crt
Генерация dh для dovecot
openssl dhparam -out /etc/ssl/mail/dh.pem 4096
Займет долго время, примерно минут 10-15.
chmod -R 644 /etc/ssl/mail
chmod 755 /etc/ssl/mail
cp /etc/postfix/main.cf /etc/postfix/main.cf.original
Редактируем:
nano /etc/postfix/main.cf
Правим:
inet_interfaces = all inet_protocols = ipv4 mydestination = unknown_local_recipient_reject_code = 550 mynetworks_style = subnet newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix html_directory = no
Закомментировать:
#local_recipient_maps = unix:passwd.byname $alias_maps #smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) (OpenMandriva) #smtp-filter_destination_concurrency_limit = 2 #lmtp-filter_destination_concurrency_limit = 2 #smtpd_use_tls = yes #smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.pem #smtpd_tls_key_file = /etc/pki/tls/private/postfix.pem #smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt #meta_directory = /etc/postfix #shlib_directory = /usr/lib64/postfix
Добавляем в конец файла:
myhostname = mx.rosa3.loc mydomain = rosa3.loc mynetworks = 127.0.0.0/8 192.168.1.0/24 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debug_peer_list = 127.0.0.1 192.168.1.59 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sample_directory = /usr/share/doc/postfix-2.10.1/samples 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 disable_dns_lookups = yes 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 smtpd_discard_ehlo_keywords = etrn, silent-discard smtpd_forbidden_commands = CONNECT GET POST broken_sasl_auth_clients = yes smtpd_delay_reject = yes smtpd_helo_required = yes smtp_always_send_ehlo = yes disable_vrfy_command = yes smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname smtpd_data_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_pipelining, reject_multi_recipient_bounce smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unknown_sender_domain smtp_tls_security_level = may smtpd_tls_security_level = may smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s smtp_tls_session_cache_database = btree:$data_directory/smtp_tls_session_cache smtpd_tls_key_file = /etc/ssl/mail/mx.rosa3.loc.key smtpd_tls_cert_file = /etc/ssl/mail/mx.rosa3.loc.crt tls_random_source = dev:/dev/urandom soft_bounce = no maximal_queue_lifetime = 1d bounce_queue_lifetime = 1d smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_sasl_path = private/dovecot-auth
Далее создаем vmail юзера виртуального
useradd -r -u 1150 -g mail -d /var/vmail -s /sbin/nologin -c Virtual vmail mkdir -p -v /var/vmail chmod 770 -R /var/vmail chown vmail:mail /var/vmail mkdir /etc/postfix/sql
Редактируем:
nano /etc/postfix/sql/vdomains.cf
user = postfix password = maildbpass hosts = 127.0.0.1 dbname = mail table = domain select_field = domain where_field = domain additional_conditions = and backupmx = '0' and active = '1'
Редактируем:
nano /etc/postfix/sql/vmailbox.cf
user = postfix password = maildbpass hosts = 127.0.0.1 dbname = mail table = mailbox select_field = CONCAT(domain,'/',maildir) where_field = username additional_conditions = and active = '1'
Редактируем:
nano /etc/postfix/sql/valias.cf
user = postfix password = maildbpass hosts = 127.0.0.1 dbname = mail table = alias select_field = goto where_field = address additional_conditions = and active = '1'
Редактируем:
nano /etc/postfix/master.cf
Закомментировать после этих строк:
pickup unix n - y 60 1 pickup
Нижение комментируем:
# -o content_filter= # -o receive_override_options=
Закомментировать после этих строк:
relay unix - - y - - smtp
Нижение комментируем:
# -o syslog_name=postfix/$service_name
Закомментируем:
#postlog unix-dgram n - y - 1 postlogd #cyrus-deliver unix - n n - - pipe # user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user} #cyrus-inet unix - - y - - lmtp # -o lmtp_sasl_auth_enable=yes # -o lmtp_sasl_password_maps=hash:/etc/postfix/cyrus_lmtp_sasl_pass # -o lmtp_sasl_security_options=noanonymous #127.0.0.1:10026 inet n - y - - smtpd # -o content_filter= # -o smtpd_restriction_classes= # -o smtpd_client_restrictions=permit_mynetworks,reject # -o smtpd_helo_restrictions= # -o smtpd_sender_restrictions= # -o smtpd_end_of_data_restrictions= # -o smtpd_etrn_restrictions= # -o smtpd_data_restrictions= # -o smtpd_delay_reject=no # -o smtpd_recipient_restrictions=permit_mynetworks,reject # -o mynetworks=127.0.0.0/8 # -o smtpd_authorized_xforward_hosts=127.0.0.0/8 # -o strict_rfc821_envelopes=yes # -o smtpd_error_sleep_time=0 # -o smtpd_soft_error_limit=1001 # -o smtpd_hard_error_limit=1000 # -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks #lmtp-filter unix - - y - - lmtp # -o lmtp_data_done_timeout=1200 # -o lmtp_send_xforward_command=yes # -o max_use=20 #smtp-filter unix - - y - - smtp # -o smtp_data_done_timeout=1200 # -o smtp_send_xforward_command=yes # -o max_use=20
Проверяем, чтобы перед словом flags=DRhu было ДВА пробела:
dovecot unix - n n - - pipe flags=DRhu user=vmail:mail argv=/usr/libexec/dovecot/deliver -d $(recipient)
Добавляем в конец файла:
submission inet n - y - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_wrappermode=no -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject -o smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,defer_unauth_destination -o milter_macro_daemon_name=ORIGINATING smtps inet n - y - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject -o smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,defer_unauth_destination -o milter_macro_daemon_name=ORIGINATING
Перед "-o....." ДВА пробела!!
Проверяем, должны получится вот такие конфигурационные файлы:
Настройка Dovecot
cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
Редактируем:
nano /etc/dovecot/dovecot.conf
Правим и раскомментируем:
protocols = imap pop3 lmtp
Закомментируем:
#!include conf.d/*.conf #!include_try local.conf
Добавим в конец файла:
auth_mechanisms = plain login disable_plaintext_auth = yes ssl = yes 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@rosa3.loc } #ssl_min_protocol = TLSv1.2 TLSv1.3 ssl = required verbose_ssl = yes ssl_cert = </etc/ssl/mail/mx.rosa3.loc.crt ssl_key = </etc/ssl/mail/mx.rosa3.loc.key ssl_dh = </etc/ssl/mail/dh.pem ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GC ssl_prefer_server_ciphers = yes
Редактируем:
nano /etc/dovecot/dovecot-sql.conf
driver = mysql connect = host=localhost dbname=mail user=postfix password=maildbpass 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'
Далее:
usermod -a -G mail apache usermod -a -G mail dovecot chown -R mail:mail /etc/dovecot chmod +x -R /etc/dovecot
Далее стартуем/рестартуем наши сервисы:
systemctl restart mysqld.service systemctl start postfix.service systemctl start dovecot.service systemctl restart httpd.service
Проверяем конфиг файл, должен быть такого вида: Файл:Dovecot.txt Это dovecot.conf
Рестарт системы
reboot
Стартуем все сервисы, сначала Mysql потом все остальные
systemctl start mysqld.service systemctl start postfix.service systemctl start dovecot.service systemctl start httpd.service
В браузере http://localhost/postfixadmin/setup.php
Появится форма добавления Админа postfixadmin.
Добавляем туда:
Админ: admin@rosa3.loc
Ну и пароли свои... Запоминаем...
В браузере http://localhost/postfixadmin/
Логин: admin@rosa3.loc / пароль который запомнили
Добавляем домен: "Список доменов" -> "Новый домен"
Домен: rosa3.loc
Жмем "Добавить"
Добавляем ящики1: "Обзор" -> "Создать ящик"
Название: user1
Имя: USERONE
Квота: 100
Жмем "Создать ящик"
Добавляем ящики2: "Обзор" -> "Создать ящик"
Название: user2
Имя: USERTWO
Квота: 100
Жмем "Создать ящик"
Настройка клиентских станций
На компе Клиента1
В /etc/hosts добавляем:
192.168.1.76 mx.rosa3.loc mx
В почтовой программе добавляем УЗ:
Логин везде user1@rosa3.loc
IMAP:
Порт- 993 Защита соединения- SSL/TLS Метод аутентификации- Обычный пароль
SMTP:
Порт- 465 Сервер- mx.rosa3.loc Зазита соединения- SSL/TLS Метод аутентификации- Обычный пароль Имя пользователя- user1@rosa3.loc
На компе Клиента2 аналогичным образом настраиваем почтовик. Только вместо user1 пишем везде user2
Запусуаем почтовую программу.
И можно наживамть "Получить" почту.
Но первый раз не сработает. Надо перезапустить программу.
После перезапуска возможно такая же ошибка, просто жмем ОК и еще раз "Получить" почту.
У нас высветится запрос на получение серфтификатов, нажимаем в левом нижнем углу кнопку "Подтверждаем ...."
Далее высветится запрос на пароль user1
Видим письмо с "Добро пожаловать!", значит все настроили правильно с IMAP сервером.
Теперь создадим и отошлем письмо user2@rosa3.loc
Создадим письмо для user2@rosa3.loc
Наждмем "Отправить", у нас как обычно высветится принятие сертификата (теперь уже от SMTP) сервера.
Принимаем его, НО ничего не отошлется. Нажимаем на "Отмена", и снова создаем новое письмо и потом уже жмем "Отправить".
Будет теперь уже запрос на пароль. Вводим его. И письмо должно отправиться.
Далее настраиваем АНАЛОГИЧНО учентую запись (УЗ) для user2@rosa3.loc
После ее создания и настройки, ЗАКРЫВАЕМ почтовую программу, и снова открываем ее.
Тогда у нас начнет арботать user2@rosa3.loc
Проверяем получение письма тестового от user1@rosa3.loc
Если всё настроили правильно, увилим тестое письмо.