Страница 2 из 2

Re: Postfix+LDAP+SASL+Postgrey+clamav

Добавлено: 09 мар 2022, 10:48
Padonak
Пример настройки mime_header_checks Postfix

В main.cf mime_header_checks запустится после проверок smtpd_*_restrictions.

Код: Выделить всё

mime_header_checks = pcre:/etc/postfix/pcre_mime_header_checks
Содержимое файла pcre_mime_header_checks:

Код: Выделить всё

# Files blocked by their suffix
/^\s*Content-(Disposition|Type).*name=\"(.*)\.(386|bat|bin|chm|cmd|com|do|exe|hta|jse|lnk|msi|ole)\"$/
 REJECT Unwanted type of attachment $1: $2.$3
/^\s*Content-(Disposition|Type).*name=\"(.*)\.(pif|reg|rm|scr|shb|shm|shs|sys|vbe|vbs|vxd|xl|xsl)\"$/
 REJECT Unwanted type of attachment $1: $2.$3

Re: Postfix+LDAP+SASL+Postgrey+clamav

Добавлено: 15 ноя 2023, 22:45
Padonak
Проверка работы спам фильтра - отправить письмо с текстом:

Код: Выделить всё

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Как выполняется настройка SSL в Postfix

Добавлено: 01 дек 2023, 12:53
Padonak

Код: Выделить всё

vim  /etc/postfix/main.cf

Код: Выделить всё

# TLS parameters
smtpd_tls_cert_file=/etc/dovecot/dovecot.crt
smtpd_tls_key_file=/etc/dovecot/private/dovecot.key
smtpd_use_tls = yes
smtp_use_tls = yes

Код: Выделить всё

vim /etc/postfix/master.cf
В файле находим и раскомментируем 2 строки:

Код: Выделить всё

#submission inet n — — — — smtpd
Отвечает за работу службы на порту 587

Код: Выделить всё

#smtps inet n — — — — smtpd
Отвечает за работу службы на порту 465

Перезапускаем почтовую службу
/etc/init.d/postfix restart

Re: Postfix+LDAP+SASL+Postgrey+clamav

Добавлено: 15 май 2024, 13:24
Padonak
Скрываем служебную информацию из заголовка письма в Postfix

Код: Выделить всё

vim /etc/postfix/auth_header_checks.pcre
Содержание файла auth_header_checks.pcre

Код: Выделить всё

/^Received:/         IGNORE
/^User-Agent:/       IGNORE
/^X-Mailer:/         IGNORE
/^X-Originating-IP:/    IGNORE
/^X-PHP-Originating-Script/ IGNORE
редактируем конфиг Postfix:

Код: Выделить всё

vim /etc/postfix/main.cf
добавляем туда строку:

Код: Выделить всё

header_checks = pcre:/etc/postfix/auth_header_checks.pcre

Ну и рестарт Postfix

Код: Выделить всё

/etc/init.d/postfix restart

Запрещение приема почты с определенных email

Добавлено: 17 май 2024, 20:03
Padonak
Запрещение приема почты с определенных email в postfix (postfix blocking mail )

Код: Выделить всё

vim /etc/postfix/main.cf:

Код: Выделить всё

   smtpd_sender_restrictions = hash:/etc/postfix/sender_access

Код: Выделить всё

vim /etc/postfix/sender_access

Код: Выделить всё

 spamer@domain REJECT         # Заблокировать емайл.
    domain REJECT		             # Заблокировать всю почту с домена и поддоменов
    spamer@ REJECT		             # Заблокировать пользователя с любого домена
    spamer@domain      550 NO SPAM    # Выдать сообщение 
    192.168.1.1 REJECT		             # Не принимать почту с IP (или подсети)

Код: Выделить всё

postmap /etc/postfix/sender_access

Код: Выделить всё

postfix reload

Настройка DKIM + Postfix

Добавлено: 10 июн 2024, 21:08
Padonak

Код: Выделить всё

apt install opendkim opendkim-tools

Код: Выделить всё

vim /etc/opendkim.conf
Создаем конфигурацию:

Код: Выделить всё

Syslog                  yes
UMask                   002
OversignHeaders         From
Mode                    s
LogWhy                  yes
SyslogSuccess           yes
Canonicalization        relaxed/simple
KeyTable                /etc/opendkim/KeyTable
SigningTable            refile:/etc/opendkim/SigningTable
Socket                  inet:8891@localhost
ReportAddress           root
AutoRestart             Yes
AutoRestartRate         10/1h
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
PidFile                 /var/run/opendkim/opendkim.pid
SignatureAlgorithm      rsa-sha256
UserID                  opendkim:opendkim

Создаем файл доверенных узлов. В него пока войдут имя локального хоста (localhost) и его IP-адрес, которые будут приняты, как доверенные и подписаны:

Код: Выделить всё

vim /etc/opendkim/TrustedHosts

Код: Выделить всё

