NEW CARDING CHAT IN TELEGRAM

Вопросы по конфигурации PMTA 5

Student

Member
Messages
26
Reaction score
10
Points
3
Всем привет.Пробую настроить PMTA чтобы не слать письма на домены из блэклиста. Сделал rollup который подключаю в основном конфиге badmailservice.rollup
mx-rollup-list.txt
Code:
<mx-rollup-list>

# Existing Rollups
mx "*.protection.outlook.com" office365.rollup rollup-by-ip
mx "*.l.google.com" google.rollup rollup-by-ip


#################### BAD MAILSERVICE ####################

mx "*.spamexperts.com" badmailservice.rollup rollup-by-ip
mx "*.hornetsecurity.com" badmailservice.rollup rollup-by-ip
mx "*.sophos.com" badmailservice.rollup rollup-by-ip
mx "*.jellyfish.systems" badmailservice.rollup rollup-by-ip
mx "*.spamtitan.com" badmailservice.rollup rollup-by-ip
mx "*.email-protect.gosecure.net" badmailservice.rollup rollup-by-ip
mx "*.emailsecurity.app" badmailservice.rollup rollup-by-ip
mx "*.mailspamprotection.com" badmailservice.rollup rollup-by-ip
mx "*.us.email.fireeyecloud.com" badmailservice.rollup rollup-by-ip
mx "*.cloud.vadesecure.com" badmailservice.rollup rollup-by-ip
mx "*.messagelabs.com" badmailservice.rollup rollup-by-ip
mx "*.mimecast.com" badmailservice.rollup rollup-by-ip

#################### OTHER MAILSERVICE ####################

mx "*.ppe-hosted.com" othermailservice.rollup rollup-by-ip
mx "*.ionos.com" othermailservice.rollup rollup-by-ip
mx "*.qq.com" othermailservice.rollup rollup-by-ip
mx "*.mailchannels.net" othermailservice.rollup rollup-by-ip
mx "*.mxrecord.io" othermailservice.rollup rollup-by-ip
mx "*.1and1.com" othermailservice.rollup rollup-by-ip
mx "*.mailgun.org" othermailservice.rollup rollup-by-ip
mx "*.cloudflare.net" othermailservice.rollup rollup-by-ip
mx "*.hostinger.com" othermailservice.rollup rollup-by-ip
mx "*.mxhichina.com" othermailservice.rollup rollup-by-ip
mx "*.above.com" othermailservice.rollup rollup-by-ip

</mx-rollup-list>

Основной конфиг pmta
Code:
#####################################################################################################################################
# DEFAULT SETTINGS
#####################################################################################################################################

total-max-smtp-in 1000
total-max-smtp-out 5000

<source 127.0.0.1>
    always-allow-relaying yes   # allow feeding from 127.0.0.1
    process-x-virtual-mta yes   # allow selection of a virtual MTA
    max-message-size 0
    smtp-service yes            # allow SMTP service
    remove-received-headers true
    add-received-header false
    hide-message-source true
    remove-header X-Priority
</source>




#####################################################################################################################################
# MAIN SETTINGS / VIRTUAL-MTA-POOL
#####################################################################################################################################

smtp-listener 0/0:2525        # Port PMTA
http-mgmt-port 10444
http-access 127.0.0.1 monitor
http-access ::1 monitor
http-access 127.0.0.1 admin
http-redirect-to-https false
run-as-root no

#####################################################################################################################################
# Section 3: BASE SETTINGS FOR LOCALHOST
#####################################################################################################################################

<source 0/0>
    log-connections no
    log-commands    no          # WARNING: verbose!
    log-data        no          # WARNING: even more verbose!
    allow-unencrypted-plain-auth yes
    default-virtual-mta by-smtp-source-ip
    process-x-virtual-mta yes
    smtp-service yes
    always-allow-api-submission yes
    pattern-list pmta-pattern
</source>

include /etc/pmta/virtualhost.txt

#####################################################################################################################################
# DEFAULT SETTINGS END
#####################################################################################################################################
# Section : BOUNCE SETTINGS
#####################################################################################################################################
<smtp-pattern-list my-errors>
    include /etc/pmta/my_error_pattern.txt
</smtp-pattern-list>


<smtp-pattern-list defaultPatterns>
    include /etc/pmta/defaultPatterns.txt
</smtp-pattern-list>


########################## BLOCK BAD MAILSERVICE ##########################
include /etc/pmta/mx-rollup-list.txt


<domain badmailservice.rollup>
  max-msg-rate 0/m    # запретить отправку
  type discard
  discard-as-bounce true
  bounce-after 5s
