Página 1 de 3 123 ÚltimoÚltimo
+ Responder ao Tópico



  1. Pessoal,
    estou tentando fazer o seguinte:
    liberar determinados IP's para trafegar, principalmente na internet.
    bloquear todo o trafego de uma classe inteira de IP válido. Até sua saida para internet tem que ser cortada.

    É um servidor gateway, não estou utilizando proxy e o DNS é em outro servidor.

    Abaixo segue meu script iptables. Nesse esta liberando trafego para todo IP e estou tentando, mas sem sucesso, bloquear o trafego de um determinado IP. Do jeito que está, não está sendo bloqueado e o IP está até navegando na internet. Nesse caso como faço para bloquear aquele determinado IP 999.999.999.5 para ficar sem trafego, sem internet, sem nada?

    #!/bin/bash

    ## VARIAVEIS ##
    IPT="/sbin/iptables"
    IP_ETH0="111.111.111.1" # Esse seria o IP do Link que recebo na ETH0
    IP_ETH1="999.999.999.9" # Esse seria meu IP Valido na ETH1. IP que é configurado como Gateway nos clientes.
    IF_ETH0="eth0"
    IF_ETH1="eth1"

    ## VERIFICA IPTABLES ##
    if [ ! -f $IPT ]; then
    echo "IPTABLES nao encontrado."
    exit
    fi

    ## FUNCOES ##
    start() {
    echo -n "Ativando regras de Firewall..."
    $IPT -t filter -F
    $IPT -t nat -F
    $IPT -t mangle -F
    $IPT -X
    echo "1" > /proc/sys/net/ipv4/ip_forward

    $IPT -A INPUT -d $IP_ETH0 -p icmp -m icmp --icmp-type echo-request -m limit --limit 3/sec -i $IF_ETH0 -j ACCEPT
    $IPT -A INPUT -p icmp -m icmp --icmp-type echo-request -i $IF_ETH0 -j LOG --log-prefix " ICMP DENY "
    $IPT -A INPUT -p icmp -m icmp --icmp-type echo-request -i $IF_ETH0 -j DROP
    ## Tentativa de bloqueio para cortar todo trafego até para internet
    $IPT -I INPUT -i eth1 -s 999.999.999.5 -j DROP
    $IPT -A FORWARD -p tcp -i $IF_ETH1 -s 999.999.999.5 -d $IP_ETH1 -j DROP
    $IPT -A FORWARD -p udp -i $IF_ETH1 -s 999.999.999.5 -d $IP_ETH1 -j DROP
    ## Outra tentativa
    $IPT -I INPUT -i eth0 -s 999.999.999.5 -j DROP
    $IPT -A FORWARD -p tcp -i $IF_ETH0 -s 999.999.999.5 -d $IP_ETH1 -j DROP
    $IPT -A FORWARD -p udp -i $IF_ETH0 -s 999.999.999.5 -d $IP_ETH1 -j DROP
    ##
    ## Mais outra tentativa
    $IPT -A INPUT -s 999.999.999.5 -d $IP_ETH1 -i $IF_ETH1 -j DROP
    ## Liberando acesso SSH ao IP da minha maquina
    $IPT -A INPUT -s 999.999.999.2 -d $IP_ETH1 -p tcp --sport 1024:65535 --dport 22 -i $IF_ETH1 -j ACCEPT
    ## Liberando porta 161 para uma outra maquina minha
    $IPT -A INPUT -s 999.999.999.3 -d $IP_ETH1 -p udp --sport 1024:65535 --dport 161 -i $IF_ETH1 -j ACCEPT
    $IPT -A INPUT -p icmp -m icmp --icmp-type echo-request -m limit --limit 15/sec -i $IF_ETH1 -j ACCEPT
    $IPT -A INPUT -p icmp -m icmp --icmp-type echo-request -i $IF_ETH1 -j LOG --log-prefix " ICMP DENY "
    $IPT -A INPUT -p icmp -m icmp --icmp-type echo-request -i $IF_ETH1 -j DROP

    $IPT -A INPUT -i lo -j ACCEPT
    $IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    $IPT -A INPUT -m state --state INVALID -j LOG --log-prefix "BLOQUEIO INPUT INVALID "
    $IPT -A INPUT -m state --state INVALID -j DROP
    $IPT -A INPUT -m state --state NEW -j LOG --log-prefix "BLOQUEIO INPUT NEW "
    $IPT -A INPUT -m state --state NEW -j DROP
    ### MANGLE ###
    $IPT -t mangle -A OUTPUT -o $IF_ETH0 -p tcp --dport 21 -j TOS --set-tos 0x10
    $IPT -t mangle -A OUTPUT -o $IF_ETH0 -p tcp --dport 23 -j TOS --set-tos 0x10
    $IPT -t mangle -A OUTPUT -o $IF_ETH0 -p tcp --dport 6665:6668 -j TOS --set-tos 0x10
    $IPT -t mangle -A OUTPUT -o $IF_ETH0 -p udp --dport 53 -j TOS --set-tos 0x10
    echo " [OK]"
    }
    stop() {
    echo -n "Desativando regras de Firewall..."
    $IPT -t filter -F
    $IPT -t nat -F
    $IPT -t mangle -F
    $IPT -X
    #echo "0" > /proc/sys/net/ipv4/ip_forward
    echo " [OK]"
    }

    ## FILTRO DE PARAMETROS DE EXECUCAO ##
    case "$1" in
    start)
    start
    ;;
    stop)
    stop
    ;;
    restart)
    stop
    start
    ;;
    *)

  2. O problema de suas regras é que nela você está especificando a origem e o destino na tabela Forward. Como a tabela Forward é para roteamento é difícil você especificar o IP de destino pois serão todos os IPs da internet (caso ele esteja navegando), ou seja muitos.

    Para realizar o bloqueio, especifique somente a origem e realize o drop:
    $IPT -A FORWARD -i $IF_ETH1 -s 999.999.999.5 -j DROP

    Note que não especifiquei o protocolo, logo ele bloqueará todos os protocolos (TCP, UDP, IP, ICMP...).

    Qualquer dúvida posta ai...



  3. Jóia, bloqueou, funciounou certinho. Vamos supor que esse IP esteja em uma maquina, se essa maquina estiver com virus o trafego dela passa pra minha rede ou isso ja ta bloqueando tudo?

    Bom, em vez de eu ir bloqueando um monte de IP, é mais facil eu bloquear a classe de IP toda e deixar liberado apenas os que eu desejar. Pra fazer isso, como ficaria meu script?

    Valeuuuuuuuu!

  4. Cara, isso não impede a propagação de virus dentro da rede do host infectado. O Firewall só bloqueia os pacotes que passam por ele, dois hosts na mesma rede se comunicam através de um Hub/Switch. Se quiser aprender mais sobre essas características da rede, dá uma olhada no curso de redes que fiz no meu blog.

    Quanto ao script, depende, o numero de máquinas a ser bloqueado é muito superior ao número de máquinas a serem permitidas?? Se sim, então vale mais a pena bloquear tudo e permitir apenas máquinas específicas.

    Não tenho como te dizer a forma certa do seu script pois não sei a rede/máscara da sua rede interna, então vamos a um exemplo:
    Temos a rede 192.168.1.0/24 com os hosts 192.168.1.1 até 192.168.1.10. O Gateway/Firewall é o 192.168.1.1 (eth1) e os hosts a serem permitidos são o 192.168.1.5 e o 192.168.1.10. As regras seriam as seguintes:
    iptables -A FORWARD -i eth1 -s 192.168.1.5 -j ACCEPT
    iptables -A FORWARD -i eth1 -s 192.168.1.10 -j ACCEPT
    iptables -A FORWARD -i eth1 -s 192.168.1.0/24 -j DROP

    Você pode interpretar essas regras como sendo: Fulano (192.168.1.5) pode passar, o Sicrano (192.168.1.10), que é irmão do Fulano, também pode passar, mas todo o resto da sua família (192.168.1.0/24) eu não vou deixar.

    Qualquer dúvida posta ai!
    Até mais...



  5. eu prefiro bloquear ip usando um null route

    route add -host ip.do.cliente reject






Tópicos Similares

  1. Respostas: 4
    Último Post: 06-07-2011, 15:49
  2. Squid - Bloquear um IP especifico
    Por cadeveloper no fórum Servidores de Rede
    Respostas: 2
    Último Post: 30-03-2005, 14:57
  3. Bloquear um IP (iptables)
    Por no fórum Servidores de Rede
    Respostas: 6
    Último Post: 17-12-2004, 07:23
  4. Monitorar e bloquear tráfego com palavra chave
    Por haas no fórum Servidores de Rede
    Respostas: 5
    Último Post: 24-05-2004, 09:22
  5. como bloquear certos ips com iptables ???//
    Por MAJOR no fórum Servidores de Rede
    Respostas: 2
    Último Post: 20-11-2002, 08:19

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L