Назад | Перейти на главную страницу

Получение спама с моего собственного адреса электронной почты. постфикс

вот уже 2 недели я продолжаю получать спам-письма, отправленные с моего собственного адреса.

Вот пример:

Apr  2 10:15:13 hostname postfix/smtpd[28874]: warning: hostname 212.156.246.74.static.turktelekom.com.tr does not resolve to address 212.156.246.74
Apr  2 10:15:13 hostname postfix/smtpd[28874]: connect from unknown[212.156.246.74]
Apr  2 10:15:14 hostname postfix/smtpd[28874]: 750991E018: client=unknown[212.156.246.74]
Apr  2 10:15:16 hostname postfix/cleanup[28880]: 750991E018: message-id=<003d01d3ca72$01abe830$217c6793$@mydomain.tld>
Apr  2 10:15:17 hostname opendkim[14624]: 750991E018: [212.156.246.74] [212.156.246.74] not internal
Apr  2 10:15:17 hostname opendkim[14624]: 750991E018: not authenticated
Apr  2 10:15:17 hostname opendkim[14624]: 750991E018: no signature data
Apr  2 10:15:17 hostname postfix/qmgr[19733]: 750991E018: from=<me@mydomain.tld>, size=3207, nrcpt=1 (queue active)
Apr  2 10:15:17 hostname dovecot: lda(me@mydomain.tld): msgid=<003d01d3ca72$01abe830$217c6793$@mydomain.tld>: saved mail to INBOX
Apr  2 10:15:17 hostname postfix/pipe[28882]: 750991E018: to=<me@mydomain.tld>, relay=dovecot, delay=2.7, delays=2.7/0.01/0/0.05, dsn=2.0.0, status=sent (delivered via dovecot service)
Apr  2 10:15:17 hostname postfix/qmgr[19733]: 750991E018: removed
Apr  2 10:15:18 hostname postfix/smtpd[28874]: disconnect from unknown[212.156.246.74]

У меня есть эти ограничения:

smtpd_helo_required = yes
smtpd_client_restrictions = reject_rbl_client all.spam-rbl.fr
smtpd_sender_restrictions = permit_mynetworks permit_sasl_authenticated
smtpd_recipient_restrictions =
    reject_unknown_recipient_domain
    reject_non_fqdn_recipient
    reject_unlisted_sender
    permit_mynetworks
    reject_authenticated_sender_login_mismatch
    permit_sasl_authenticated
    reject_unauth_destination
    reject_unauth_pipelining
    reject_non_fqdn_sender
    reject_unknown_sender_domain
    reject_invalid_hostname

что мне добавить, чтобы заблокировать эти электронные письма?

Безопасно ли блокировать почту, приходящую с неизвестных имен хостов?

Еще одна вещь, которую я видел: согласно моему почтовому ящику, вышеуказанное письмо было получено сегодня в 12:40, хотя я получил его в 10:15. Можно ли также подделать полученное время в емейле?

Спасибо за ответы!

Как мы видим, в этом сообщении ваш адрес используется в качестве отправитель конверта:

postfix/qmgr[19733]: 750991E018: from=<me@example.com>, size=3207, nrcpt=1 (queue active)

Это означает, что у вас есть методы отклонения таких сообщений сразу после MAIL FROM (или RCPT TO, как я). Что касается заголовков вроде From: и Date:, они могут быть подделаны и содержать что угодно. Дополнительные спам-фильтры, такие как Spamassassin, могут выполнять тесты против них, но это уже другая история.

Ваш почтовый клиент показывает время и дату, предоставленные Date: заголовок, а не время фактического получения почты сервером. Вы можете посмотреть на Received заголовки, чтобы увидеть даты, добавленные серверами, через которые прошло сообщение, но почтовый клиент доверяет Date: заголовок.


МЕТОД 1: занесение домена в черный список из внешних источников

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

Если этот сервер является единственным законным источником электронной почты из вашего домена example.com, вы можете просто заблокировать все сообщения, использующиеся из домена, если только из собственных сетей или аутентифицированного пользователя, используя check_sender_access. Я лично все вложил smtpd_recipient_restrictions чтобы получить более подробную информацию в журналах, прежде чем отклонять соединение. Для main.cf:

smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    . . .
    check_sender_access hash:/etc/postfix/access/sender_access,
    . . .

В /etc/postfix/access/sender_access это таблица поиска (не забудьте postmap) из белых и черных списков MAIL FROM адреса, домены и т. д. Для занесения почты из этого домена в черный список, например

example.com   550 YOU ARE NOT ME.

МЕТОД 2. Внедрение SPF для вашего домена и тестирование SPF отправителя в Postfix

Если у вас есть другие источники почты, вы не можете использовать предыдущий метод. Кроме того, SPF - это то, что вы действительно должны реализовать, чтобы предотвратить использование вашего домена для рассылки спама. Сначала вы добавляете TXT запись для вашего домена со списком всех авторизованных отправителей. См. SPF Введение и Синтаксис записи.

После этого настройте ваш Postfix для проверки SPF (см. Как реализовать SPF в Postfix). Например.

  • Установите Perl с Mail::SPF и NetAddr::IP модули.
  • Установить postfix-policyd-spf-perl

  • main.cf:

    smtpd_recipient_restrictions =
        . . .
        reject_unauth_destination,
        check_policy_service unix:private/policy-spf,
        . . .
    
  • master.cf:

    policy-spf  unix  -       n       n       -       -       spawn
        user=nobody argv=/usr/bin/policyd-spf
    

В моей среде уже есть внешний порт (25) для входящей почты и другой порт (587) для аутентифицированной отправки.

В main.cf У меня есть:

smtpd_sender_restrictions = check_sender_access pcre:/etc/postfix/sender-access

(Я использую pcre поэтому я могу использовать регулярные выражения)

Тогда в моем /etc/postfix/sender-access У меня есть:

/@example.com$/ REJECT 554 You may not send as example.com without authenticating.

(Замена example.com с вашим собственным доменом.)

Но тогда мне нужно было переопределить мои 587 чтобы не фильтровать - поэтому я добавил -o smtpd_sender_restrictions= чтобы очистить его:

Итак, в master.cf Теперь у меня есть:

# Incoming
25                        inet  n       -       n       -       -       smtpd
    -o mynetworks_style=host
    -o mynetworks=10.0.0.0/8
    -o milter_macro_daemon_name=ORIGIN_EXTERNAL

# TLS + authenticated submissions
587                       inet  n       -       n       -       -       smtpd
  -o smtpd_sender_restrictions=
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,defer
  -o milter_macro_daemon_name=ORIGIN_AUTH

(Полагаю, я мог бы сделать обратное и очистить его в main.cf и установите его в master.cf.)

Чтобы проверить, используйте 587 для отправки электронной почты кому-нибудь в вашем домене, затем подключитесь к порту 25 и посмотрите, сможете ли вы подделать его вручную:

$ telnet smtp.example.com 25
Trying 1.2.3.4...
Connected to smtp.example.com.
Escape character is '^]'.
220 smtp.example.com ESMTP Postfix
helo example.com
250 example.com
mail from: me@example.com
250 2.1.0 Ok
rcpt to: me@example.com
554 5.7.1 <me@example.com>: Sender address rejected: 554 You may not send as example.com without authenticating.

Это довольно распространенная тактика спамеров. Вы можете ограничить это, потребовав, чтобы все отправители были permit_mynetworks и permit_sasl_authenticated это устанавливается черезsmtpd_sender_restrictions

Вот пример проекта iRedMail:

# HELO restriction
smtpd_helo_required = yes
smtpd_helo_restrictions =
permit_mynetworks
permit_sasl_authenticated
check_helo_access pcre:/etc/postfix/helo_access.pcre
reject_non_fqdn_helo_hostname
reject_unknown_helo_hostname

# Sender restrictions
smtpd_sender_restrictions =
reject_unknown_sender_domain
reject_non_fqdn_sender
reject_unlisted_sender
permit_mynetworks
permit_sasl_authenticated
check_sender_access pcre:/etc/postfix/sender_access.pcre

# Recipient restrictions
smtpd_recipient_restrictions =
reject_unknown_recipient_domain
reject_non_fqdn_recipient
reject_unlisted_recipient
check_policy_service inet:127.0.0.1:7777
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination

Вам следует удалить материал check_policy, если у вас не запущен сервер политики.