</domain>
########################## BLOCK BAD MAILSERVICE END ##########################

<domain *>
  use-starttls no
  max-smtp-out 50                                                  # default be nice on concurrent connections
  max-msg-per-connection 5                                        # max 500 mails in one session
  max-rcpt-per-message 1
  max-errors-per-connection 10                                    # avoid 'too long without data command' error
  reuse-ssl-session no

  max-msg-rate 50/m

  assume-delivery-upon-data-termination-timeout yes               # avoid duplicate deliveries
  smtp-421-means-mx-unavailable yes
  smtp-553-means-invalid-mailbox yes
  connect-timeout 5m
  smtp-greeting-timeout 5m
  data-send-timeout 5m
  retry-after 15m                                                 # typical greylisting period
 

  # BOUNCE LIST
  smtp-pattern-list my-errors
  smtp-pattern-list defaultPatterns


  backoff-max-msg-rate 1/h                                        # send only regular tries during backoff (default unlimited)
  backoff-retry-after 15m,1h                                       # retry at least every 20m (default 1h)
  backoff-to-normal-after-delivery yes                            # revert to normal asap (default no)
  backoff-to-normal-after 1h                                      # always revert to normal after 1h (default never)
 
  bounce-upon-no-mx yes                                           # proper mail domains should have mx
  bounce-upon-5xx-greeting true
  bounce-after 2h           

  dkim-sign yes
  deliver-local-dsn no
</domain>



<domain office365.rollup>
  use-starttls no                                                # Office365 рекомендует STARTTLS
  max-smtp-out 10                                                  # Разрешить больше одновременных соединений
  max-msg-per-connection 5                                        # Снизить для улучшения доставки
  max-rcpt-per-message 1                                          # Один получатель на сообщение, что оптимально для Office365
  max-errors-per-connection 10                                    # Оставить как есть, баланс между ошибками и производительностью
  reuse-ssl-session no                                            # Лучше отключить, чтобы избегать проблем с SSL
 
  max-msg-rate 10/m                                                # Увеличить до 5 сообщений в минуту
 
  # BOUNCE LIST
  smtp-pattern-list my-errors
  smtp-pattern-list defaultPatterns


  bounce-upon-no-mx yes                                           # Office365 требует MX-записи
  assume-delivery-upon-data-termination-timeout yes               # Избегать повторной доставки при таймауте
  smtp-421-means-mx-unavailable yes                               # Обработка ошибок 421 как временных проблем с MX
  smtp-553-means-invalid-mailbox yes                              # Bounce для недействительных почтовых ящиков
  bounce-upon-5xx-greeting true                                   # Немедленный bounce для ошибок 5xx на приветствии
  connect-timeout 5m                                              # Office365 быстро разрывает соединения
  smtp-greeting-timeout 5m                                        # Office365 требует быстрой реакции
  data-send-timeout 5m                                            # Стандартное время для отправки данных
  retry-after 15m                                                 # Рекомендуется уменьшить время до повторной попытки
 
  bounce-after 2h                                                 # Уменьшить до 2 дней, чтобы ускорить обработку
  backoff-max-msg-rate 1/h                                        # Замедлить доставку в режиме backoff
  backoff-retry-after 30m,1h                                       # Частое повторение для ускоренной доставки
  backoff-to-normal-after-delivery yes                            # Возврат к normal после успешной доставки
  backoff-to-normal-after 30m                                      # Быстрый возврат к normal
 
  dkim-sign yes                                                   # Подпись DKIM обязательна
  deliver-local-dsn no                                            # Не отправлять уведомления о локальной доставке
</domain>


<domain google.rollup>
  use-starttls no
  max-smtp-out 10                                                  # default be nice on concurrent connections
  max-msg-per-connection 5                                        # max 500 mails in one session
  max-rcpt-per-message 1
  max-errors-per-connection 10                                    # avoid 'too long without data command' error
  reuse-ssl-session no

  max-msg-rate 10/m

  bounce-upon-no-mx yes                                           # proper mail domains should have mx
  assume-delivery-upon-data-termination-timeout yes               # avoid duplicate deliveries
  smtp-421-means-mx-unavailable yes
  smtp-553-means-invalid-mailbox yes
  bounce-upon-5xx-greeting true
  connect-timeout 5m
  smtp-greeting-timeout 5m
  data-send-timeout 5m
  retry-after 15m                                                 # typical greylisting period
 
  bounce-after 2h                                                # Уменьшить до 2 дней, чтобы ускорить обработку
  backoff-max-msg-rate 1/h                                        # Замедлить доставку в режиме backoff
  backoff-retry-after 15m,1h                                       # Частое повторение для ускоренной доставки
  backoff-to-normal-after-delivery yes                            # Возврат к normal после успешной доставки
  backoff-to-normal-after 30m                                      # Быстрый возврат к normal
 
  dkim-sign yes                                                   # Подпись DKIM обязательна
  deliver-local-dsn no                                            # Не отправлять уведомления о локальной доставке
