[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Script de firewall não funciona, pq ?



dentro do script já há um :
echo "1" > /proc/sys/net/ipv4/ip_forward

Em 24 de maio de 2010 12:01, Allison Vollmann
<allisonvoll@yahoo.com.br> escreveu:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Você habilitou o forwarding de pacotes no kernel?
>
> Para ter certeza o comando deve retornar "= 1"
> # sysctl net.ipv4.ip_forward
>
> (para ipv6: net.ipv6.conf.all.forwarding)
>
> Caso não tenha habilitado você pode setar esta configuração no arquivo
> "/etc/sysctl.conf" para persistir ao boot do sistema, e para não
> precisar reiniciar pode habilitá-la utilizando o comando sysctl também
> (ou da maneira tradicional através do sistema de arquivos proc)
>
> A[]'s
>
> Em 24/5/2010 11:23, hamacker escreveu:
>> Olá pessoal, será que seria possivel uma mãozinha aqui :
>> Estou desenvolvendo um script para firewall que bloqueia/libera
>> portas, dá acesso transparente a alguns ips, etc...
>> O script funciona perfeitamente no servidor onde coloco, porém quando
>> vou a uma estação e ponho tal servidor como gateway simplesmente não
>> funciona.
>> Sei que tá funcionando porque faço um ssh neste servidor e as regras
>> alí estão funcionando sem problemas, além disso, coloquei até um
>> proxy lá e com o proxy tá funcionando.
>> Vou colar aqui o script, só em suas regras e se alguem for ninja em
>> iptables e puder me dizer qual é o problema, eu seria muito grato.
>>
>> Gostaria de dizer que comentei todas as linhas para depurar e mesmo
>> que eu dê um :
>> $IPTABLES -t nat -A POSTROUTING  -o $WAN -j MASQUERADE
>>
>> para mascarar tudo, não adianta.
>>
>> Falha com DNS estão descartados.
>> Qualquer ajuda será bem vinda.
>>
>> #
>> # Inicio do Script
>> #
>>
>> # Declaração de variaveis
>> IPTABLES="/sbin/iptables"
>> FWDIR="$FIREWALL/config"
>>
>> # criando arquivos importantes para servirem de samples
>> . /home/servidor/fw-scripts/firewall.files
>>
>> # Interfaces de Rede
>> # Se precisar mudar a ordem das placas fisicamente, entao
>> # edite o arquivo :
>> # /etc/udev/rules.d/70-persistent-net.rules
>> LAN=eth1
>> WAN=eth0
>> REDE_INTERNA="192.168.0.0/16"
>>
>> # Os diversos módulos do iptables são chamdos através do modprobe
>> modprobe ip_tables
>> modprobe iptable_nat
>> modprobe ip_conntrack
>> modprobe ip_conntrack_ftp
>> modprobe ip_nat_ftp
>> modprobe ipt_LOG
>> modprobe ipt_REJECT
>> modprobe ipt_MASQUERADE
>> modprobe ipt_state
>> modprobe ipt_multiport
>> modprobe iptable_mangle
>> modprobe ipt_tos
>> modprobe ipt_limit
>> modprobe ipt_mark
>> modprobe ipt_MARK
>>
>> # Mensagem de inicialização do script
>> echo "########################################"
>> echo "# Script de Firewall - v2010.05   by Hamacker    #"
>> echo "########################################"
>>
>> $IPTABLES -F
>> $IPTABLES -F INPUT
>> $IPTABLES -F OUTPUT
>> $IPTABLES -F FORWARD
>> $IPTABLES -t mangle -F
>> $IPTABLES -t nat -F
>> $IPTABLES -X
>>
>> $IPTABLES -P INPUT DROP
>> $IPTABLES -P OUTPUT ACCEPT
>> $IPTABLES -P FORWARD DROP
>>
>> echo "Ativando o redirecionamento entre as placas de rede (ip_forward)"
>> echo "1" > /proc/sys/net/ipv4/ip_forward
>>
>> echo "Ativando entrada/saida da interface de loopback"
>> $IPTABLES -I INPUT -i lo -j ACCEPT
>> $IPTABLES -I OUTPUT -o lo -j ACCEPT
>>
>> echo "Liberando portas do servidor ($WAN):"
>> while read LINHA ; do
>>   PORTA=`semremarks "$LINHA"`
>>   if [ "$PORTA" != "" ] ; then
>>     echo -e "\tPorta : $PORTA"
>>     $IPTABLES -A INPUT -p tcp --dport $PORTA -j ACCEPT
>>     $IPTABLES -A FORWARD -p tcp --dport $PORTA -j ACCEPT
>>     $IPTABLES -A OUTPUT -p tcp --sport $PORTA -j ACCEPT
>>   fi
>> done <"$LISTA_PORTAS_LIBERADAS"
>> $IPTABLES -I INPUT -m state --state ESTABLISHED -j ACCEPT
>> $IPTABLES -I INPUT -m state --state RELATED -j ACCEPT
>> $IPTABLES -I OUTPUT -p icmp -o $WAN -j ACCEPT
>> $IPTABLES -I INPUT -p icmp -j ACCEPT
>>
>> echo "Redirecionando portas ($WAN) a outros servidores :"
>> while read LINHA ; do
>>   i=`semremarks "$LINHA"`
>>   if [ "$i" != "" ] ; then
>>     REDIPROTO=`echo $i | cut -d ';' -f 1` #recebe o protocolo a ser
>> redirecionado
>>     REDIPORTA=`echo $i | cut -d ';' -f 2` #recebe a porta a ser
> redirecionado
>>     REDIP=`echo $i | cut -d ';' -f 3` #recebe o ip a ser redirecionado
>>     REDISERVICO=`echo $i | cut -d ';' -f 4` #recebe o nome do serviço
>>     REDIHOST=`echo $i | cut -d ';' -f 5` #recebe o nome do host
>>     echo -e "\t$WAN:$REDIPORTA($REDISERVICO) ->$REDIP($REDIHOST)"
>>     $IPTABLES -A FORWARD -p $REDIPROTO --dport $REDIPORTA -j ACCEPT
>>     $IPTABLES -t nat -A PREROUTING -p $REDIPROTO -i $WAN --dport
>> $REDIPORTA -j DNAT --to $REDIP
>>   fi
>> done <"$LISTA_REDIRECIONAMENTOS"
>>
>> echo "Bloqueando MacAddr da lista $LISTA_MACLIST_BLOQUEADOS :"
>> echo "(este bloqueio precede outras permissoes)"
>> while read LINHA ; do
>>   MACSOURCE=`semremarks "$LINHA"`
>>   if [ "$MACSOURCE" != "" ] ; then
>>     echo -e "\tBloqueado MacAddr:$LINHA"
>>     $IPTABLES -t filter -A FORWARD -m mac --mac-source $MACSOURCE -j DROP
>>     $IPTABLES -t filter -A INPUT -m mac --mac-source $MACSOURCE -j DROP
>>     #$IPTABLES -t filter -A PREROUTING -m mac --mac-source $MACSOURCE
> -j DROP
>>   fi
>> done < "$LISTA_MACLIST_BLOQUEADOS"
>>
>> echo "Liberando IPs/Sites com acesso transparente e direito"
>> while read LINHA ; do
>>   LIBERAR_SITE=`semremarks "$LINHA"`
>>   if [ "$LIBERAR_SITE" != "" ] ; then
>>      echo -e "\tSite transparente : $LINHA"
>>      $IPTABLES -t nat -A POSTROUTING -s $REDE_INTERNA -d $LIBERAR_SITE
>> -j MASQUERADE
>>   fi
>> done <"$SQUIDACL/sites_diretos.txt"
>>
>> echo "Liberando IPs transparentes fixos a partir de
>> $LISTA_IP_TRANSPARENTES_FIXO"
>> while read LINHA ; do
>>   LIBERAR_IP=`semremarks "$LINHA"`
>>   if [ "$LIBERAR_IP" != "" ] ; then
>>      echo -e "\tIP transparente [fixo] : $LINHA"
>>      $IPTABLES -t nat -A POSTROUTING -s $LIBERAR_IP -j MASQUERADE
>>   fi
>> done <"$LISTA_IP_TRANSPARENTES_FIXO"
>>
>> echo "Liberando IPs transparentes temporarios a partir de
>> $LISTA_IP_TRANSPARENTES_TEMP"
>> while read LINHA ; do
>>   LIBERAR_IP=`semremarks "$LINHA"`
>>   if [ "$LIBERAR_IP" != "" ] ; then
>>      echo -e "\tIP transparente [temp] : $LINHA"
>>      $IPTABLES -t nat -A POSTROUTING -s $LIBERAR_IP -j MASQUERADE
>>   fi
>> done <"$LISTA_IP_TRANSPARENTES_TEMP"
>>
>> echo "Bloqueando o acesso de nossa rede a algumas redes externas :"
>> while read LINHA ; do
>>   SITE=`semremarks "$LINHA"`
>>   if [ "$SITE" != "" ] ; then
>>     echo -e "\tSite :$SITE"
>>     $IPTABLES -t filter -A FORWARD -s $REDE_INTERNA -d $SITE -j DROP
>>     $IPTABLES -t filter -A FORWARD -s $SITE -d $REDE_INTERNA -j DROP
>>     $IPTABLES -t filter -A INPUT -s $SITE -j DROP
>>     $IPTABLES -t filter -A OUTPUT -d $SITE -j DROP
>>   fi
>> done <"$LISTA_SITES_NEGADOS"
>>
>> echo "Bloqueando algumas de portas :"
>> while read LINHA ; do
>>   PORTA=`semremarks "$LINHA"`
>>   if [ "$i" != "" ] ; then
>>     echo -e "\tPorta :$i"
>>     $IPTABLES -A INPUT -p tcp -i $WAN --dport $PORTA -j DROP
>>     $IPTABLES -A INPUT -p udp -i $WAN --dport $PORTA -j DROP
>>     $IPTABLES -A FORWARD -p tcp --dport $PORTA -j DROP
>>   fi
>> done <"$LISTA_PORTAS_BLOQUEADAS"
>>
>> exit 0;
>>
>>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (MingW32)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iEYEARECAAYFAkv6lNcACgkQ7OAY7mv8Bhn2ZwCgsi9G99WlEhwIbaiYKOl5GIbV
> tF0AnRKXY2rMNNa80tWbAa5ZK7R92XBH
> =86PH
> -----END PGP SIGNATURE-----
>
>
>
> --
> To UNSUBSCRIBE, email to debian-user-portuguese-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> Archive: 4BFA94D8.1070602@yahoo.com.br">http://lists.debian.org/4BFA94D8.1070602@yahoo.com.br
>
>


Reply to: