<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Воронин: заметки с тегом iRedMail</title>
<link>https://voronin.one/tags/iredmail/</link>
<description>воронин, voronin, it</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.4 (v4171)</generator>

<itunes:subtitle>воронин, voronin, it</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>черный и белый список для postfix</title>
<guid isPermaLink="false">50</guid>
<link>https://voronin.one/all/cherny-i-bely-spisok-dlya-postfix/</link>
<pubDate>Thu, 29 Jun 2023 14:09:04 +0300</pubDate>
<author></author>
<comments>https://voronin.one/all/cherny-i-bely-spisok-dlya-postfix/</comments>
<description>
&lt;p&gt;Делаем черный и белый список для postfix.&lt;/p&gt;
&lt;p&gt;создаем файл &lt;b&gt;/etc/postfix/rbl_override&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mcedit /etc/postfix/rbl_override&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;пишем в него, узлы, которые хотим исключить из проверки&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;1.2.3.4 OK
1.2.3.5 OK
mail.freemailer.tld OK&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;преобразуем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo postmap /etc/postfix/rbl_override&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;осталось подключить к нашей системе, для этого отредактируем &lt;b&gt;/etc/postfix/main.c&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mcedit /etc/postfix/main.cf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;находим раздел &lt;b&gt;smtpd_recipient_restrictions&lt;/b&gt; и добавляем &lt;b&gt;check_client_access hash:/etc/postfix/rbl_override&lt;/b&gt; после &lt;b&gt;reject_unauth_destination&lt;/b&gt;&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/image-43.png" width="445" height="176" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;теперь просто перегружаем службу postfix&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo service postfix restart&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>переносим базу SpamAssassin bayes в MySQL</title>
<guid isPermaLink="false">47</guid>
<link>https://voronin.one/all/perenosim-bazu-spamassassin-bayes-v-mysql/</link>
<pubDate>Tue, 13 Jun 2023 17:59:28 +0300</pubDate>
<author></author>
<comments>https://voronin.one/all/perenosim-bazu-spamassassin-bayes-v-mysql/</comments>
<description>
&lt;p&gt;для начала проверим версию SpamAssassin&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$ sudo spamassassin -V
SpamAssassin version 3.4.6
  running on Perl version 5.32.1&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;в нашем случае это 3.4.6&lt;/p&gt;
&lt;p&gt;теперь качаем нужный файл со структурой mysql&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$ cd ~
$ wget http://svn.apache.org/repos/asf/spamassassin/tags/spamassassin_release_3_4_6/sql/bayes_mysql.sql&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;подключаемся к движку базы и загружаем структуру&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$ mysql -uroot -p
MariaDB [(none)]&amp;gt; CREATE DATABASE sa_bayes;
MariaDB [(none)]&amp;gt; USE sa_bayes;
MariaDB [(none)]&amp;gt; SOURCE ~/bayes_mysql.sql;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;создадим пользователя &lt;b&gt;sa_user&lt;/b&gt; с паролем &lt;b&gt;Pa$$W0rd&lt;/b&gt; (замените на свой) и правами на нашу базу&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;MariaDB [(none)]&amp;gt; GRANT SELECT, INSERT, UPDATE, DELETE ON sa_bayes.* TO sa_user@localhost IDENTIFIED BY &amp;#039;Pa$$W0rd&amp;#039;;
MariaDB [(none)]&amp;gt; FLUSH PRIVILEGES;
MariaDB [sa_bayes]&amp;gt; quit;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;отредактируем конфиг &lt;b&gt;/etc/mail/spamassassin/local.cf&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;use_bayes          1
bayes_auto_learn   1
bayes_auto_expire  1

# Store bayesian data in MySQL.
# Please make sure you have correct server address, port and database name.
bayes_store_module Mail::SpamAssassin::BayesStore::MySQL
bayes_sql_dsn      DBI:mysql:sa_bayes:127.0.0.1:3306