</domain>




<domain othermailservice.rollup>
  use-starttls no
  max-smtp-out 30
  max-msg-per-connection 5
  max-rcpt-per-message 1
  max-errors-per-connection 10
  reuse-ssl-session no

  max-msg-rate 10/m

  # BOUNCE LIST
  smtp-pattern-list my-errors
  smtp-pattern-list defaultPatterns

  bounce-upon-no-mx yes
  assume-delivery-upon-data-termination-timeout yes
  smtp-421-means-mx-unavailable yes
  smtp-553-means-invalid-mailbox yes
  bounce-upon-5xx-greeting true
  connect-timeout 5m
  smtp-greeting-timeout 5m
  data-send-timeout 5m
  retry-after 15m
 
  bounce-after 2h                                                 # Уменьшить до 2 дней, чтобы ускорить обработку
  backoff-max-msg-rate 1/h                                        # Замедлить доставку в режиме backoff
  backoff-retry-after 15m,1h                                       # Частое повторение для ускоренной доставки
  backoff-to-normal-after-delivery yes                            # Возврат к normal после успешной доставки
  backoff-to-normal-after 30m                                      # Быстрый возврат к normal
 
  dkim-sign yes                                                   # Подпись DKIM обязательна
  deliver-local-dsn no                                            # Не отправлять уведомления о локальной доставке
</domain>


#####################################################################################################################################
# Section 6: LOG AND SPOOL SETTINGS
#####################################################################################################################################

log-file /var/log/pmta/log        # logrotate is used for rotation

# All logs
 <acct-file /var/log/pmta/acct.csv>
     move-interval 5m # Перемещает файл каждые 5 минут
     max-size 50M
     delete-after 30d
 </acct-file>
 
 # HardBounce logs
<acct-file /var/log/pmta/hardbounces.csv>
    records b # Указывает запись только возвратов (bounces)
    record-fields b * # Записывает все доступные поля для bounce-записей
    move-interval 5m # Перемещает файл каждые 5 минут
    max-size 50M # Ограничивает размер файла до 25 МБ
    delete-after 30d # Удаляет файлы старше 30 дней
</acct-file>

# SoftBounce logs
<acct-file /var/log/pmta/softbounces.csv>
    records t
    record-fields t *
    move-interval 5m
    max-size 50M # MB
    delete-after 30d
</acct-file>

# Delivery log
<acct-file /var/log/pmta/success.csv>
    records d
    record-fields d *
    move-interval 5m
    max-size 50M # MB
    delete-after 30d
</acct-file>

#####################################################################################################################################
# BEGIN: OTHER OPTIONS
#####################################################################################################################################

sync-msg-create false
sync-msg-update false
run-as-root no

#####################################################################################################################################
# SPOOL DIRECTORIES
#####################################################################################################################################

<spool /var/spool/pmta>
    deliver-only no
    delete-file-holders yes
</spool>

#####################################################################################################################################
# END
#####################################################################################################################################

Я так понимаю наличие попыток отправки на hkatenhusen@hako.com в очереди q158.badmailservice.rollup/**********.com-vmta с статусом 4.4.1 (no answer from host)
Говорит о том что все таки пытался отправить на этот домен, хотя он в badmailservice.rollup
Хотя по задумке все хосты с MX из блэк листа на них ненужно пробовать отправить а сбрасывать всю очередь в идеале в bounce.Было бы крутов отдельный баунс, типо black_domain_bounce.csv
Так же с удовольствием выслушаю комменты по конфигу, цель конфига-провалидировать большую базу на просто валидные мыла.
Code:
➜  ~ dig MX hako.com

; <<>> DiG 9.18.28-0ubuntu0.22.04.1-Ubuntu <<>> MX hako.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59216
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;hako.com.                      IN      MX

;; ANSWER SECTION:
hako.com.               300     IN      MX      40 mx04.hornetsecurity.com.
hako.com.               300     IN      MX      10 mx01.hornetsecurity.com.
hako.com.               300     IN      MX      30 mx03.hornetsecurity.com.
hako.com.               300     IN      MX      20 mx02.hornetsecurity.com.

;; Query time: 374 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Fri Dec 13 00:29:24 +07 2024
;; MSG SIZE  rcvd: 136
 
Top