127.0.0.1
localhost
в данный файл мы заносим все IP-адреса и сети почтовых серверов, которые могут использовать наш сервер как почтовый релей. Таким образом, если в вашей системе используется подобная конфигурация, в файл TrustedHosts мы должны добавить адреса данных почтовых серверов.

Создаем остальные конфигурационные файлы (если их нет):


Код: Выделить всё

touch /etc/opendkim/{KeyTable,SigningTable}

Открываем файл /etc/default/opendkim:


Код: Выделить всё

vim /etc/default/opendkim

... его либо не должно быть, либо он должен быть пустой, либо проверяем строку с настройкой SOCKET и приводим ее к виду:

Код: Выделить всё

SOCKET=inet:8891@localhost

Код: Выделить всё

/etc/init.d/opendkim restart
Postfix

Открываем конфигурационный файл.

Код: Выделить всё

vim /etc/postfix/main.cf

Код: Выделить всё

###   DKIM
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
milter_default_action = accept
milter_protocol = 2

Код: Выделить всё

/etc/init.d/postfix restart

Создание сертификата и настройка домена



DKIM_DOMAIN=padonak.su


И так, создаем каталог для размещения ключей домена:

Код: Выделить всё

mkdir -p /etc/opendkim/keys/${DKIM_DOMAIN}

Код: Выделить всё

opendkim-genkey -D /etc/opendkim/keys/${DKIM_DOMAIN}/ --domain ${DKIM_DOMAIN} --selector mail
В папке /etc/opendkim/keys/padonak.su должно появиться два файла с расширениями .private и .txt. Первый — закрытый ключ (храним его у себя на сервере), второй — готовая txt-запись для DNS.

Создадим пользователя opendkim.

Код: Выделить всё

useradd opendkim -m -s /sbin/nologin

Код: Выделить всё

