Como posso limitar as conexões de saída para um programa?

3

Gostaria de evitar que mensagens de spam enviadas do meu computador por programas / scripts enviados por qualquer pessoa.

O único caso de uso legítimo é conectar-se ao postfix por meio da porta de envio e, após a autenticação, enviar o email. O Postfix irá se conectar a outros servidores de e-mail e enviá-lo.

Estou pensando em usar o iptables para permitir conexões de saída para a porta *: SMTP se o programa que está tentando abrir esta conexão for postfix e abandonar qualquer outra tentativa de conexão.

Eu tenho duas perguntas:

1) Como eu posso identificar no iptables, que é o programa postfix que tenta abrir a conexão?

2) Como posso evitar que um script invoque o sendmail e simplesmente forneça a mensagem sem autenticação? Provavelmente isso não é tão fácil, pois talvez existam programas, como o cron, que tentam enviar e-mail para root @ localhost, usando o sendmail. Isso ainda deve funcionar.

O sistema roda Debian estável

    
por G Bagoy 06.12.2016 / 18:02

1 resposta

2

(1) A maneira mais fácil de identificar o Postfix é provavelmente a correspondência iptables --owner --uid-owner postfix , para especificar o usuário do Postfix. Você também pode executar o Postfix em seu próprio namespace de rede ou cgroup, semelhante às soluções em Bloquear o acesso à rede de um processo? (e permitir apenas que o namespace ou o cgroup originem o tráfego SMTP).

(2) Um script executando sendmail possui autenticação: está sendo executado como usuário em seu sistema. Na verdade, existem várias coisas que fazem uso dessa interface. O Cron é um, mas também um monte de scripts aleatórios - praticamente tudo no sistema que envia e-mails o utiliza. Mesmo os MUAs instalados (mutt, etc.) geralmente usarão como padrão.

Você pode presumivelmente bloqueá-lo para apenas alguns usuários, usando permissões do sistema de arquivos (torná-lo apenas executável para um determinado grupo ou usuários específicos usando ACLs) ou provavelmente configuração Postfix (embora eu pessoalmente use o Exim, então não sei como) .

    
por 22.12.2016 / 16:59