Controle de taxa de mensagens SMTP no Ubuntu 8.04, preferencialmente com postfix

8

Talvez eu esteja perseguindo um bug, mas estou tentando configurar uma proxy smtp. Eu tenho um servidor postfix que recebe todo o email para uma coleção de servidores / clientes. Ele usa um smarthost (relayhost = ...) para encaminhar seu email para o nosso MTA corporativo. Gostaria de limitar o número de mensagens que um servidor individual pode retransmitir para evitar sobrecarregar o MTA corporativo. O postfix tem um programa chamado "anvil" que é capaz de rastrear estatísticas sobre o e-mail a ser usado para tais coisas, mas não parece ser executado. Eu corri "inotifywait -m / usr / lib / postfix / anvil", enquanto eu comecei postfix e enviou um número de mensagens através de um servidor remoto. inotifywait indicou que a bigorna nunca foi executada. Alguém conseguiu controles de taxa de postfix / bigorna para trabalhar?

main.cf

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
myhostname = site-server-q9
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost
relayhost = Out outgoing mail relay
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = 10.X.X.X
smtpd_client_message_rate_limit = 1
anvil_rate_time_unit = 1h

extrato do master.cf

anvil     unix  -       -       -       -       1       anvil
smtp      inet  n       -       -       -       -       smtpd
    
por TimDaMan 26.06.2009 / 20:10

4 respostas

7

No final, usei policyd que faz exatamente esse tipo de coisa. Configurei-o para limitar um único endereço IP a não mais que 10000 mensagens por hora e 1 GB. Abaixo está uma cópia do documento que eu escrevi para mim, caso alguém ache útil.

Configurando o postfix e o policyd

Após a instalação dos pacotes, faça as seguintes alterações em suas configurações. Em /etc/postfix/main.cf adicione a seguinte linha

smtpd_client_restrictions = check_policy_service inet:127.0.0.1:10031

No /etc/postfix-policyd.conf

  • altere WHITELISTING=1 para WHITELISTING=0
  • altere GREYLISTING=1 para GREYLISTING=0
  • altere SENDERTHROTTLE=0 para SENDERTHROTTLE=1
  • altere QUOTA_EXCEEDED_TEMP_REJECT=1 para QUOTA_EXCEEDED_TEMP_REJECT=0
  • altere SENDER_QUOTA_REJECTION="Quota Exceeded." para SENDER_QUOTA_REJECTION="Quota Exceeded, 10,000 messages/hour max!"
  • altere SENDER_SIZE_REJECTION="Message size too big." para SENDER_SIZE_REJECTION="Message size too big. 10Mb per message or 1 Gb/hour max!"
  • altere SENDERMSGLIMIT=512 para SENDERMSGLIMIT=10000
  • altere SENDERRCPTLIMIT=3600 para SENDERRCPTLIMIT=10000
  • altere SENDERQUOTALIMIT=250000000 para SENDERQUOTALIMIT=1000000000
  • altere SENDERMSGSIZE=10240000 para SENDERMSGSIZE=50000000
  • altere SENDER_INACTIVE_EXPIRE=31d para SENDER_INACTIVE_EXPIRE=1h
por 21.07.2009 / 22:29
2

Possivelmente interessante para sua implementação:

default_destination_concurrency_limit (default: 20)

    The default maximal number of parallel deliveries to the same destination. This is the default limit for delivery via the lmtp(8), pipe(8), smtp(8) and virtual(8) delivery agents. With per-destination recipient limit > 1, a destination is a domain, otherwise it is a recipient.

    Use transport_destination_concurrency_limit to specify a transport-specific override, where transport is the master.cf name of the message delivery transport.
    
por 04.08.2009 / 08:02
1

Anvil foi realmente destinado a limitar as taxas de mensagens recebidas, não limitando a saída. Pense nisso como um filtro DoS bruto.

Você pode querer ver as configurações que pertencem à parte qmgr do postfix. Especificamente, você pode definir seus limites de simultaneidade como algo muito baixo e seu wait-around-in-the-queue times muito alto. Você deve definir a taxa de entrega para algo que tenha um grande (r) atraso , e também deseja diminuir o número de processos de entrega em master.cf.

Você analisou o uso do qshape para determinar qual será a taxa aceitável para o seu MTA interno?

    
por 26.06.2009 / 20:23
0

Anvil faz logging para postfix, eu adicionei abaixo para main.cf e parece funcionar para mim

#### Prevent server sending excess mail from clients add to /etc/postfix/main.cf
####
anvil_rate_time_unit = 60s
anvil_status_update_time = 120s
smtpd_error_sleep_time = 2s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20
smtpd_client_message_rate_limit = 
#### End Prevent server sending excess mail 
    
por 14.04.2015 / 12:17