chown :opendkim /etc/opendkim/keys/${DKIM_DOMAIN}/*
Задаем права для группы владельца:

Код: Выделить всё

chmod g+rw /etc/opendkim/keys/${DKIM_DOMAIN}/*
Открываем созданный нами ранее TrustedHosts:

Код: Выделить всё

127.0.0.1
localhost
Создаем таблицу KeyTable

Код: Выделить всё

mail._domainkey.padonak.su padonak.su:mail:/etc/opendkim/keys/padonak.su/mail.private
Правим:

Код: Выделить всё

 vim SigningTable

Код: Выделить всё

*@padonak.su mail._domainkey.padonak.su


/etc/init.d/opendkim restart


Настройка DNS

Смотрим содержимое файла txt, который был сформирован при генерировании сертификата для домена:
cat /etc/opendkim/keys/${DKIM_DOMAIN}/mail.txt



mail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAO...sICXIYbHLbo"

Re: Postfix+LDAP+SASL+Postgrey+clamav

Добавлено: 26 авг 2024, 22:50
Padonak
Общие рекомендации по настройке ограничений

Установите параметр $soft_bounce = yes. Это приведет к тому, что ответы с кодами 5XX (тяжелая, постоянная ошибка) будут преобразовываться в 4XX (временная ошибка). Соответственно, почтовые серверы будут пытаться доставить сообщения на Ваш postfix позже. В это время Вы сможете проанализировать логи и убедиться, так ли, как надо, работают Ваши правила. Если все нормально — установите $soft_bounce = no.

Перед новым правилом вида reject_.* поставьте warn_if_reject, например:

Код: Выделить всё

smtpd_recipient_restrictions =
...
  warn_if_reject reject_rbl_client dnsbl.sorbs.net,
...
Это приведет к тому, что в логах будет видно срабатывание этого правила, но сами сообщения отбрасываться не будут. После отладки опцию warn_if_reject перед правилом надо убрать

Re: Postfix+LDAP+SASL+Postgrey+clamav

Добавлено: 26 авг 2024, 23:21
Padonak
Postfix Log Report

Код: Выделить всё

sudo apt install pflogsumm

Код: Выделить всё

pflogsumm -d today /var/log/mail.log
Generate a report for yesterday.

Код: Выделить всё

pflogsumm -d yesterday /var/log/mail.log
If you like to generate a report for this week.

Код: Выделить всё

sudo pflogsumm /var/log/mail.log
To emit “problem” reports (bounces, defers, warnings, rejects) before “normal” stats, use --problems-first flag.

Код: Выделить всё

sudo pflogsumm -d today /var/log/mail.log --problems-first
To append the email from address to each listing in the reject report, use --rej-add-from flag.

Код: Выделить всё

sudo pflogsumm -d today /var/log/mail.log --rej-add-from
To show the full reason in reject summaries, use --verbose-msg-detail flag.

Код: Выделить всё

sudo pflogsumm -d today /var/log/mail.log --rej-add-from --verbose-msg-detail
You can add a cron job to make pflogsumm to send a report to your email address every day.

Код: Выделить всё

sudo crontab -e
Add the following line, which will generate a report every day at 4:00 AM.

Код: Выделить всё

0 4 * * * /usr/sbin/pflogsumm -d yesterday /var/log/mail.log --problems-first --rej-add-from --verbose-msg-detail -q
To receive the report via email, add the following line above all cron jobs.

MAILTO="your-email-address"

You should pay attention to the message reject detail section, where you can see for what reason those emails are rejected and if there’s any false positives. Greylisting rejections are safe to ignore.

best postfix spam filter

If the MAILTO variable has already been set but you want Postfix log summary sent to a different email address, you can put the following line in your Cron job.

Код: Выделить всё

0 4 * * * /usr/sbin/pflogsumm -d yesterday /var/log/mail.log --problems-first --rej-add-from --verbose-msg-detail -q | mutt -s "Postfix log summary"  your-email-address
The output of pflogsumm command is redirected to mutt, a command line mail user agent, which will use the output as the email body and send it to the email address you specify at the end. Of course, you need to install mutt on your Linux server.

Код: Выделить всё

sudo apt install mutt

фильтрация писем по вложениям

Добавлено: 02 сен 2024, 17:30
Padonak

Код: Выделить всё

[b]mime_header_checks[/b]

# Files blocked by their suffix
/^\s*Content-(Disposition|Type).*name=\"(.*)\.(386|bat|bin|cpl|js|jar|chm|cmd|com|do|exe|hta|jse|lnk|msi|ole)\"$/
 REJECT Unwanted type of attachment $1: $2.$3

/^\s*Content-(Disposition|Type).*name=\"(.*)\.(pif|reg|rm|scr|shb|shm|js|cpl|dll|jar|shs|sys|vbe|vbs|vxd|xl|xsl)\"$/
 REJECT Unwanted type of attachment $1: $2.$3

/^\s*Content-(Disposition|Type).*name=\"(.*)\.(rar|7z|ace|arj|cab|cbr|zip|gz|gzip|pak|sh|tar-gz|tgz)\"$/
 REDIRECT admin@www.ru

/^Content-Type: application\/vnd.rar;/ REDIRECT admin@www.ru
/^Content-Type: application\/x-rar-compressed;/ REDIRECT admin@www.ru
/^Content-Type: application\/x-rar;/ REDIRECT admin@www.ru
/^Content-Type: application\/zip;/ REDIRECT admin@www.ru
/^Content-Type: application\/x-zip-compressed;/ REDIRECT admin@www.ru
/^Content-Type: multipart\/x-zip;/ REDIRECT admin@www.ru
/^Content-Type: application\/x-tar;/ REDIRECT admin@www.ru

Код: Выделить всё

vim main.cf

Код: Выделить всё

mime_header_checks = pcre:/etc/postfix/mime_header_checks
И это всё будет зарезацца или переадресация админу

Чтоб разрешить отсылать от локальных пользователей -сделать исключение:

Код: Выделить всё

vim master.cf
submission inet n - n - - smtpd
-o receive_override_options=no_header_body_checks

Фильтрация содержимого входящих сообщений

Добавлено: 18 сен 2024, 00:03
Padonak
Настройка Spamassassin
В конфигурационном файле добавляем следующие строки:

Код: Выделить всё

vim /etc/mail/spamassassin/local.cf

Код: Выделить всё

include /usr/share/spamassassin/99_filter.cf

Код: Выделить всё

vim /usr/share/spamassassin/99_filter.cf

Код: Выделить всё

body FILTER_CONTROL             /password|passw0rd|пароль|секретно/i
describe FILTER_CONTROL         Bad Phrase description
score FILTER_CONTROL            0.001
Перезапускаем spamassassin:

Код: Выделить всё

systemctl restart spamassassin

Отправляем письмо на ящик, который обслуживается нашим почтовым сервером. В теле письма пишем одно из ключевых фраз. Открываем заголовки письма — среди них мы должны увидеть что-то на подобие:
X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,FILTER_CONTROL
autolearn=no autolearn_force=no version=3.4.0
* как видим, в тексте есть наша метка FILTER_CONTROL.

Настройка Postfix


Код: Выделить всё

vim /etc/postfix/main.cf
Правим строку или добавляем ее:

Код: Выделить всё

header_checks = regexp:/etc/postfix/header_checks

Открываем файл header_checks:

Код: Выделить всё

vim /etc/postfix/header_checks
Добавляем:

Код: Выделить всё

/^X-Spam-Status:.*FILTER_CONTROL.*/ REDIRECT admin@всеяруси.ru
в данном примере мы ищем вхождения метки FILTER_CONTROL в заголовках письма, и если она есть, переадресуем копию письма на адрес admin@всеяруси.ru

Перезапускаем postfix:

Код: Выделить всё

systemctl restart postfix

Варианты написания текста

Самое трудное при фильтрации контента — учесть разные варианты написания букв. Необходимо, чтобы фильтр смог распознать буквы, которые можно написать как разными способами, так и в разных кодировках.