Evitar conexões SMTP do host local externo

3

Eu tenho um site que precisa enviar e-mails para confirmar pedidos e alertar usuários inscritos de certos eventos. Eu faço não precisa enviar e-mail através do servidor por qualquer outro motivo, então eu gostaria de evitar que ninguém fora do localhost até mesmo se conecte à porta 25 para SMTP. Eu tentei fazer isso assim:

sudo iptables -A INPUT -p tcp -s 0.0.0.0 --dport 25 -j DROP

mas ainda posso fazer o telnet para a porta 25 e digitar comandos SMTP de outro computador. O que estou fazendo de errado? Além disso, existe uma maneira melhor de conseguir o que eu quero? Para esclarecer: o que eu quero é uma máquina que pode enviar e-mails (via SMTP), mas apenas aqueles que se originam de scripts em execução na máquina. E qualquer configuração deve "viver" através de re-boots.

Estou usando o Postfix no Ubuntu (Hardy).

    
por Alex Reisner 15.02.2010 / 17:50

2 respostas

10

Acho que uma solução melhor, se você não quiser receber e-mails de fora, é dizer ao postfix exatamente isso, no arquivo master.cf que está sendo substituído:

smtp      inet  n       -       n       -       -       smtpd

que geralmente é a primeira linha de comentário, mas sua milhagem pode variar dependendo de o postfix que você tenha ser modificado pelo seu fornecedor, com:

127.0.0.1:smtp      inet  n       -       n       -       -       smtpd
    
por 15.02.2010 / 18:27
1

Acredito que você não deseja a cláusula -s 0.0.0.0 . Você está apenas negando o acesso do endereço 0.0.0.0.

Você provavelmente precisa de algo como:

sudo iptables -A INPUT -p tcp -s 127.0.0.0/8 --dport 25 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 25 -j DROP

Isso aceitará qualquer conexão de entrada do host local (ou seja, do intervalo de loopback - 127.0.0.1-127.255.255.255) e descartará todos os outros.

    
por 15.02.2010 / 17:56