<?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>IT science: заметки с тегом Postfix</title>
<link>https://itscience.pro/tags/postfix/</link>
<description>IT science — статьи и инструкции из мира IT</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.4 (v4171)</generator>

<itunes:subtitle>IT science — статьи и инструкции из мира IT</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Чистим почтовый сервер от старых рассылок</title>
<guid isPermaLink="false">45</guid>
<link>https://itscience.pro/all/chistim-pochtovy-server-ot-staryh-rassylok/</link>
<pubDate>Tue, 06 Sep 2022 10:49:01 +0300</pubDate>
<author></author>
<comments>https://itscience.pro/all/chistim-pochtovy-server-ot-staryh-rassylok/</comments>
<description>
&lt;p&gt;Что-то много мусора накопилось в ящиках пользователей.&lt;br /&gt;
Можно удалить старые письма (рассылки), которые потеряли свою актуальность.&lt;/p&gt;
&lt;p&gt;Опираться будем на уникальное содержимое письма. И возраст файла.&lt;/p&gt;
&lt;p&gt;например, ищем строку «Return-Path: &lt;user@domain.ru&gt;»&lt;br /&gt;
и пусть, файл будет страше 30 дней&lt;/p&gt;
&lt;p&gt;получается скрипт:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;find /var/vmail/ -type f -mtime +30 -exec grep -Ilr &amp;quot;Return-Path: &amp;lt;user@domain.ru&amp;gt;&amp;quot;  {} \;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;где «/var/vmail/» — путь к хранилищу писем&lt;/p&gt;
&lt;p&gt;выполнив эту команду получим список нужных нам файлов, без удаления&lt;/p&gt;
&lt;p&gt;а теперь, просто допишем в конец команду для удаления&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;find /var/vmail/ -type f -mtime +30 -exec grep -Ilr &amp;quot;Return-Path: &amp;lt;user@domain.ru&amp;gt;&amp;quot;  {} \; | xargs rm&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;всё&lt;/p&gt;
</description>
</item>

<item>
<title>лечим почтовые вложения winmail.dat</title>
<guid isPermaLink="false">30</guid>
<link>https://itscience.pro/all/lechim-pochtovye-vlozheniya-winmail-dat/</link>
<pubDate>Mon, 21 Dec 2020 11:47:09 +0300</pubDate>
<author></author>
<comments>https://itscience.pro/all/lechim-pochtovye-vlozheniya-winmail-dat/</comments>
<description>
&lt;p&gt;Проблема древняя и как водится связана с попыткой Microsoft навязывать свои стандарты. Откуда берется почтовое вложение winmail.dat вы можете почитать тут: &lt;a href="https://support.mozilla.org/ru/kb/chto-oznachaet-vlozhenie-winmaildat"&gt;https://support.mozilla.org/ru/kb/chto-oznachaet-vlozhenie-winmaildat&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;сегодня мы решим эту проблему глобально, прокачаем наш postfix сервер&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Установим MIMEDefang.&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;для CentOS&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;yum install mimedefang&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;для Ubuntu&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;apt-get install mimedefang&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;
&lt;li&gt;Настроим MIMEDefang на определенный порт TCP, наша служба будет слушать этот порт. Для этого исправим конфигурацию&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;для CentOS: /etc/sysconfig/mimedefang&lt;br /&gt;
для Ubuntu: /etc/default/mimedefang&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;дописываем в конце&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;SOCKET=inet:10185&lt;/code&gt;&lt;/pre&gt;&lt;ol start="3"&gt;
&lt;li&gt;Отредактируем файл  &lt;b&gt;/etc/mail/mimedefang-filter&lt;/b&gt;, можете просто вставить текст ниже&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# -*- Perl -*-
#***********************************************************************
#
# mimedefang-filter
#
# Suggested minimum-protection filter for Microsoft Windows clients, plus
# SpamAssassin checks if SpamAssassin is installed.
#
# Copyright (C) 2002 Roaring Penguin Software Inc.
#
# This program may be distributed under the terms of the GNU General
# Public License, Version 2, or (at your option) any later version.
#
# $Id$
#***********************************************************************

