Usando iptables para bloquear o SMTP, exceto para um host?

3

Eu tenho um único servidor que funciona como um servidor de e-mail e web. Eu gostaria de usar iptables para permitir todas as conexões de entrada e saída, exceto para a porta de entrada 25. Eu só quero um host remoto para poder se conectar à porta 25 (a fim de retransmitir e-mail).

Essencialmente, eu gostaria de um servidor totalmente aberto sem transformá-lo em um retransmissor de spam. Alguma sugestão? Obrigado!

    
por jamieb 07.01.2010 / 02:55

2 respostas

9

Isso parece um pedido bastante simples. Tendo dito isso, ainda estou um pouco reticente em dizer a alguém para configurar seu servidor SMTP como um retransmissor totalmente aberto. Você Mesmo se você está limitando as conexões de entrada para a máquina você realmente deveria estar usando algum tipo de autenticação para controlar a retransmissão. Até ISPs de consumidores não permitem mais retransmissão não autenticada de dentro de suas redes.

Supondo que sua cadeia INPUT esteja configurada para uma política "ACCEPT" e atualmente permite que novos pacotes entrem no final da cadeia, faça o seguinte:

iptables -A INPUT -p tcp --dport 25 -s ! x.x.x.x -j DROP

Para completar, minha resposta inicial parecia:

iptables -A INPUT -p tcp --dport 25 -s x.x.x.x -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j DROP

O primeiro método tem a economia de usar uma única regra e é muito fácil de analisar visualmente, já que é tudo autocontido. O segundo é mais fácil de adicionar endereços adicionais a.

Substitua o endereço de origem por "x.x.x.x". Eu suspeito que você realmente quer mais do que apenas uma vez fonte, mas você pode descobrir isso. (Você provavelmente tem máquinas em sua LAN ou outros clientes com os quais deseja conversar - mas talvez não.)

(Espero que você tenha regras no topo da sua cadeia INPUT para permitir conexões estabelecidas para atalho o resto da cadeia e apenas ACEITAR. Você realmente não quer nada, mas o aperto de mão inicial, atingindo as regras acima.) / p>

Obviamente, salve essas regras em qualquer dispositivo que persistir no estado do iptables que sua distribuição usar.

Editar: obrigado, womble.

    
por 07.01.2010 / 04:00
3

Algo como isso é mais uma prova do futuro, caso você precise permitir mais endereços.

iptables -A INPUT -p tcp --dport 25 -s x.x.x.x -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j DROP

também é mais fácil fazer a transição de uma política DENY padrão, o que é sempre bom.

Além disso, a maioria dos servidores de e-mail permite definir a lista de endereços permitidos para retransmissão, o que pode adicionar outro nível de proteção. Você não disse qual servidor de e-mail está usando, mas todos devem ter esse recurso.

    
por 07.01.2010 / 03:45

Tags