Spam postfix (hack)

4

Meu mailq está sendo preenchido com relatórios sobre o email enviado (por exemplo, [email protected]) por usuário local não existente (por exemplo, [email protected])

mailq exemplo:

8F979561A3     1440 Thu Aug 25 13:54:32  [email protected]
(delivery temporarily suspended: connect to 127.0.0.1[127.0.0.1]:10024: Connection refused)
                                         [email protected]

Como posso pará-lo?

meu main.cf é:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = /usr/share/doc/postfix

# TLS parameters
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = faster2.jbmd.com
alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
myorigin = /etc/mailname
mydestination =  localhost, localhost.localdomain
relayhost = 
mynetworks = 127.0.0.0/8 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
html_directory = /usr/share/doc/postfix/html
virtual_alias_domains = 
virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, proxy:mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /var/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
inet_protocols = all
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf
smtpd_tls_security_level = may
transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
relay_domains = mysql:/etc/postfix/mysql-virtual_relaydomains.cf
relay_recipient_maps = mysql:/etc/postfix/mysql-virtual_relayrecipientmaps.cf
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unlisted_sender,  reject_unknown_sender_domain,check_sender_access regexp:/etc/postfix/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf, check_sender_access regexp:/etc/postfix/tag_as_foreign.re 
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_client_hostname, check_client_access mysql:/etc/postfix/mysql-virtual_client.cf reject_rbl_client cbl.abuseat.org,  reject_rbl_client b.barracudacentral.org
smtpd_client_message_rate_limit = 100
maildrop_destination_concurrency_limit = 1
maildrop_destination_recipient_limit = 1
virtual_transport = dovecot
header_checks = regexp:/etc/postfix/header_checks
mime_header_checks = regexp:/etc/postfix/mime_header_checks
nested_header_checks = regexp:/etc/postfix/nested_header_checks
body_checks = regexp:/etc/postfix/body_checks
owner_request_special = no
smtp_tls_security_level = may
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2,!SSLv3
smtp_tls_protocols = !SSLv2,!SSLv3
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
message_size_limit = 0
default_process_limit = 150
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
    
por P. Masher 25.08.2016 / 14:10

1 resposta

3

No melhor dos cenários, um ou mais dos seus usuários é comprometido, e. os maus atores adivinharam / usaram a senha.

Como você permite enviar e-mails de usuários autenticados, eles provavelmente estão falsificando o campo De para evitar a detecção.

Editar o corpo inteiro de algumas mensagens relevantes lhe dará uma dica de qual usuário (s) você comprometeu.

Como ponto de partida, eu aconselho a restringir o campo De para usuários conhecidos, dê uma olhada neste tópico. Postfix: impede que os usuários alterem o e-mail real endereço de e-mail

Como cenário intermediário, você pode ter uma exploração de alguma página / cgi em um servidor web se o servidor postfix estiver executando o Apache .

Como o pior cenário, você pode ter uma caixa comprometida.

Dê uma olhada nos logs de acesso do postfix e do Apache (se você tiver o Apache), isso lhe dará uma ideia mais razoável do que está acontecendo.

EDIT: Após @ P.Masher postou um exemplo da mensagem adiada:

A linha relevante para prestar atenção é:

X-PHP-Originating-Script: 5015:alias.php(1944) : eval()'d code

O que diz que você tem um nome de script alias.php , possivelmente plantado em um diretório menos seguro acessível ao seu servidor web (Apache?), que é o culpado pelo envio dos emails.

O script terá que ser excluído, e o diretório e qualquer outra forma possível (wordpress antigo, injeção SQL, interface de webmail antiga) que os spammers usaram para plantar esse script terá que ser fechado.

Uma solução temporária pode estar parando completamente o servidor da Web.

Eu também coletaria logs do servidor web do acesso a alias.php e os enviaria para o CERT local. (se você tem um com o qual costuma trabalhar)

Quanto a mais considerações de segurança, o fato de eles estarem executando código através de um eval () significa que eles basicamente têm acesso a qualquer arquivo que o usuário que está executando o vhost / Apache tenha acesso. ou seja, é o mesmo que ter uma conta de shell remota no servidor.

Se o servidor for antigo / não tiver atualizações, ele poderá ter privilégios de alavancagem para o nível de raiz no pior cenário; no melhor cenário, eles só têm acesso equivalente ao usuário não privilegiado do servidor da Web, mas podem já ter tentado aproveitar as senhas dos arquivos HTML / PHP e podem ter coletado as senhas com hash dos usuários do postfix.

Eu aconselharia:

1) Reinstale o servidor se for muito antigo ou não tiver atualizações de segurança; 2) Alterar as senhas do banco de dados / raiz; 3) Aconselhar os usuários do postfix a alterar suas senhas apenas no caso.

    
por 25.08.2016 / 14:45