# Store bayesian data in PostgreSQL.
# Please make sure you have correct server address, port and database name.
#bayes_store_module Mail::SpamAssassin::BayesStore::PgSQL
#bayes_sql_dsn      DBI:Pg:database=sa_bayes;host=127.0.0.1;port=5432

# SQL username and password.
bayes_sql_username sa_user
bayes_sql_password Pa$$W0rd

# Override the username used for storing data in the database.
# This could be used to group users together to share bayesian filter data.
# You can also use this config option to trick sa-learn to learn data as a specific user.
#bayes_sql_override_username vmail
bayes_sql_override_username amavis&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;рестартим службу&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$ sudo service amavis restart&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;проверяем, скармливаем тестовое сообщение&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$ sa-learn --spam --username=amavis /usr/share/doc/spamassassin/examples/sample-spam.txt
Learned tokens from 1 message(s) (1 message(s) examined)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;и проверим наполняемость базы&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$ mysql -uroot -p
MariaDB [(none)]&amp;gt; USE sa_bayes;
MariaDB [sa_bayes]&amp;gt; SELECT username,spam_count,ham_count FROM bayes_vars;
+----------+------------+-----------+
| username | spam_count | ham_count |
+----------+------------+-----------+
| amavis   |          1 |         1 |
+----------+------------+-----------+
1 row in set (0,000 sec)
MariaDB [sa_bayes]&amp;gt; quit;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;и не забудьте отредактировать файл резервирования &lt;b&gt;/var/vmail/backup/backup_mysql.sh&lt;/b&gt;, чтобы добавить и нашу базу&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# Databases we should backup.
# Multiple databases MUST be seperated by SPACE.
export DATABASES=&amp;#039;mysql vmail roundcubemail amavisd iredadmin sogo iredapd sa_bayes&amp;#039;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;PS мне скрипт резервирования не пришлось менять, там уже быза бала прописана&lt;/p&gt;
</description>
</item>

<item>
<title>iRedMail и Roundcube</title>
<guid isPermaLink="false">46</guid>
<link>https://voronin.one/all/iredmail-i-roundcube/</link>
<pubDate>Tue, 30 May 2023 17:16:55 +0300</pubDate>
<author></author>
<comments>https://voronin.one/all/iredmail-i-roundcube/</comments>
<description>
&lt;p&gt;После установки и настройки iRedMail мы получаем удобный почтовый клиент Roundcube.&lt;/p&gt;
&lt;p&gt;Давайте немного его улучшим для работы.&lt;/p&gt;
&lt;h2&gt;установим необходимые компоненты и обновим существующие модули&lt;/h2&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo apt install composer php-ldap

