Este é um bom ponto de partida para o iptables no Linux?

3

Sou novo no iptables, e tenho tentado montar um firewall cuja finalidade é proteger um servidor web. As regras abaixo são as que eu juntei até agora, e eu gostaria de saber se as regras fazem sentido - e se eu deixei de fora algo essencial?

Além da porta 80, eu também preciso ter a porta 3306 (mysql) e 22 (ssh) abertas para conexões externas.

Qualquer comentário é muito apreciado!

#!/bin/sh

# Clear all existing rules.
iptables -F

# ACCEPT connections for loopback network connection, 127.0.0.1.
iptables -A INPUT -i lo -j ACCEPT

# ALLOW established traffic
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# DROP packets that are NEW but does not have the SYN but set.
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

# DROP fragmented packets, as there is no way to tell the source and destination ports of such a packet.
iptables -A INPUT -f -j DROP

# DROP packets with all tcp flags set (XMAS packets).
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

# DROP packets with no tcp flags set (NULL packets).
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

# ALLOW ssh traffic (and prevent against DoS attacks)
iptables -A INPUT -p tcp --dport ssh -m limit --limit 1/s  -j ACCEPT

# ALLOW http traffic (and prevent against DoS attacks)
iptables -A INPUT -p tcp --dport http -m limit --limit 5/s -j ACCEPT

# ALLOW mysql traffic (and prevent against DoS attacks)
iptables -A INPUT -p tcp --dport mysql -m limit --limit 25/s -j ACCEPT

# DROP any other traffic.
iptables -A INPUT -j DROP
    
por sbrattla 01.06.2010 / 11:26

6 respostas

2

Experimente o shorewall, que fornece um firewall razoável pronto para uso. Ativar o acesso da rede para os serviços que você deseja. Existem exemplos de conjuntos de regras para uma, duas e três interfaces. A documentação é boa e é ativamente mantida.

Espero que você queira limitar quais endereços podem acessar o MySQL, o que é feito facilmente. Você também pode proteger o SSH com a porta batendo onde a porta está fechada, a menos que você tenha sondado a outra porta recentemente.

    
por 01.06.2010 / 16:52
1
  1. Você realmente deseja permitir o ICMP.
  2. 5 / s provavelmente não é suficiente para HTTP
  3. Eu não vejo um ponto nas regras para os pacotes XMAS / NULL
  4. Também não vejo um motivo para a regra especial de NOVOS pacotes

ETA:  5. Ter esse tipo de limite de taxas torna os ataques DoS realmente simples. Eu só preciso enviar 1 pacote SYN por segundo para o seu servidor para negar o acesso ssh.

    
por 01.06.2010 / 11:39
0

Eu pensaria em usar algo como o NARC para fazer a configuração das regras do iptables:

link

Existem alguns padrões sensatos já em vigor com este pacote em que você deve confiar.

    
por 01.06.2010 / 13:42
0

Eu uso o Webmin, ele tem um bom conjunto inicial de regras.

link

    
por 01.06.2010 / 15:04
0

O filtro para comunicação de saída do servidor para a Internet também é importante. Especialmente o SMTP é recomendado para permitir apenas um servidor.

Eu gerencio os firewalls do Mikrotik, e estou acostumado a fazer, por exemplo:

  • Descartar os pacotes de entrada da Internet com o endereço de destino do intervalo particular
  • Solte os escaneamentos de portas (acima de 5 cheques por segundo)
  • SSH para outra porta (obscuridade, eu sei, mas funciona! :-)) e limito IPs de origem
  • Transmitir transmissões para o roteador
  • Soltar TCP RST

E mais alguns. Eu recomendaria ler isto: link A sintaxe do Mikrotik é direta e contém boas indicações para iniciantes.

    
por 01.06.2010 / 15:44
0

Em relação ao pacote XMAS.

Diferentes scanners enviam diferentes sabores de XMAS. Sua regra ALL ALL, embora deva corresponder à definição canônica da frase pacote XMAS, na verdade não os captura como o NMAP os envia.

link

nmap -sX, que supostamente é a varredura de XMAS, não será capturado por ALL ALL.

ALL ALL equivale a FIN, SYN, RST, PSH, ACK, FIN de URG, SYN, RST, PSH, ACK, URG O que o NMAP envia equivale a FIN, SYN, RST, PSH, ACK, URG FIN, PSH, URG

    
por 01.02.2013 / 21:29