O meu firewall linux é seguro?

3

Eu sou novato em firewalls Linux e estou tentando configurar meu firewall de sistemas para um computador voltado para o público. Aqui estão meus requisitos:

  1. As portas 80 e 22 devem estar abertas para solicitações HTTP e logins SSH
  2. Como meu servidor de aplicativos será executado em um usuário não raiz na porta 8080. Desejo redirecionar todos os pacotes para a porta 8080. Em determinados casos, meu próprio aplicativo faz uma solicitação ao servidor a partir do servidor.

Pergunta: Há algum buraco no meu firewall? Maneiras de tornar isso mais seguro.

Aqui está minha configuração de firewall:

*filter
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p esp -j ACCEPT
-A RH-Firewall-1-INPUT -p ah -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Allow Secure SSH transfer
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 22 --state NEW -j ACCEPT
# Allow all HTTP requests
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
*mangle
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed
*nat
:OUTPUT ACCEPT [0:0]
-A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
# Routes all HTTP requests from port 80 to port 8080.
# Allows you to run JETTY as a non-root user.
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
COMMIT
# Completed
    
por user766453 07.07.2011 / 19:43

2 respostas

4

Você tem a seguinte linha em sua configuração:

-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

No entanto, existem dois tipos de solicitações ICMP que podem ser consideradas uma pequena preocupação de segurança (de insira a descrição do link aqui ):

Type  Name                   Reference          
...
13  Timestamp        [RFC792]
...
17  Address Mask Request     [RFC950]

O tipo 13 é uma solicitação para o horário exato de acordo com o computador de destino. A hora exata pode ser usada para explorar alguns algoritmos de criptografia muito fracos em alguns protocolos de rede, permitindo que um invasor tenha acesso a informações privilegiadas. O tipo 17 é uma solicitação para a máscara de rede da interface na qual a solicitação foi recebida. Uma resposta válida pode ajudar um invasor a aprender sobre a topologia da sua rede. No lugar da regra acima, recomendo as três regras a seguir:

-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type 13 -j REJECT
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type 17 -j REJECT
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

Estas regras impedirão os dois tipos de ICMP proibidos e permitirão todos os outros.

    
por 07.07.2011 / 20:14
0

Eu sou relativamente novo no roteamento Linux também, a única outra coisa que eu já vi recomendada é mudar a política de destino do INPUT para drop / reject também (iptables -P INPUT DROP). Por alguma razão, isso é recomendado mesmo quando sua última regra é DROP ou REJEITAR como a sua.

    
por 08.07.2011 / 02:09