cd /opt/www/roundcubemail
sudo composer update&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;установим и включим контекстное меню&lt;/h2&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo composer require johndoh/contextmenu&lt;/code&gt;&lt;/pre&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/iredmail-i-roundcube-1.png" width="407" height="294" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;установим и включим календарь&lt;/h2&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo composer require kolab/calendar&lt;/code&gt;&lt;/pre&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/iredmail-i-roundcube.png" width="800" height="364.08163265306" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;отредактируем файл с конфигурацией Roundcube &lt;b&gt;/opt/www/roundcubemail/config/config.inc.php&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;// PLUGINS
$config[&amp;#039;plugins&amp;#039;] = [
        &amp;#039;managesieve&amp;#039;,
        &amp;#039;password&amp;#039;,
        &amp;#039;zipdownload&amp;#039;,
        &amp;#039;acl&amp;#039;,
        &amp;#039;markasjunk&amp;#039;,
        &amp;#039;contextmenu&amp;#039;,
        &amp;#039;libkolab&amp;#039;,
        &amp;#039;libcalendaring&amp;#039;,
        &amp;#039;calendar&amp;#039;,
];&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;убедитесь, что у вас в списке плагинов есть &lt;b&gt;’acl’&lt;/b&gt; и &lt;b&gt;’markasjunk’&lt;/b&gt;, первый отвечает за расшаривание почтовых папок, второй за манипуляции со СПАМ сообщениями.&lt;/p&gt;
&lt;h2&gt;включим возможность отмечать сообщения как СПАМ&lt;/h2&gt;
&lt;p&gt;отредактируем файл с конфигурацией ’markasjunk’ &lt;b&gt;/opt/www/roundcubemail/plugins/markasjunk/config.inc.php&lt;/b&gt;&lt;br /&gt;
и укажем следующие значения для параметров:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$config[&amp;#039;markasjunk2_learning_driver&amp;#039;] = &amp;#039;cmd_learn&amp;#039;;
$config[&amp;#039;markasjunk2_spam_cmd&amp;#039;] = &amp;#039;/usr/bin/sa-learn --spam --username=amavis %f&amp;#039;;
$config[&amp;#039;markasjunk2_ham_cmd&amp;#039;] = &amp;#039;/usr/bin/sa-learn --ham --spam --username=amavis %f&amp;#039;;&lt;/code&gt;&lt;/pre&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/Screenshot_20230530_171451.png" width="274" height="56" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;PS не забудьте разрешить php исполнение внешних команд, для этого отредактируйте файл &lt;b&gt;/etc/php/7.4/fpm/php.ini&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;и удалите в параметре &lt;b&gt;disable_functions&lt;/b&gt; значение &lt;b&gt;shell_exec&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;disable_functions = posix_uname,eval,pcntl_wexitstatus,posix_getpwuid,xmlrpc_entity_decode,pcntl_wifstopped,pcntl_wifexited,pcntl_wifsignaled,phpAds_XmlRpc,pcntl_strerror,ftp_exec,pcntl_wtermsig,mysql_pconnect,proc_nice,pcntl_sigtimedwait,posix_kill,pcntl_sigprocmask,fput,phpinfo,system,phpAds_remoteInfo,ftp_login,inject_code,posix_mkfifo,highlight_file,escapeshellcmd,show_source,pcntl_wifcontinued,fp,pcntl_alarm,pcntl_wait,ini_alter,posix_setpgid,parse_ini_file,ftp_raw,pcntl_waitpid,pcntl_getpriority,ftp_connect,pcntl_signal_dispatch,pcntl_wstopsig,ini_restore,ftp_put,passthru,proc_terminate,posix_setsid,pcntl_signal,pcntl_setpriority,phpAds_xmlrpcEncode,pcntl_exec,ftp_nb_fput,ftp_get,phpAds_xmlrpcDecode,pcntl_sigwaitinfo,pcntl_get_last_error,ftp_rawlist,pcntl_fork,posix_setuid&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ну и перезапустим php&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo service php7.4-fpm restart&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Более полный список расширений вы сможете найти по ссылке: &lt;a href="https://packagist.org/?type=roundcube-plugin"&gt;https://packagist.org/?type=roundcube-plugin&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Увеличиваем размер принимаемого сообщения в iRedMail</title>
<guid isPermaLink="false">43</guid>
<link>https://voronin.one/all/uvelichivaem-razmer-prinimaemogo-soobscheniya-v-iredmail/</link>
<pubDate>Wed, 03 May 2023 13:18:44 +0300</pubDate>
<author></author>
<comments>https://voronin.one/all/uvelichivaem-razmer-prinimaemogo-soobscheniya-v-iredmail/</comments>
<description>
&lt;p&gt;Увеличим размер почтового сообщения до 35Мб&lt;/p&gt;
&lt;p&gt;меняем настройки postfix&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;postconf -e message_size_limit=36700160
postconf -e mailbox_size_limit=36700160&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;перечитываем изменения службой postfix&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl reload postfix&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;редактируем php.ini&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mcedit /etc/php/7.4/fpm/php.ini&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ищем переменные и меняем значения на нужные нам&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;memory_limit = 256M;
upload_max_filesize = 35M;
post_max_size = 37M;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;рестартим php&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl restart php7.4-fpm&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;редактируем конфиг roundcube&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mcedit /opt/www/roundcubemail/config/config.inc.php&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ищем настройку максимального размера сообщения и меняем значение&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$config[&amp;#039;max_message_size&amp;#039;] = &amp;#039;35M&amp;#039;;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;редактируем конфиг nginx&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mcedit /etc/nginx/conf-enabled/client_max_body_size.conf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ищем переменную и меняем значение на своё&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;client_max_body_size 100m;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;проверяем правильность конфига&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo nginx -t&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;перечитываем изменения службой nginx&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl reload nginx&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Выпускаем сертификат Let’s encrypt и настраиваем автоматический перевыпуск в iRedMail</title>
<guid isPermaLink="false">42</guid>
<link>https://voronin.one/all/vypuskaem-sertifikat-lets-encrypt-i-nastraivaem-avtomaticheskiy/</link>
<pubDate>Wed, 03 May 2023 13:16:05 +0300</pubDate>
<author></author>
<comments>https://voronin.one/all/vypuskaem-sertifikat-lets-encrypt-i-nastraivaem-avtomaticheskiy/</comments>
<description>
&lt;p&gt;устанавливаем certbot&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo apt update
sudo apt install certbot&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;запрашиваем новый сертификат для домена mail.{domain}.ru&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo certbot certonly --webroot --agree-tos --email postmaster@{domain}.ru -d mail.{domain}.ru -w /var/www/html/&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;открываем конфиги nginx и если нужно вносим изменения, сначала для http&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mcedit /etc/nginx/sites-enabled/00-default.conf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;убедились, чтобы эти поля были раскомментированы&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;enable listen [::]:80;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;затем для https&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mcedit /etc/nginx/sites-enabled/00-default-ssl.conf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;убедились, чтобы эти поля были раскомментированы&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;add listen [::]:443 ssl http2;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;проверяем правильность конфига&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo nginx -t&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;перечитываем изменения службой nginx&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl reload nginx&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;редактируем поти к сертификатам, самоподписанные меняем на let’s encrypt&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mcedit /etc/nginx/templates/ssl.tmpl&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;находим&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;ssl_certificate /etc/ssl/certs/iRedMail.crt;
ssl_certificate_key /etc/ssl/private/iRedMail.key;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;меняем на это&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;ssl_certificate /etc/letsencrypt/live/mail.{domain}.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.{domain}.ru/privkey.pem;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;проверяем правильность конфига&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo nginx -t&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;перечитываем изменения службой nginx&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl reload nginx&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;правим кофиг postfix&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mcedit /etc/postfix/main.cf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;находим&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt
smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;заменяем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;smtpd_tls_key_file = /etc/letsencrypt/live/mail.{domain}.ru/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.{domain}.ru/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.{domain}.ru/chain.pem&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;перечитываем изменения службой postfix&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl reload postfix&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;правим другой кофиг postfix, указываем на необходимость использования tls&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mcedit /etc/postfix/master.cf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;добавляем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;465     inet  n       -       n       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o content_filter=smtp-amavis:[127.0.0.1]:10026&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;перечитываем изменения службой postfix&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl reload postfix&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;правим конфиг dovecot&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mcedit /etc/dovecot/dovecot.conf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;находим&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;ssl_cert = &amp;lt;/etc/ssl/certs/iRedMail.crt
ssl_key = &amp;lt;/etc/ssl/private/iRedMail.key&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;заменяем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;ssl_cert = &amp;lt;/etc/letsencrypt/live/mail.{domain}.ru/fullchain.pem
ssl_key = &amp;lt;/etc/letsencrypt/live/mail.{domain}.ru/privkey.pem&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;перечитываем изменения службой dovecot&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl reload dovecot&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;осталось добавить в ротацию перевыпуск сертификата, для этого редактируем crontab&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo crontab -e&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;add&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# перевыпуск сертификатов Let&amp;#039;s Encrypt
43 3 9 * * /usr/bin/certbot renew --post-hook &amp;quot;/usr/bin/systemctl reload nginx; /usr/bin/systemctl reload dovecot; /usr/bin/systemctl reload postfix&amp;quot;
45 3 9 * * /usr/sbin/service nginx reload
46 3 9 * * /usr/sbin/service postfix reload
47 3 9 * * /usr/sbin/service dovecot reload&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;не забудьте оставить пустую строку в конце (такие требования синтаксиса crontab)&lt;/p&gt;
</description>
</item>

<item>
<title>Отключаем протокол pop3 iRedMail</title>
<guid isPermaLink="false">41</guid>
<link>https://voronin.one/all/otklyuchaem-protokol-pop3-iredmail/</link>
<pubDate>Wed, 03 May 2023 13:13:34 +0300</pubDate>
<author></author>
<comments>https://voronin.one/all/otklyuchaem-protokol-pop3-iredmail/</comments>
<description>
&lt;p&gt;Редактируем конфиг dovecot&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mcedit /etc/dovecot/dovecot.conf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;меняем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# Enabled mail protocols.
protocols = pop3 imap sieve lmtp&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;на&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# Enabled mail protocols.
protocols = imap sieve lmtp&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;перезапускаем dovecot&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo service dovecot restart&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Cистема индексации lucene для Dovecot (debian)</title>
<guid isPermaLink="false">40</guid>
<link>https://voronin.one/all/cistema-indeksacii-lucene-dlya-dovecot-debian/</link>
<pubDate>Wed, 03 May 2023 13:10:17 +0300</pubDate>
<author></author>
<comments>https://voronin.one/all/cistema-indeksacii-lucene-dlya-dovecot-debian/</comments>
<description>
&lt;p&gt;Крайне рекомендую установить систему индексации lucene, когда ваших писем перевалит за 10 тыс., вы вспомните меня добрым словом 😉&lt;/p&gt;
&lt;p&gt;установим из репозиториев&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo apt update
sudo apt install dovecot-lucene&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;теперь редактируем конфиг dovecot&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mcedit /etc/dovecot/dovecot.conf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ищем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mail_plugins = quota mailbox_alias acl mail_log notify&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;меняем на&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mail_plugins = quota mailbox_alias acl mail_log notify fts fts_lucene&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ищем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;plugin {
    # Quota configuration.
    # Reference: http://wiki2.dovecot.org/Quota/Configuration
    quota = dict:user::proxy::quotadict&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;меняем на&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;plugin {
    fts = lucene
    fts_lucene = whitespace_chars=@. normalize default_language=russian
    fts_autoindex = yes

    # Quota configuration.
    # Reference: http://wiki2.dovecot.org/Quota/Configuration
    quota = dict:user::proxy::quotadict&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;осталось только перезапустить dovecot&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo service dovecot restart&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Прощай Яндекс почта</title>
<guid isPermaLink="false">38</guid>
<link>https://voronin.one/all/proschay-yandeks-pochta/</link>
<pubDate>Tue, 02 May 2023 18:04:43 +0300</pubDate>
<author></author>
<comments>https://voronin.one/all/proschay-yandeks-pochta/</comments>
<description>
&lt;p&gt;Была у меня почта на Яндексе, уже была, т. к. последний сделал её платной. Что же, я перевёз свои 12 ящиков, и вы справитесь.&lt;/p&gt;
&lt;p&gt;Схема самая простая, сначала разворачиваем свой почтовый сервер (настраиваем его), затем перевозим ящики (по одному), бонусом тюним web-интерфейс Roundcube.&lt;/p&gt;
&lt;p&gt;Все представленные здесь решения являются бесплатными для личного пользования, ваша задача только оплата VDS.&lt;/p&gt;
&lt;p&gt;Системные требования для моих задач (12 ящиков, 1 основной домен и 3 элиаса):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OC Linux&lt;/li&gt;
&lt;li&gt;CPU 1&lt;/li&gt;
&lt;li&gt;RAM 4 Гб&lt;/li&gt;
&lt;li&gt;HDD 100 Гб&lt;/li&gt;
&lt;li&gt;IP 1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Возможно вам потребуется больше, тут всё зависит от бюджета и нагрузки, системные требования для iRedMail предполагают от 4Гб оперативной памяти, а для поддержки 500 клиентов так все 16Гб.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/image-38.png" width="538" height="224" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Я не буду останавливаться на развёртывание системы, в моём примере debian 11, многие хостеры это сделаю для вас автоматически.&lt;br /&gt;
Не забудьте прописать в DNS зону A, например mail.{domain}.ru&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/image-39.png" width="447" height="35" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Прошу обратить внимание, зону MX мы не трогаем, чтобы пока мы настраиваем новый сервер, не потерять сообщения приходящие на старый.&lt;/p&gt;
&lt;p&gt;коннектимся в консоль сервера и создаем пользователя с sudo&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;su -
apt update
apt install mc sudo -y
useradd {username}
passwd {username}
usermod -aG sudo {username}&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;mc ставлю ради mcedit&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Логинимся под свеже созданным пользователем и назначаем серверу его имя как указывали в DNS&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo hostnamectl set-hostname mail.{domain}.ru&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;в файле «/etc/hosts» руками правим имя локалхоста&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mcedit /etc/hosts&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;должно получиться так&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;127.0.0.1       mail.{domain}.ru localhost&lt;/code&gt;&lt;/pre&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/pereezd-pochty-s-yandeksa.png" width="486" height="132" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;проверяем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;hostname -f&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Начинаем непосредственно установку сервера, для этого определяем ссылку на актуальный дистрибутив, переходим сюда: &lt;a href="https://iredmail.com/download.html"&gt;https://iredmail.com/download.html&lt;/a&gt; , кликаем правой кнопкой мыши на стабильной версии и копируем ссылку на скачивание&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/pereezd-pochty-s-yandeksa-1.png" width="800" height="254.01207937877" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;в консоли идем в домашнюю папку и скачиваем дистрибутив&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;cd ~
wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.6.2.tar.gz&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;распаковываем его, переходим в полученную папку делаем файл «iRedMail-1.6.2» исполняемым и запускаем установку&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;tar xvf 1.6.2.tar.gz
cd iRedMail-1.6.2/
chmod +x iRedMail.sh
sudo bash iRedMail.sh&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;после того как скрипт скачет необходимые пакеты запустится визард, который поможет провести первоначальную настройку&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/pereezd-pochty-s-yandeksa-2.png" width="639" height="349" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;указываем путь, где будут храниться почтовые сообщения и бэкапы базы данных&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/pereezd-pochty-s-yandeksa-3.png" width="637" height="351" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;выбираем какой web-сервер будет установлен, ну как выбираем, соглашаемся с nginx&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/pereezd-pochty-s-yandeksa-4.png" width="631" height="339" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;далее выбираем какую базу данных будет использовать почтовый сервер (я выбираю MariaDB)&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/pereezd-pochty-s-yandeksa-5.png" width="635" height="346" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;придумываем и указываем пароль для администратора базы данных, можно сейчас записать, а можно дождаться окончания установки и получить все логины и пароли в первом письме&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/pereezd-pochty-s-yandeksa-6.png" width="637" height="349" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;указываем имя домена, не имя сервера, а имя домена!&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/pereezd-pochty-s-yandeksa-7.png" width="638" height="350" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;задаём пароль администратора почтового сервера&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/pereezd-pochty-s-yandeksa-8.png" width="639" height="347" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;указываем необходимые нам компоненты, для простого и лёгкого сервера я бы рекомендовал остановиться на почтовом web-клиенте Roundcube, web-панели администратора iRedAdmin и fail2ban для защиты от подбора паролей пользователей&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/pereezd-pochty-s-yandeksa-9.png" width="634" height="347" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;проверяем настройки и подтверждаем их&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/pereezd-pochty-s-yandeksa-10.png" width="586" height="367" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;теперь остаётся ждать, пока инсталляционный скрипт завершит свою работу&lt;/p&gt;
&lt;p&gt;после завершения установки подтвердите настройки файервола&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/pereezd-pochty-s-yandeksa-11.png" width="592" height="95" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Я вас поздравляю, теперь можно получить доступ к ресурсам сервера по следующим адресам:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;- Roundcube webmail: https://mail.{domain}.ru/mail/
- Web admin panel (iRedAdmin): https://mail.{domain}.ru/iredadmin/

- Username: postmaster@{domain}.ru
- Password: BTAyZswFv4VroUP2oPTUkaikMETc6pyY&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;
&lt;p&gt;Если захотите добавить элиас домена через бесплатную админку этого сделать не получится, но можно внести значения напрямую в базу (работает как с MySQL, так и с PostgreSQL)&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mysql -u root
sql&amp;gt; USE `vmail`;
sql&amp;gt; INSERT INTO `alias_domain` (`alias_domain`, `target_domain`) VALUES (&amp;#039;{alias}.ru&amp;#039;, &amp;#039;{domain}.ru&amp;#039;);&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;удалить элиас так:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mysql -u root
sql&amp;gt; USE `vmail`;
sql&amp;gt; DELETE FROM `alias_domain` WHERE `alias_domain` = &amp;#039;{alias}.ru&amp;#039;;&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;
&lt;p&gt;На этом можно было бы и закончить, но есть моменты на которых я предлагаю остановиться, назовём это улучшения вашего сервера&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;a href="https://voronin.one/drafts/cistema-indeksacii-lucene-dlya-dovecot-debian/"&gt;Система индексации lucene для Dovecot (debian)&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;a href="https://voronin.one/all/otklyuchaem-protokol-pop3-iredmail/"&gt;Отключаем протокол pop3 (делал чисто для себя, т.к .не пользуюсь им, слишком устаревший)&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;a href="https://voronin.one/all/vypuskaem-sertifikat-lets-encrypt-i-nastraivaem-avtomaticheskiy/"&gt;Выпускаем подтверждённый сертификат Let’s encrypt и настраиваем автоматический перевыпуск сертификата&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;a href="https://voronin.one/all/uvelichivaem-razmer-prinimaemogo-soobscheniya-v-iredmail/"&gt;Как увеличить размер принимаемого сообщения, например до 35Мб?&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;a href="https://voronin.one/all/obnovlyaem-clamav-na-territorii-rf/"&gt;Есть проблемы с антивирусом clamav на территории РФ, после первоначальной установки он у вас просто не запустится, т. к. не сможет обновить свои базы, как решить?&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;готово! наш сервер готов принять письма&lt;/p&gt;
&lt;p&gt;Через Админку создаём пользовательские ящики, которые готовы принять письма&lt;/p&gt;
&lt;p&gt;Меняем запись MX в DNS, чтобы новые сообщения попадали уже на наш сервер&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/proschay-yandeks-pochta-1.png" width="466" height="35" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Ждём когда изменения вступят в силу, максимум 3 часа, вы увидите, как сообщения появятся в ящиках на новом сервере, всё — это значит пора перевозить старые письма. Для этого воспользуемся моим скриптом: &lt;a href="https://voronin.one/all/skript-dlya-perenosa-elektronnoy-pochty-iz-odnogo-yaschika-v-dru/"&gt;https://voronin.one/all/skript-dlya-perenosa-elektronnoy-pochty-iz-odnogo-yaschika-v-dru/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Адресную книгу без проблем перенесёте через экспорт/импорт.&lt;br /&gt;
А вот правила фильтрации в яндексе «фильдеперсовые», их только вручную можно перенести, хоть в Roundcube есть возможность подгрузить правила sieve из файла.&lt;/p&gt;
</description>
</item>


</channel>
</rss>