Como posso permitir SSH e SMTP usando apenas IPTables?

3

Eu tenho um pi de framboesa para enviar e-mails periódicos. Como está conectado à internet 24 horas por dia, 7 dias por semana, preciso de um IPTables configurado corretamente.

Eu quero permitir o SSH de entrada e permitir que e-mails sejam enviados na porta 587 via SMTP. Eu criei este script do IPTables, está correto? Se não, você pode me dizer por quê? Obrigado.

sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP

sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

sudo iptables -A OUTPUT -p tcp --dport 587 -j ACCEPT
sudo iptables -A INPUT -p tcp --sport 587 -j ACCEPT
    
por BubbleMonster 22.05.2015 / 16:00

2 respostas

3

Uma regra iptables como essa funciona bem

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1:156]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT  -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT  -p tcp -m state --state NEW -m tcp --dport 587 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited 
COMMIT

A primeira regra DROP por padrão toda a conexão de entrada o segundo DROP por padrão todos os encaminhamento o terceiro ACEITO a saída, por que aceitar? Não é muito inseguro para fazer abrir as conexões de saída, feche ele pode tornar a configuração do firewall um pouco difícil.

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 

Aceite a conexão com estado ESTADO RELACIONADO e estabelecido

o resto é fácil

    -A INPUT  -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
    -A INPUT  -p tcp -m state --state NEW -m tcp --dport 587 -j ACCEPT 
    -A INPUT -j REJECT --reject-with icmp-host-prohibited 
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited 
    COMMIT

aceita 22 tcp, aceita 587 tcp e proíbe todas as outras conexões, você pode salvar no arquivo e depois fazer

iptables-restore < firewall.file

E verifique com nmap -sS seu host

    
por 22.05.2015 / 20:24
2

Se você não se sentir à vontade para trabalhar com os comandos iptables , poderá usar UFW . UFW significa Uncomplicated FireWall e é uma ferramenta muito mais fácil de usar do que o iptables.

Instale ufw no seu Raspbery Pi com:

sudo apt-get install ufw

Depois de instalar o ufw, você pode configurar os padrões com:

sudo ufw default deny incoming && sudo ufw default deny outgoing

Isso negará tudo que estiver tentando se conectar e negará todos os pedidos de saída, o que é bom se você quiser ser um pouco mais restritivo.

Para permitir que ssh em faça:

sudo ufw allow in 22

Para permitir que 587 sair faça:

sudo ufw allow out 587

Para mais informações, consulte man ufw , que tem muito mais exemplos e explica as coisas muito bem.

    
por 22.05.2015 / 16:46