#***********************************************************************
# Set administrator&amp;#039;s e-mail address here.  The administrator receives
# quarantine messages and is listed as the contact for site-wide
# MIMEDefang policy.  A good example would be &amp;#039;defang-admin@mydomain.com&amp;#039;
#***********************************************************************
$AdminAddress = &amp;#039;postmaster@localhost&amp;#039;;
$AdminName = &amp;quot;MIMEDefang Administrator&amp;#039;s Full Name&amp;quot;;

#***********************************************************************
# Set the e-mail address from which MIMEDefang quarantine warnings and
# user notifications appear to come.  A good example would be
# &amp;#039;mimedefang@mydomain.com&amp;#039;.  Make sure to have an alias for this
# address if you want replies to it to work.
#***********************************************************************
$DaemonAddress = &amp;#039;mimedefang@localhost&amp;#039;;

#***********************************************************************
# If you set $AddWarningsInline to 1, then MIMEDefang tries *very* hard
# to add warnings directly in the message body (text or html) rather
# than adding a separate &amp;quot;WARNING.TXT&amp;quot; MIME part.  If the message
# has no text or html part, then a separate MIME part is still used.
#***********************************************************************
$AddWarningsInline = 0;

#***********************************************************************
# To enable syslogging of virus and spam activity, add the following
# to the filter:
# md_graphdefang_log_enable();
# You may optionally provide a syslogging facility by passing an
# argument such as:  md_graphdefang_log_enable(&amp;#039;local4&amp;#039;);  If you do this, be
# sure to setup the new syslog facility (probably in /etc/syslog.conf).
# An optional second argument causes a line of output to be produced
# for each recipient (if it is 1), or only a single summary line
# for all recipients (if it is 0.)  The default is 1.
# Comment this line out to disable logging.
#***********************************************************************
md_graphdefang_log_enable(&amp;#039;mail&amp;#039;, 1);

#***********************************************************************
# Uncomment this to block messages with more than 50 parts.  This will
# *NOT* work unless you&amp;#039;re using Roaring Penguin&amp;#039;s patched version
# of MIME tools, version MIME-tools-5.411a-RP-Patched-02 or later.
#
# WARNING: DO NOT SET THIS VARIABLE unless you&amp;#039;re using at least
# MIME-tools-5.411a-RP-Patched-02; otherwise, your filter will fail.
#***********************************************************************
# $MaxMIMEParts = 50;

#***********************************************************************
# Set various stupid things your mail client does below.
#***********************************************************************

# Set the next one if your mail client cannot handle multiple &amp;quot;inline&amp;quot;
# parts.
$Stupidity{&amp;quot;NoMultipleInlines&amp;quot;} = 0;

# Detect and load Perl modules
detect_and_load_perl_modules();


sub filter {
    my($entity, $fname, $ext, $type) = @_;
 
    ### Convert TNEF winmail.dat format
    ### Note: You must install Convert::TNEF and File::Type from CPAN before using this script
    if (lc($type) eq &amp;quot;application/ms-tnef&amp;quot; or lc($fname) eq &amp;quot;winmail.dat&amp;quot; ) {
        use Convert::TNEF;
        use File::Type;
        use File::Temp qw(tempfile tempdir);
 
        # Create a unique temporary directory under &amp;quot;/tmp&amp;quot;
        my $tnefdir = tempdir(CLEANUP =&amp;gt; 1, DIR =&amp;gt; &amp;quot;/tmp&amp;quot;);
        if (not $tnefdir) {
                md_graphdefang_log(&amp;#039;tnef_fail&amp;#039;,&amp;quot;Unable to create temporary directory&amp;quot;);
                return action_accept();
        }
 
        # If we can&amp;#039;t Convert the TNEF file for some reason, just accept the attachment and log the error
        my $tnef = Convert::TNEF-&amp;gt;read_ent($entity,{output_dir=&amp;gt;&amp;quot;$tnefdir&amp;quot;});
        if (not $tnef) {
                md_graphdefang_log(&amp;#039;tnef_fail&amp;#039;,$Convert::TNEF::errstr);
                return action_accept();
        }
 
        my $ft = File::Type-&amp;gt;new();
 
        # Append attachments contained in the winmail.dat file to the message.
        for ($tnef-&amp;gt;attachments) {
             # Determine the mime-type of the file
             my $mimetype = $ft-&amp;gt;mime_type($_-&amp;gt;data);
 
                # File::Type doesn&amp;#039;t detect text files well, this is a workaround
             if ($mimetype eq &amp;quot;application/octet-stream&amp;quot;) {
                  #Set the mime-type to text/plain if the first 1024 characters are printable
                  $text_check = substr($_-&amp;gt;data,0,1024);
                  $mimetype = &amp;quot;text/plain&amp;quot; unless $text_check =~ /[^[:print:]s]/;
             }
 
             my $tnef_entity = action_add_part($entity, &amp;quot;$mimetype&amp;quot;, &amp;quot;base64&amp;quot;, $_-&amp;gt;data, $_-&amp;gt;longname, &amp;quot;attachment&amp;quot;);
             md_graphdefang_log(&amp;#039;tnef_ext&amp;#039;, &amp;quot;File: &amp;quot; . $_-&amp;gt;longname . &amp;quot; Type: $mimetype&amp;quot;);
 
             # Run each new TNEF-sourced MIME part back through the filter again, this ensures that bad filenames etc.
             # cannot sneak through by being contained in winmail.dat files
 
             filter ($tnef_entity, $_-&amp;gt;longname, &amp;quot;&amp;quot;, &amp;quot;$mimetype&amp;quot;);
        }
 
        # Deletes working files
        $tnef-&amp;gt;purge;

 
        # Remark this if you want still want to keep the original winmail.dat file
        return action_drop();
    }
 
    # Keep the attachment
    return action_accept();
}

# DO NOT delete the next line, or Perl will complain.
1;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="4"&gt;
&lt;li&gt;Установим модели Perl  &lt;b&gt;Convert::TNEF&lt;/b&gt; и &lt;b&gt;File::Type&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;для CentOS&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;yum install perl-Convert-TNEF.noarch&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;второй пакет надо скачать и установить&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;wget https://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/perl-File-Type-0.22-1.el6.rf.noarch.rpm&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;yum install perl-File-Type-0.22-1.el6.rf.noarch.rpm&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;для Ubuntu&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;apt-get install libconvert-tnef-perl&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;apt-get install libfile-type-perl&lt;/code&gt;&lt;/pre&gt;&lt;ol start="5"&gt;
&lt;li&gt;Проверим синтаксис Perl&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# perl -c /etc/mail/mimedefang-filter&lt;/code&gt;&lt;/pre&gt;&lt;ol start="6"&gt;
&lt;li&gt;Настроим автозапуск службы MIMEDefang и запустим ее&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;systemctl enable mimedefang.service&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;service mimedefang restart&lt;/code&gt;&lt;/pre&gt;&lt;ol start="7"&gt;
&lt;li&gt;Проверим, слушает ли сервис указанный выше порт&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# netstat -tlpn | grep 10185
tcp        0      0 0.0.0.0:10185           0.0.0.0:*               LISTEN      7401/mimedefang&lt;/code&gt;&lt;/pre&gt;&lt;ol start="8"&gt;
&lt;li&gt;Теперь добавим проверку в Postfix, для этого откроем конфиг &lt;b&gt;/etc/postfic/main.cf&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;и допишем в конце&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;smtpd_milters = inet:localhost:10185
milter_default_action = accept&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;готово! Любое письмо, которое будет иметь во вложении winmail.dat, будет обработано нашей службой и вложение будет расшифровано!&lt;/p&gt;
</description>
</item>

<item>
<title>Mail Server и Mail Station</title>
<guid isPermaLink="false">25</guid>
<link>https://itscience.pro/all/mail-server-i-mail-station/</link>
<pubDate>Wed, 08 Apr 2020 13:50:02 +0300</pubDate>
<author></author>
<comments>https://itscience.pro/all/mail-server-i-mail-station/</comments>
<description>
&lt;p&gt;Из бесплатных решений у synology есть два пакета, почтовый сервер на базе Postfix и пользовательский web клиент.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail01.PNG" width="800" height="168.98656898657" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;давайте рассмотрим функционал сервера&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail02.PNG" width="800" height="504.44624090542" alt="" /&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;есть поддержка как локальных пользователей, так и доменных (есть возможность использовать как корпоративное решение)&lt;/li&gt;
&lt;li&gt;использование основного домена и элиасов, т. е. пользователь автоматически получает почту с адресов user@domain.ru, user@aliase.ru и т. д.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail03.PNG" width="800" height="506.39511201629" alt="" /&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;поддержка протоколов как IMAP, так и POP3&lt;/li&gt;
&lt;li&gt;обратите внимание на использование ssl, этот важный бонус вы оцените позже&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail04.PNG" width="800" height="433.84494293585" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;безопасность прокачена просто на высоте, есть возможность использовать все современные технологии&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;защита от СПАМа с использованием модуля SpamAssassin&lt;/li&gt;
&lt;li&gt;поддержка блэклистов DNSBL&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail05.PNG" width="800" height="428.51516345018" alt="" /&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;есть возможность включить антивирус на базе ClamAV, я не включаю, т. к. значительно тратится память, а эффективность под вопросом, чаще происходят ложные срабатывания&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail06.PNG" width="800" height="427.59164367363" alt="" /&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;можно создавать чёрные и белые списки, глобально для всех пользователей сервера, кстати очень гибкий редактор, см. ниже&lt;/li&gt;
&lt;li&gt;можно установить ежедневные квоты на отправку сообщений, можно общее значение, можно индивидуально пользователям, удобно если чей-то ящик взломают — это не перерастет в лавинную отправку спама&lt;/li&gt;
&lt;li&gt;фильтр вложений, можно задать запрещенные расширения файлов для пересылки (по-умолчанию, присутствует список самых распространенных исполняемых файлов)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail07.PNG" width="800" height="543.23144104803" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;подробнее настройка чёрного и белого списка, обратите внимание на возможности делать исключения&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail08.PNG" width="800" height="448.51837218491" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;реализована защита от вредоносного содержимого письма, так же все настраивается&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail09.PNG" width="800" height="547.05184012663" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;и самое, на мой взгляд, важное, это настройки SPF,  DKIM и защита DMARK, сейчас современный почтовый сервер не может существовать без всего этого&lt;br /&gt;
если вы не знаете, что это такое — не беда, открываете Справку и читаете как правильно настроить DNS&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail11.PNG" width="800" height="448.63366336634" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;да, Справка в Synology очень крутая!&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail10.PNG" width="800" height="429.69984202212" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;есть возможность использовать псевдонимы не только внутренних пользователей, а можно настроить пересылку на внешние ящики, это круто&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail12.PNG" width="800" height="436.21984974298" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;автоматическая скрытая копия, это что-то из области слежения&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail13.PNG" width="800" height="421.88739095956" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;таблица с текущей очередью сообщений, с возможностью удаления, повторной отправки и очистки сообщений&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail14.PNG" width="800" height="449.4275562574" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;журнал, полезная вещь, можно сразу увидеть было ли доставлено сообщение и когда, а также ошибки отправки, самое же важное, на мой взгляд, это возможность выгрузить лог postfix, сам пользовался и не раз&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail15.PNG" width="800" height="458.45909451946" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;довольно подробный в текстовом формате отчет об отправленных, полученных, заблокированных сообщений, можно настроить получение на любой ящик&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail16.PNG" width="800" height="431.45001975504" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;настройка пересылки, автоответа и т. д. с поддержкой глобальных переменных&lt;/p&gt;
&lt;p&gt;Подведем итог, это бесплатная версия сервера (позже расскажу про платную), на мой взгляд реализован функционал современного почтового сервера на 95%. Есть все самые основные вещи, и работает сразу из коробки, не нужны «танцы с бубном». Очень удобный интерфейс управления. Рекомендую как частный почтовый сервер, до корпоративного не хватает адресной книги с возможностью делиться контактами и расшаривания почтовых папок.&lt;/p&gt;
&lt;p&gt;PS обещал рассказать про ssl, когда вы настроите домен, пропишите в DNS адрес сервера, то с помощью synology сможете выпустить заверенные сертификаты Let’s Encrypt для IMAP, SMTP и POP3, в будущем synology будет автоматически перевыпускать эти сертификаты, т. е. настроили и забыли&lt;/p&gt;
&lt;p&gt;Mail Station — это почтовый web-клиент RoundCube (&lt;a href="https://roundcube.net)."&gt;https://roundcube.net).&lt;/a&gt; очень урезанный, без возможности отмечать сообщения как СПАМ, но в целом годный&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail17.PNG" width="800" height="496.09467455621" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/mail18.PNG.jpg" width="800" height="173.4375" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;т. к. RoundCube можно неплохо прокачать за счет огромного количества плагинов, то все в ваших руках&lt;/p&gt;
</description>
</item>


</channel>
</rss>