Revise as regras do iptables para um servidor

1

Esta caixa está executando o Ubuntu 14.04b e foi quase desconfigurada.
Eu pensei que seria uma boa idéia trazer pelo menos um firewall, e o iptables era a minha escolha.

IMHO, será melhor carregar as regras de um arquivo gerado pelo iptables na inicialização da interface, através de /etc/network/interfaces , usando algo como pre-up iptables-restore < /etc/iptables.rules
(com iptables-save no post-down, caso eu tenha que mudar alguma coisa).

Há, no entanto, duas coisas que moem minhas engrenagens:

  • Primeiro, não tenho certeza se meu arquivo executará o trabalho corretamente (veja abaixo).
  • Em segundo lugar, da última vez que usei o iptables, o IPv6 não era nem uma coisa! Descobri que há um ip6tables para isso, mas não consigo determinar se posso usar o mesmo arquivo de regras para ambos ... Isso seria ótimo, mas, infelizmente, parece fácil demais para ser verdade: /

De agora em diante é o meu arquivo de regras, alguém seria gentil o suficiente para me apontar algo estranho, sem lógica ou desnecessário?

Como você pode ver, a caixa terá um servidor web Apache (com nome de domínio, então DNS precisa passar), um servidor MySQL (com acesso remoto), um servidor SFTP (parece que o FTP agora é uma coisa muito desatualizada), irá atuar como mailserver (postfix, provavelmente, e talvez uma lista de discussão com o majordomo, se ainda existir) e deve ser absolutamente acessível através do SSH (não posso perder o acesso SSH a este servidor: é um material dedicado em algum lugar a 400 km de distância sem console)

# Generated by iptables-save v1.4.21 on Wed Sep 28 15:08:21 2016
*raw
:PREROUTING ACCEPT [30261051:8737714396]
:OUTPUT ACCEPT [28933128:15186346449]
COMMIT
# Completed on Wed Sep 28 15:08:21 2016
# Generated by iptables-save v1.4.21 on Wed Sep 28 15:08:21 2016
*nat
:PREROUTING ACCEPT [8040256:1000464908]
:INPUT ACCEPT [8040256:1000464908]
:OUTPUT ACCEPT [357964:47801350]
:POSTROUTING ACCEPT [357964:47801350]
COMMIT
# Completed on Wed Sep 28 15:08:21 2016
# Generated by iptables-save v1.4.21 on Wed Sep 28 15:08:21 2016
*mangle
:PREROUTING ACCEPT [30261051:8737714396]
:INPUT ACCEPT [30261051:8737714396]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [28933128:15186346449]
:POSTROUTING ACCEPT [28933128:15186346449]
COMMIT
# Completed on Wed Sep 28 15:08:21 2016
# Generated by iptables-save v1.4.21 on Wed Sep 28 15:08:21 2016
*filter
:INPUT ACCEPT [10752:1386943]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [18529:5801236]
# Do not kill established connections
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

#INPUT rules
#SSH & SFTP
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#HTTP server
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
#HTTPS
-A INPUT -i eth0 -p tcp -m tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
#Echo
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#DNS
-A INPUT -i eth0 -p udp -m udp --sport 53 -j ACCEPT
#SMTP
-A INPUT -i eth0 -p tcp -m tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
#SQL in
-A INPUT -i eth0 -p tcp -m tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
#IMAP
-A INPUT -i eth0 -p tcp -m tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
#IMAP sur SSL
-A INPUT -i eth0 -p tcp -m tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT
#POP3
-A INPUT -i eth0 -p tcp -m tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
#POP3 sur SSL
-A INPUT -i eth0 -p tcp -m tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
#Limit HTTP flood
-A INPUT -p tcp -m tcp --dport 80 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
#Loopback
-A INPUT -i lo -j ACCEPT

#OUTPUTS
#SSH & SFTP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#HTTP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
#HTTPS
-A OUTPUT -o eth0 -p tcp -m tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
#echo
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
#DNS
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT
#SMTP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
#SQL out
-A OUTPUT -o eth0 -p tcp -m tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
#IMAP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 143 -m state --state ESTABLISHED -j ACCEPT
#IMAP sur SSL
-A OUTPUT -o eth0 -p tcp -m tcp --sport 993 -m state --state ESTABLISHED -j ACCEPT
#POP3
-A OUTPUT -o eth0 -p tcp -m tcp --sport 110 -m state --state ESTABLISHED -j ACCEPT
#POP3 sur SSL
-A OUTPUT -o eth0 -p tcp -m tcp --sport 995 -m state --state ESTABLISHED -j ACCEPT
#Doublons by legacy script.
#Remove?
-A OUTPUT -p tcp -m tcp --dport 53
-A OUTPUT -p udp -m udp --dport 53
-A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
#Loopback
-A OUTPUT -o lo -j ACCEPT

#End of config. Make it happen!
COMMIT
# Completed on Wed Sep 28 15:08:21 2016

Obrigado por qualquer ajuda!

    
por Pylou 29.09.2016 / 03:24

1 resposta

2

Como o seu arquivo iptables save não faz referência a nenhum IP, você também deve usá-lo para ip6tables . Sua melhor aposta é emitir um trabalho at para redefinir as regras do firewall em 2 minutos (ou qualquer hora que você achar adequado):

# echo "service iptables stop" | at now + 2 minutes

aplique as regras iptables do seu arquivo para IPv4 e IPv6:

# iptables-restore < iptables-save-file
# ip6tables-restore < iptables-save-file

se as coisas estiverem inacessíveis nesse ponto, espere 2 minutos para que o trabalho at desative o firewall e comece a configurar os conjuntos de regras manualmente. Se eles funcionarem, execute service iptables save e service ip6tables save e aproveite seu novo firewall.

Também devo observar que o arquivo existente nunca realmente nega, rejeita ou elimina tráfego. A política padrão em todas as redes é ACCEPT e não há regras finais com DROP ou REJECT segmentadas. temos o que parece ser uma configuração de firewall bastante ineficaz.

    
por 29.09.2016 / 03:30

Tags