+ Responder ao Tópico



  1. #1

    Padrão Criando Firewall para uma rede

    Bom gente nãomsou especialista em Iptables, sempre usei Shorewall para redes Simples e nunca tive problema, mas agora preciso mais.

    Como no shorewall eu não estou conseguindo faze-lo funcionar com varias redes "Vlans" crida em um switch Grenciaveis, então estou partindo para o Iptables puro.

    Lendo livros sobre o assunto e pegando regras na net para ajudar montei esta Firewall basico onde esta fucionando para todas as vlans.

    Tem uma regra se habilito no firewall ela não deixar as vlans acessar a internet via proxy com squid.

    Segue o script que criei.

    #!/bin/bash
    ####### Limpar Regras ########
    iptables -F
    iptables -X
    iptables -Z
    iptables -t filter -F
    iptables -t nat -F

    iniciar(){
    modprobe iptable_nat
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward

    #Abre para a rede local
    iptables -A INPUT -p tcp --syn -s 192.168.0.0/24 -j ACCEPT

    # Proteções diversas contra portscanners, ping of death, ataques DoS, etc.
    iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
    iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
    iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP

    #Proteção Contra IP Spoofing
    iptables -A INPUT -s 10.0.0.0/8 -i eth0 -j DROP
    iptables -A INPUT -s 172.16.0.0/16 -i eth0 -j DROP
    iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j DROP

    # Bloqueando tracerroute
    iptables -A INPUT -p udp -s 0/0 -i eth0 --dport 33435:33525 -j DROP

    # libera o loopback
    iptables -A OUTPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT

    # Mesmo assim fechar todas as portas abaixo de 32000
    iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -i eth0 -p tcp --dport 32000 -j DROP

    # Protecoes contra ataques
    iptables -A INPUT -m state --state INVALID -j DROP

    # Performance - Setando acesso a web com delay minimo
    iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
    iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 80 -j TOS --set-tos Minimize-Delay

    # libera conexoes de fora pra dentro
    iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT
    iptables -A INPUT -p tcp --destination-port 443 -j ACCEPT
    iptables -A INPUT -p tcp --destination-port 25 -j ACCEPT
    iptables -A INPUT -p tcp --destination-port 110 -j ACCEPT
    iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT

    #libera conexoes de dentro pra fora:
    iptables -A OUTPUT -p tcp --destination-port 80 -j ACCEPT
    iptables -A OUTPUT -p tcp --destination-port 22 -j ACCEPT
    iptables -A OUTPUT -p tcp --destination-port 25 -j ACCEPT
    iptables -A OUTPUT -p tcp --destination-port 110 -j ACCEPT
    iptables -A OUTPUT -p tcp --destination-port 443 -j ACCEPT

    #Proxy Transparente, para todas as Vlans
    iptables -t nat -A PREROUTING -p tcp -s 0/0 --dport 80 -j REDIRECT --to-port 3128

    # Fecha o resto
    #iptables -A INPUT -p tcp --syn -j DROP

    echo "Regras de firewall ativadas"
    }
    parar(){
    iptables -F
    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    echo "Regras de firewall desativadas"
    }
    case "$1" in
    "start") iniciar ;;
    "stop") parar ;;
    "restart") parar; iniciar ;;
    *) echo "Use os parâmetros start ou stop"
    esac


    Esta regra " iptables -A INPUT -p tcp --syn -j DROP" quando habilitada não no final do script a internet não funciona nas Vlans.

    Como eu disse não sou experte eme iptables e não entendi porque habilitado ela tenho porblemas.

    Alguém poderia por favor explicar, e aproveitando analisar este script.

    Abraço a todos.

  2. #2

    Padrão Re: Criando Firewall para uma rede

    Ola,
    Quando uma conexão de rede é iniciada um pacote com nome de syn é enviado.
    Neste caso com esta regra está fazendo com qualquer novo acesso ao firewall seja bloqueado.
    Desative se não realmente não irá funcionar.

  3. #3

    Padrão Re: Criando Firewall para uma rede

    Ok amigo, eu encontrei uma outra solução que não precisa desativar a regra, porém não sei se isso é correto fazer, em caso de segurança.

    #Abre para a rede local
    iptables -A INPUT -p tcp --syn -s 192.168.0.0/24 -j ACCEPT

    alterei para iptables -A INPUT -p tcp --syn -s 192.168.0.0/16 -j ACCEPT

    Só alterei a mascada de 24 para 16, desta forma as redes, primcipalmente as Vlans não são bloqueadas.

    Vc algum problema com esta regra?

    Abraço

  4. #4

    Padrão Re: Criando Firewall para uma rede

    Neste caso, como voce especifica a função --syn quer dizer que somente os pacotes syn estão autorizados.
    Sugiro usar a função statefull do firewall.
    iptables -A INPUT -s 192.168.0.0/24 -m state --state NEW,ESTABLISHED -j ACCEPT

  5. #5

    Padrão Re: Criando Firewall para uma rede

    Acho que falei antes do tempo, mesmo que eu troque a mascara de 24 para 16 na regra abaixo e no final do firewall e apliquei a regra de fechar tudo, a rede deixa de funcionar, nenhuma estação consegue entrar no dominio.

    #Abre para a rede local
    iptables -A INPUT -p tcp --syn -s 192.168.0.0/24 -j ACCEPT

    Bom, então a regra com a função statefull ela tem local especifico para ficar no firewall?

    iptables -A INPUT -s 192.168.0.0/24 -m state --state NEW,ESTABLISHED -j ACCEPT

    Preciso entender melhor estas regras de iptables para não ficar boiando.

    Obrigado