Postfix: forçar usuários locais (PHP) a usar o SMTPD para destinatários externos

2

Meu servidor foi invadido e estava enviando muitos spams pela Internet. A primeira coisa que fiz foi desligar o postfix, fechar a porta de saída 25 e aproveitar o tempo para limpar o site, as filas de postfix e reinstalar o postfix completamente.

Eu habilitei muitas restrições no SMTP do Postfix, como forçar a autenticação do SASL e o TLS.

Mas eu estou apenas pensando, PHP mail() função não se importa com SMTPD, porque chama sendmail , cujos e-mails terminam na fila maildrop , e finalmente na fila incoming (e bypass todas as minhas proteções SMTPD).

Eu fiz um pequeno esboço de daemons e filas do Postfix para mim mesmo, a fim de entender melhor como isso funciona.

Eugostariadeseguiraconfiguração:

  • Evitequeosendmailenvieemailsparadestinatáriosexternos,maspermitaqueeleenvieemailsparausuárioslocaisepermitaqueelesigamapeamentosem/etc/aliases,mesmoquesejaummapeamento"para fora".

Meu objetivo é que, no final, os usuários não tenham outra opção além de contatar o SMTPD local diretamente, sendo assim forçados a fazer login graças à minha configuração smtpd_client_restrictions = permit_sasl_authenticated, reject .

    
por Fox 15.07.2013 / 00:42

1 resposta

1

Esta é apenas uma resposta parcial.

Aqui está como decidir qual usuário local tem permissão para usar o sendmail.

  • Crie um arquivo / etc / postfix / sendmailAllowedUsers , coloque "usuário OK" em uma linha para cada uso permitido.
  • Adicione authorized_submit_users = hash:/etc/postfix/sendmailAllowedUsers em main.cf
  • executar postfix reload
  • executar postmap /etc/postfix/sendmailAllowedUsers

Esta é apenas uma resposta parcial à minha pergunta, porque isso remove completamente o acesso ao comando sendmail e mail para usuários não listados, o que não é o que eu queria fazer.

Eu queria que todos pudessem usar o sendmail, mas apenas para destinatários locais.

    
por 15.07.2013 / 04:11