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



  1. #1
    bau
    Visitante

    Padrão Liberar 1 IP para passa pelo proxy......

    Eae gente blz...

    Seguinte, usamos tenho um firewall na distro fedora core 2 e um proxy no fd2 tbm.... porém em outra máquina.

    Preciso saber como posso liberar um ip full sem q ele tenha q passar pelo proxy... a configuração do proxy aqui é digitada no brower, não é proxy transparente.

    Esse ip é do Presidente da empresa, ele usa o netscape 4.9 com imap e por isso o netscape não abre o brower se estiver usando proxy.

    Mas o restante da galera tem q passar pelo proxy.

    Alguém pode me ajudar!!!

    [ ] ´s

  2. #2

    Padrão Re: Liberar 1 IP para passa pelo proxy......

    Faz um masquerade emcima do ip dele, pois pelo que vi todo mundo so navega atraves do proxy !!!


    Valeu !!!

  3. #3
    informaticaMB
    Visitante

    Padrão Liberar 1 IP para passa pelo proxy......

    Olha Estas são as configurações que eu uso. no caso o IP 192.168.0.190/32 fica livre de passar pelo proxy.


    iptables -t nat -A PREROUTING -s ! 192.168.0.190/32 -p tcp --dport 80 -j REDIRECT --to-port 3128
    iptables -t nat -A PREROUTING -s ! 192.168.0.190/32 -p udp --dport 80 -j REDIRECT --to-port 3128



    Espero que te ajude.

  4. #4
    bau
    Visitante

    Padrão Liberar 1 IP para passa pelo proxy......

    Valew galera, vou fazer dessa forma..

    [ ]´s
    Bau

  5. #5

    Padrão Liberar 1 IP para passa pelo proxy......

    Citação Postado originalmente por informaticaMB
    Olha Estas são as configurações que eu uso. no caso o IP 192.168.0.190/32 fica livre de passar pelo proxy.


    iptables -t nat -A PREROUTING -s ! 192.168.0.190/32 -p tcp --dport 80 -j REDIRECT --to-port 3128
    iptables -t nat -A PREROUTING -s ! 192.168.0.190/32 -p udp --dport 80 -j REDIRECT --to-port 3128



    Espero que te ajude.
    primeiro: pq /32? e não 190?
    segundo: dessa forma vc ta jogando o .190 para porta 3128, ou seja, dessa forma vc ta fazendo com que ele utilize o proxy, isso se a porta 80 tiver barrada e a 3128 tiver liberar para o mesmo na chain input,

    ja ouviu falar em snat?

    bora la então
    Fazendo SNAT

    SNAT (source nat - nat no endereço de origem) consiste em modificar o endereço de origem das máquinas clientes antes dos pacotes serem enviados. A máquina roteadora é inteligente o bastante para lembrar dos pacotes modificados e reescrever os endereços assim que obter a resposta da máquina de destino, direcionando os pacotes ao destino correto. Toda operação de SNAT é feita no chain POSTROUTING.
    ai vc deve perguntar, qual a diferença entre snat e masquerade!?!

    O IP Masquerading é um tipo especial de SNAT usado para conectar a sua rede interna a internet quando você recebe um IP dinâmico de seu provedor (como em conexões ppp). Todas as operações de IP Masquerading são realizadas no chain POSTROUTING.
    entao se vc tem ip fixo vc deve utilizar snat, caso contrario vc deve utilizar masquerading.
    eh bom informar isso pois muita gente não sabe qual a diferença entre 1 e outro.

    agora se vc quer que um ip da sua rede vâ pra internet sem passa pelo proxy, basta vc fazer um masquerade no ip da sua rede, lembre que será necessario liberar na chain FORWARD, pois depois da consultar a tabela nat ele vai pra tabela filter(to falando do pacote referente a maquina da rede do mesmo), isso se a politica da chain forward tiver drop, se n, nem precisar liberar

    vou da um exemplo.

    iptables -t nat -A POSTROUTING -s 192.168.0.190 -o ethinetnet -j MASQUERADE

    assim o ip 190 estarar sendo liberado tudo, tal fato que não recomendo,
    aconselho vc liberar especificando porta e protocolo.

    espero que tenha gostado
    abraço a todos

    obs: texto terirado do guia foca linux

  6. #6
    informaticaMB
    Visitante

    Padrão Descupe

    Descupe a Falta de Conhecimento.


    So dei um exemplo do que eu uso aqui, pra ver se eu poderia ajudar.

    no entanto a regra que coloquei diz que todos os IP menos (!) o 192.168.0.190/32 vao ter que passar pelo proxy.


    Valew.

  7. #7
    Visitante

    Padrão Re: Descupe

    Citação Postado originalmente por informaticaMB
    Descupe a Falta de Conhecimento.


    So dei um exemplo do que eu uso aqui, pra ver se eu poderia ajudar.

    no entanto a regra que coloquei diz que todos os IP menos (!) o 192.168.0.190/32 vao ter que passar pelo proxy.


    Valew.
    que nada, o erro foi meu, n notei que o !

    o ideal eh fazer do jeito q eu te disse, pois o exemplo que vc falou a maquina vai ficar sem acesso o proxy certo, mas se o snat tiver drop all, ou forward estiver drop all e a porta 80 tiver barrada, n irar funcionar..
    por isso que eu digo, firewall eh algo muito personalizado, server pra mim mas n server pra outra pessoa, mas eh isso ae , vivendo e aprendendo.

    abraço

  8. #8

    Padrão Liberar 1 IP para passa pelo proxy......

    opa esqueci de logar

  9. #9
    bau
    Visitante

    Padrão Liberar 1 IP para passa pelo proxy......

    Opa gostei da explicação, value.

    Agora um esclarecimento.

    Vc disse que devo habilitar a passagem do pacote no chain FORWARD, caso esse estaja com policy drop como é o meu caso.

    Então isso seria dessa forma!!!!

    iptables -A FORWARD -p tcp -s 192.168.50.30 -d $NET -j ACCEPT

    Seria isso.

    Valew cara.

    [ ] ´s

  10. #10

    Padrão Liberar 1 IP para passa pelo proxy......

    O "-p tcp" e o "-d $NET" são opcionais...
    Tem que ver se no seu caso não vai precisar fazer o caminho inverso tb:
    iptables -A FORWARD -d 192.168.50.30 -j ACCEPT

    [ ] 's

  11. #11

    Padrão Liberar 1 IP para passa pelo proxy......

    Citação Postado originalmente por aledr
    O "-p tcp" e o "-d $NET" são opcionais...
    Tem que ver se no seu caso não vai precisar fazer o caminho inverso tb:
    iptables -A FORWARD -d 192.168.50.30 -j ACCEPT

    [ ] 's

    caminho inverso?

    acho que vou ter que explicar de novo...

    como vc fez a regra, vc quer liberar tudo mesmo para esse ip 192.168.50.30 ?
    como tinha dito, eu n aconselho fazer tal coisa, prefiro especificar porta e protocolo.

    na tabela nat fica assim


    iptables -t nat -A POSTROUTING -s 192.168.50.30 -p tcp -j MASQUERADE

    quando o seu chefe que possui esse ip for fazer uma consulta na net por exmplo.

    a maquina 192.168.50.30 vai enviar um pacote, esse pacote vai entra na regra a acima que eu te falei, logo em seguida esse pacote vai consultar a tabela filter, na chain forward:

    iptables -A FORWARD -s 192.168.50.30 -p tcp -j ACCEPT

    quando o pacote consultar essa regra ele vai acessar o que ele quiser na internet, pois vc ta liberando tudo. ai vc me pergunta , e a regra inversa?

    heheehhehe
    bom quando o pacote sai da sua rede com o destino a internet, a resposta desse pacote quando chegar no seu firewall,a maquina rotiadora (seu firewall) é inteligente o bastante para pra enviar pro ip do seu chefe, que foi o ip que requisitou o mesmo, assim fazendo o handshake (o famoso aperto de maos). se vc tem uma regra ESTABLISHED E RELATED na hain forward, o fw n vai derrubar o pacote, resumindo, não é necessario criar uma regra "inversa" , tcp/ip eh muito bom .

    espero que tenha ajudado..

    abraço

  12. #12

    Padrão Liberar 1 IP para passa pelo proxy......

    Acho que esse post seu foi totalmente desnecessário e sem propósito.
    Sem comentários....

  13. #13

    Padrão Liberar 1 IP para passa pelo proxy......

    Citação Postado originalmente por aledr
    Acho que esse post seu foi totalmente desnecessário e sem propósito.
    Sem comentários....
    poderia ate concorda, mas sem motivos fica dificil

    meu post foi para explica oq vc falou sobre regra inversa, que nesse caso n existe eheheheh

    t+

  14. #14

    Padrão Liberar 1 IP para passa pelo proxy......

    Realmente, isso demonstra que você nem ao mínimo tentou entender o modo de funcionamento da rede do nosso amigo.
    Ele tem um firewall e um proxy em máquinas separadas, mas se pra chegar ao firewall ele tivesse que passar pela máquina que tem o proxy (não pelo proxy, mas pela máquina), o caminho inverso deveria estar aberto, um caminho só de ida para os pacotes não resolveria, ele passaria pela máquina com o proxy e chegaria até o firewall, quando o firewall fosse retornar o pacote, ele tentaria passar pela máquina com o proxy e seria parado na chain Forward.

    Parece que você não entendeu mesmo... E também não explicou a regra inversa (hehehehehehehe), fica até difícil definir qual o assunto central do seu post. Quis explicar comoi funciona o MASQUERADE? Quis explicar o caminho que o pacote descreve dentro do firewall? Afinal de contas o que foi? Pode ter sido tudo, menos explicar o forward inverso.

    Acho que é isso, mas sem conhecer melhor a situação dele fica difícil de definir...

  15. #15
    Visitante

    Padrão Liberar 1 IP para passa pelo proxy......

    É.... aqui a questão é bastante relativa...
    Ambos podem estar corretos ou não!!!

    Vai saber!

  16. #16

    Padrão Liberar 1 IP para passa pelo proxy......

    Citação Postado originalmente por aledr
    Realmente, isso demonstra que você nem ao mínimo tentou entender o modo de funcionamento da rede do nosso amigo.
    Ele tem um firewall e um proxy em máquinas separadas, mas se pra chegar ao firewall ele tivesse que passar pela máquina que tem o proxy (não pelo proxy, mas pela máquina), o caminho inverso deveria estar aberto, um caminho só de ida para os pacotes não resolveria, ele passaria pela máquina com o proxy e chegaria até o firewall, quando o firewall fosse retornar o pacote, ele tentaria passar pela máquina com o proxy e seria parado na chain Forward.

    Parece que você não entendeu mesmo... E também não explicou a regra inversa (hehehehehehehe), fica até difícil definir qual o assunto central do seu post. Quis explicar comoi funciona o MASQUERADE? Quis explicar o caminho que o pacote descreve dentro do firewall? Afinal de contas o que foi? Pode ter sido tudo, menos explicar o forward inverso.

    Acho que é isso, mas sem conhecer melhor a situação dele fica difícil de definir...

    desculpa mas ainda não concordo com sua regra "inversa"

    o nosso colega disse q tem 1 (UM) firewall e um (1) proxy em maquinas separada, o proxy dele não eh transparente. ou seja, se ele não definir no browser o ip da maquina onde ta o proxy, o pacote vai direto para maquina rotiadora, que é o firewall. então entra a questao que eu falei, quando o chefe do nosso amigo for abri seu navegador e colocar um site, esse pacote vai chegar no firewall e vai consultar a primeira tabela que a nat(caso vc n conhecha como funcionar o fluxo de dados na ferramenta iptables, eu aconselho vc da uma olhada no guia focalinux) ai vem a questao que eu tava explicando, se tiver como drop all a tabena nat como a filter, ele irar ter q fazer do jeito q eu disse, ou seja, nesse caso não existe regra inversa, ... caso ainda continue sem entender, eu perco um tempo e faço um desenho e te mando eheheheh

    sem mais...

  17. #17
    bau
    Visitante

    Padrão Liberar 1 IP para passa pelo proxy......

    Então vou postar meu script aqui para que vc´s possam dar uma olhada e opinar.


    VERSION="1.0"
    WHICH="/usr/bin/which"
    UNAME="`$WHICH uname`"
    KERNEL="`$UNAME -r`"
    IFCONFIG="`$WHICH ifconfig`"
    WHEREIS="$WHICH whereis"
    MODPROBE="$WICH modprobe"

    # Server Uptime
    UPTIME="´uptime | sed 's/ [,]//g' | awk '{print $3}'`"
    #echo -e "Server Uptime: $UPTIME"

    # Seta qual o path completo do comando iptables
    #IPTABLES="/usr/local/sbin/iptables"
    IPTABLES"`$WHICH iptables`"
    echo -e "\nPath do comando iptables: $IPTABLES\n"

    echo "Versão do iptables: `IPTABLES -V`"
    echo "Versão do kernel: $KERNEL Server UPtime: $UPTIME"
    echo -e "Versão do Firewall Scritp: $VERSION\n"

    # Interface de rede conectada a Internet
    NET="eth0"

    echo " Interface de rede conectada a Internet: $NET"

    # Interface de rede conectada a rede local
    LAN="eth1"

    echo " Interface de rede conectada a rede local: $LAN"

    # Interface de rede loopback
    LOOP="lo"

    echo " Interface de rede loopback: $LOOP"

    # Ip da interface de rede conectada a Internet
    IPNET="`$IFCONFIG $NET | grep 'inet[^6]' | grep -v ^$NET: | sed 's/[a-zA-Z:]//g' | awk '{print $1}'`"

    echo " Endereço IP da interface de rede conectada a internet: $IPNET"

    # Mascara de sub-rede da interface de rede conectada a internet
    MASKNET="`$IFCONFIG $NET | grep 'Mask[^1]' | grep -v ^$NET: | sed 's/[a-zA-Z:]//g' | awk '{print $3}'`"

    # Dados que entraram pela interface de rede conectada a internet
    DATAINNET="`ifconfig $NET | grep 'RX bytes' | sed 's/[a-zA-Z()]//g' | awk '{print $2}'`"

    DATAINNETSIZE="`ifconfig $NET | grep 'RX bytes' | sed 's/[0-9().:]//g' | awk ' {print $3}'`"
    echo -e "Total de dados que entraram pela interface de rede conectada a internet: $DATAINNET $DATAINNETSIZE"

    # Dados que sairam pela interface de rede conectada a internet
    DATAOUTNET="`ifconfig $NET | grep 'TX bytes' | sed 's/[a-zA-Z()]//g' | awk '{print $4}'`"

    DATAOUTNETSIZE="`ifconfig $NET | grep 'TX bytes' | sed 's/[0-9().:]//g' | awk ' {print $6}'`"

    echo -e "Total de dados que sairam pela interface de rede conectada a internet: $DATAOUTNET $DATAOUTNETSIZE\n"

    # IP da interface de rede conectada a rede local
    IPLAN="`$IFCONFIG $LAN | grep 'inet[^6]' | grep -v ^$LAN: | sed 's/[a-zA-Z:]//g' | awk '{print $1}'`"

    echo "Endereco ip da interface de rede conectada a rede local: $IPLAN"

    # Mascarada de sub-rede da interface conectada a rede local
    MASKLAN="`$IFCONFIG $LAN | grep 'Mask[^1]' | grep -v ^$LAN: | sed 's/[a-zA-z:]//g' | awk '{print $3}'`"

    # Dados que entraram pela interface de rede conectada a rede local
    DATALAN="`ifconfig $LAN | grep 'RX bytes' | sed 's/[a-zA-Z()]//g' | awk '{print $2}'`"
    DATAINLANSIZE="`ifconfig $LAN | grep 'RX bytes' | sed 's/[0-9().:]//g' | awk '{print $3}'`"
    echo -e "Total de dados que entraram pela interface de rede conectada a redelocal: $DATAINLAN $DATAINLANSIZE"

    # Dados que sairam pela interface da rede local
    DATAOUTLAN="`ifconfig $LAN | grep 'TX bytes' | sed 's/[a-zA-Z()]//g' | awk '{print $4}'`"

    DATAOUTLANSIZE="`ifconfig $LAN | grep 'TX bytes' | sed 's/[0-9().:]//g' | awk '{print $6}'`"
    echo -e "Total de dados que sairam pela interface de rede conectada a rede local: $DATAOUTLAN $DATAOUTLANSIZE\n"

    # IP da interface Loopback
    IPLOOP="`$IFCONFIG $LOOP | grep 'inet[^6]' | grep -v ^$LOOP: | sed 's/[a-zA-Z:]//g' | awk '{print $1}'`"
    echo -e "Endereco ip da interface de rede loopback: $IPLOOP\n"

    # Mascara de sub-rede da interface de rede loopback
    MASKLOOP="`$IFCONFIG $LOOP | grep 'Mask[^1]' | sed 's/[a-zA-Z:]//g' | awk '{print $2}'`"

    # Lock File
    LOCK_FILE="/var/run/firewall/firewall.run"

    # Rede Externa (internet)
    OUTNET="$IPNET/$MASKNET"

    # Rede local (intranet)
    LANNET="$IPLAN/$MASKNET"

    # Interface loopback
    LOOPNET="$IPLOOP/$MASKLOOP"

    # FAixa de IPs da Internet
    WEB="0/0"

    # DNS Server
    DNS="`grep nameserver /etc/resolv.conf | awk '{print $2}' | awk 'getline $1'`"
    DNSTMP="/var/run/firewall/dns.tmp"
    touch $DNSTMP
    echo "0" > $DNSTMP
    for i in `grep nameserver /etc/resolv.conf | awk '{print $2}'`
    do
    expr `cat $DNSTMP` + 1 > $DNSTMP
    echo "Endereco IP do Servidor DNS: DNS `cat $DNSTMP` $i"
    done
    rm $DNSTMP

    # Max Error for ping packet loss (10% packet loss)
    MAX_ERROR="10"

    # Blocked IPs
    STUPIDFILTER_LIST="/etc/firewall/blocked/stupidfilter"

    # Blocked Sites
    SITE_LIST="/etc/firewall/blocked/sites"

    # Blocked WormFilter
    WORMFILTER_LIST="/etc/firewall/blocked/wormfilter"

    # Blocked WEBFILTER
    WEBFILTER_LIST="/etc/firewall/blocked/webfilter"
    STRING_LIST="/etc/firewall/blocked/strings"

    # Load Iptables Modules
    $MODPROBE ipt_contrack
    $MODPROBE ip_contrack
    $MODPROBE ip_contrack_ftp
    $MODPROBE ip_contrack_irc
    $MODPROBE ip_nat_ftp
    $MODPROBE ip_nat_irc
    $MODPROBE ip_nat_snmp_basic



    ##########################################-----Limpando Regras------############################################

    # Limpando Regras Existentes
    $IPTABLES -F INPUT
    $IPTABLES -F OUTPUT
    $IPTABLES -F FORWARD
    $IPTABLES -t -nat -F


    #########################################------INPUT--------####################################################

    # Determinando Politica padrão
    $IPTABLES -P INPUT DROP

    # Bloqueia IPs estupidos! por tentativas diversas
    $IPTABLES -N STUPIDFILTER
    $IPTABLES -A STUPIDFILTER -j DROP
    for BLOCKED_STUPIDFILTER in `grep -v ^# $STUPIDFILTER_LIST`
    do
    $IPTABLES -A INPUT -p tcp -s $BLOCKED_STUPIDFILTER -d $IPNET -j REJECT
    $IPTABLES -A INPUT -p udp -s $BLOCKED_STUPIDFILTER -d $IPNET -j REJECT
    echo "IP Bloqueado pelo STUPIDFILTER: $BLOCKED_STUPIDFILTER"
    done

    # Bloqueia pacotes fragmentados
    $IPTABLES -A INPUT -i $NET -f -j DROP

    # Bloqueia qualquer tentativa de conexao de fora para dentro por TCP
    $IPTABLES -A INPUT -i $NET -p tcp --syn -j DROP

    # Protecao contra ataques
    $IPTABLES -A INPUT -m state --state INVALID -j DROP

    # Aceita os pacotes que realmente devem aceitar
    $IPTABLES -A INPUT -i ! $NET -j ACCEPT
    $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    # Acabando com sessoes mortas
    $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j DROP

    #Bloqueando Traceroute
    $IPTABLES -A INPUT -p udp -s $WEB -i $NET --dport 33435:33525 -j DROP

    #Bloqueando uma máquina pelo endereço MAC
    #$IPTABLES -A INPUT -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP

    # Dropando pacotes TCP mal formados
    $IPTABLES -N BAD_TCP_PACKETS
    $IPTABLES -A BAD_TCP_PACKETS -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "Pacotes TCP mal formados!"
    $IPTABLES -A BAD_TCP_PACKETS -p tcp ! --syn -m state --state NEW -j DROP

    #WORMFILTER
    $IPTABLES -N WORMFILTER
    $IPTABLES -A WORMFILTER -j REJECT

    # Bloqueia todos os IP logados pelo WORMFILTER
    for BLOCKED_WORMFILTER in `grep -v ^# $WORMFILTER_LIST`
    do
    $IPTABLES -A INPUT -p tcp -s $BLOCKED_WORMFILTER -i $NET --dport 80 -j WORMFILTER
    echo " IP Bloqueado pelo WORMFILTER: $BLOCKED_WORMFILTER"
    done

    # Protecao contra Port Scanners
    $IPTABLES -N SCANNER
    $IPTABLES -A SCANNER -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: Port Scanner"
    $IPTABLES -A SCANNER -j DROP
    $IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i $NET -j SCANNER
    $IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -i $NET -j SCANNER
    $IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -i $NET -j SCANNER
    $IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i $NET -j SCANNER
    $IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i $NET -j SCANNER
    $IPTABLES -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i $NET -j SCANNER
    $IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i $NET -j SCANNER

    # Esse passo foi tirado do Arno IPTABLES FIREWALL
    $IPTABLES -N VALID_CHECK
    $IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
    $IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
    $IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP
    $IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP
    $IPTABLES -A VALID_CHECK -p tcp --tcp-flags SYN, RST SYN, RST -j DROP
    $IPTABLES -A VALID_CHECK -p tcp --tcp-flags SYN, FIN SYN, FIN -j DROP
    $IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP

    # Liberar Acesso externo a determinadas portas Iniciam como REJECT,
    # Mas se precisar liberar, basta mudar para ACCEPT
    #FTP
    $IPTABLES -A INPUT -p tcp --dport 21 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 21 -i $NET -j REJECT

    #SSH
    $IPTABLES -A INPUT -p tcp --dport 22 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 22 -i $NET -j REJECT

    #SMTP
    $IPTABLES -A INPUT -p tcp --dport 25 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 25 -i $NET -j REJECT

    #TIME
    $IPTABLES -A INPUT -p tcp --dport 37 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 37 -i $NET -j REJECT

    #DNS
    $IPTABLES -A INPUT -p tcp --dport 53 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 53 -i $NET -j REJECT

    #WWW
    $IPTABLES -A INPUT -p tcp --dport 80 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 80 -i $NET -j REJECT

    #POP3
    $IPTABLES -A INPUT -p tcp --dport 110 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 110 -i $NET -i REJECT

    #IDENTD
    $IPTABLES -A INPUT -p tcp --dport 113 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 113 -i $NET -j REJECT

    #IMAP
    $IPTABLES -A INPUT -p tcp --dport 143 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 143 -i $NET -j REJECT

    #SMTP Sendmail
    $IPTABLES -A INPUT -p tcp --dport 587 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 587 -i $NET -j REJECT

    #IMAPS
    $IPTABLES -A INPUT -p tcp --dport 993 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 993 -i $NET -j REJECT

    #POP3S
    $IPTABLES -A INPUT -p tcp --dport 995 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 995 -i $NET -j REJECT

    #X11
    $IPTABLES -A INPUT -p tcp --dport 6000 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 6000 -i $NET -j REJECT

    #Protecao contra IP Spoonfing
    $IPTABLES -A INPUT -s 1.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 2.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 7.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 10.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 10.0.0.0/255.0.0.0 -i $NET -j DROP
    $IPTABLES -A INPUT -s 23.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 27.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 31.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 41.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 45.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 60.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 68.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 69.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 70.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 71.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 80.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 88.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 90.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 91.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 92.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 100.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 111.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 112.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 127.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 128.66.0.0/16 -i $NET -j DROp
    $IPTABLES -A INPUT -s 172.0.0.0/255.0.0.0 -i $NET -j DROP
    $IPTABLES -A INPUT -s 172.16.0.0/12 -i $NET -j DROP
    $IPTABLES -A INPUT -s 192.168.0.0/16 -i $NET -j DROP
    $IPTABLES -A INPUT -s 197.0.0.0/16 -i $NET -j DROP
    $IPTABLES -A INPUT -s 255.255.255.255 -i $NET -j DROP

    # Protecao contra o acesso externo a servicos telnet
    $IPTABLES -A INPUT -p tcp -i $NET -d $LANNET --dport 23 -j DROP

    # Protecao contra o acesso externo ao netbios
    $IPTABLES -A INPUT -p tcp -i $NET -d $LANNET --dport 137:139 -j DROP

    # Protecao contra o acesso interno com netbios
    $IPTABLES -A INPUT -p tcp -i $LANNET -d $NET --dport 137:139 -j DROP

    # Libera acesso interno da rede
    $IPTABLES -A INPUT -p tcp --syn -s $LANNET -j ACCEPT

    # Libera ping 'restrinto'
    $IPTABLES -A INPUT -p icmp --icmp-type 8 -i $NET -j ACCEPT
    $IPTABLES -A INPUT -p icmp --icmp-type 0 -i $NET -j ACCEPT
    $IPTABLES -A INPUT -p icmp -s $LANNET -d $WEB -j ACCEPT

    # Bloqueia tudo que nao estiver especificado acima
    $IPTABLES -A INPUT -p tcp --syn -j DROP
    $IPTABLES -A INPUT -p udp -j DROP

    #############################################-------OUTPUT-------#################################################


    # Agora inicia o chain OUTPUT

    # Aceita os pacotes que realmente devem entrar
    $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

    # Perfomance - Setando acesso a web com delay minimo
    $IPTABLES -t mangle -A OUTPUT -o $NET -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
    $IPTABLES -t mangle -A OUTPUT -o $NET -p tcp --dport 80 -j TOS --set-tos Minimize-Delay

    # Liberando Acesso Interno a rede
    $IPTABLES -A OUTPUT -p tcp --syn -s $LANNET -j ACCECPT

    # Liberando Acesso loopback
    $IPTABLES -A OUTPUT -p tcp --syn -s $LANNET -j ACCEPT

    #Bloqueia o resto
    $IPTABLES -A OUTPUT -p tcp --syn -j DROP
    $IPTABLES -A OUTPUT -p udp -j DROP


    ######################################----------FORWARD------####################################################


    # Inicio da chain FORWARD
    # Dropa pacotes invalidos
    $IPTABLES -A FORWARD -m state --state INVALID -j DROP

    # Dropa pacotes TCP indesejaveis
    $IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

    # Aceita os pacotes que realmente devem passar
    $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j DROP

    # Protecao contra Worms
    $IPTABLES -A FORWARD -p tcp --dport 135 -i $LAN -j REJECT

    # Protecao contra syn-flood
    $IPTABLES -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

    # Protecao contra ping da morte
    $IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

    # Protecao contra port scanners avancados (ex.: namp)
    $IPTABLES -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

    # Protecao contra pacotes que podem procurar obter informacoes da rede interna
    $IPTABLES -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP

    # Bloqueando redes P2P

    #imesh
    $IPTABLES -A FORWARD -d 216.35.208.0/24 -j REJECT

    #BearShare and Toad Node
    $IPTABLES -A FORWARD -p tcp --dpot 6346 -j REJECT

    #WinMX
    $IPTABLES -A FORWARD -d 209.61.186.0/24 -j REJECT
    $IPTABLES -A FORWARD -d 64.49.201.0/24 -j REJECT

    # Napigator
    $IPTABLES -A FORWARD -d 209.25.178.0/24 -j REJECT

    #Morpheus
    $IPTABLES -A FORWARD -d 206.142.53.0/24 -j REJECT
    $IPTABLES -A FORWARD -p TCP --dport 1214 -j REJECT

    # Kazza
    $IPTABLES -A FORWARD -d 213.248.112.0/24 -j REJECT
    $IPTABLES -A FORWARD -p TCP --dport 1214 -j REJECT

    # Limewire
    $IPTABLES -A FORWARD -p TCP --dport 6346 -j REJECT

    # Audiogalaxy
    $IPTABLES -A FORWARD -d 64.245.58.0/23 -j REJECT

    # GNUTELLA
    $IPTABLES -A FORWARD -p tcp --dport 6346 -j REJECT

    # eDonkey
    $IPTABLES -A FORWARD -p tcp --dport 4661:4662 -j REJECT
    $IPTABLES -A FORWARD -p udp --dport 4665 -j REJECT

    # Bloquando Servicos de Mensagens Intantaneas
    #AIM
    $IPTABLES -A FORWARD -d login.oscar.aol.com -j REJECT

    #ICQ
    $IPTABLES -A FORWARD -p TCP --dport 5190 -j REJECT
    $IPTABLES -A FORWARD -d login.icq.com -j REJECT

    #MSN
    $IPTABLES -A FORWARD -p TCP --dport 1863 -j REJECT
    $IPTABLES -A FORWARD -d 64.4.13.0/24 -j REJECT

    # Yahoo Messenger
    $IPTABLES -A FORWARD -d cs.yahoo.com -j REJECT

    #Libera acesso interno da Rede
    $IPTABLES -A FORWARD -p tcp --syn -s $LANNET -j ACCEPT

    #WEBFILTER
    $IPTABLES -N WEBFILTER
    $IPTABLES -A WEBFILTER -j REJECT

    # Bloqueia todos os ip´s logados pelo WEBFILTER
    for BLOCKED_WEBFILTER in `grep -v ^# $WEBFILTER_LIST`
    do
    $IPTABLES -A FORWARD -p tcp -s $LANNET -d $BLOCKED_WEBFILTER --dport 80 -j WEBFILTER

    $IPTABLES -A FORWARD -p tcp -s $LANNET -d BLOCKED_WEBFILTER --dport 1080 -j WEBFILTER
    echo " IP Bloqueado pelo WEBFILTER: $BLOCKED_WEBFILTER"
    done

    # Bloqueia String maliciosas pelo WEBFILTER
    # Necessita do Modulo 'string' do pactch-o-matic compilado
    #for BLOCKED_STRING in `grep -v ^# $STRING_LIST`
    #do
    # $IPTABLES -A FORWARD -p tcp -m string --string "BLOCKED_STRING" -j WEBFILTER

    # echo " String Bloqueada pelo WEBFILTER: $BLOCKED_STRING"
    #done

    # Aqui devo habilitar a passagem dos pacotes NAT para IPs full que passaram fora do proxy
    # Ver tabela abaixo NAT onde informa o IP liberado
    #$IPTABLES -A FORWARD -p tcp -s xxx.xxx.xxx.xxx -d $NET -j ACCEPT

    # Bloqueia tudo que nao estiver especificado acima
    $IPTABLES -A FORWARD -p tcp --syn -j DROP
    $IPTABLES -A FORWARD -p udp -j DROP

    ################################################-------NAT-------################################################

    # Aqui Inicia a Chain NAT

    # Exemplos

    # Habilitando o mascaramento de saida
    $IPTABLES -t -nat -A POSTROUTING -o $NET -j MASQUERADE

    # Nessa Chain passara o IP informado fora do Proxy como full
    #$IPTABLES -t nat -A POSTROUTING -s xxx.xxx.xxx.xxx -o $NET -j MASQUERADE

    # Regras para redirecionar portas e ips que estao saindo
    #$IPTABLES -t -nat -A PRETOURING -p tcp --dport 25 -j REDIRECT --to-port 25
    # Exemplos

    # Redireciona a porta 25 do smtp para esta maquina 192.168.xxxxxxx:25
    #$IPTABLES -t -nat -A PREROUTING -p tcp --dport 25 -j DNAT --to 192.168.xxxxx:25

    # Redireciona o trafego http para alpha.algumacoisa.no-ip.org
    #$IPTABLES -t -nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-dest 192.168.xxxxx

    # Redireciona a porta 25 do smtp para o servidor wwww.algumacoisa.com.br com ip xxx.xxx.xxx.xxx:25
    #$IPTABLES -t -nat -A PREROUTING -p tcp --dport 25 -j DNAT --to xxx.xxx.xxx.xxx:25

    # Redireciona o trafego web para o proxy transparente
    #$IPTABLES -t -nat -A PREROUTING -i $LANNET -p tcp --dport 80 -j REDIRECT --to-port 3128
    #$IPTABLES -t -nat -A PREROUTING -i $LANNET -p tcp --dport 8080 -j REDIRECT --to-port 3128

    #SERVIDOR_SMTP_LOCAL="false"
    # se possuir servidor smtp LOCAL na maquina, habilite o 'transparent
    # proxy' do SMTP, permitindo assim que qualquer acesso a servidores SMTP
    # externos sejam atendidos pelo servidor local
    # Basta colocar o IP aqui para passar pelo transparente proxy
    # defina enderecos IPs que nao devem passar pelo transparent proxy
    # 200.244.136.0/24 = dataprev homepage, usa 8080
    # 200.246.143.0/24 = itau software de internet banking


    #BYPASS_TRANSPARENT_PROXY="200.244.136.0/24 200.246.143.0/24 192.168.30.1"


    # Transparent Proxy ( interface INTERNA )
    # IPs que nao devem passar no Transparent Proxy
    #for endereco in $BYPASS_TRANSPARENT_PROXY;
    #do
    # $IPTABLES -t nat -A PREROUTING -p tcp -i $LANNET -d $NET --dport 80 -j ACCEPT
    #done

    # agora sim, transparent proxy pra galera !!!#
    #$IPTABLES -t nat -A PREROUTING -p tcp -i $LANNET --dport 80 -j REDIRECT --to-port 8080

    #$IPTABLES -t nat -A PREROUTING -p tcp -i $LANNET --dport 3128 -j REDIRECT --to-port 8080#
    #$IPTABLES -t nat -A PREROUTING -p tcp -i $LANNET --dport 8080 -j REDIRECT --to-port 8080

    # redirecionando SMTP para servidor smtp local ( interface INTERNA )

    #if [ $SERVIDOR_SMTP_LOCAL == "true" ]; then
    #$IPTABLES -t nat -A PREROUTING -p tcp -i $LANNET --dport 25 -j REDIRECT --to-port 25

    # Aqui vc devera colocar o ip para ser liberado a net
    #endereco="192.168.0.0 192.168.0.1"

    # Liberando NAT para alguns IPs especiais
    #for endereco in $NAT_LIBERADO;
    #do
    #$IPTABLES -t nat -A POSTROUTING -s $endereco -o $NET -m state --state NEW,ESTABLISHED,RELATED -j SNAT --to-source $NET
    #done

    # IPs que nao devem passar no Transparent Proxy
    #for endereco in $BYPASS_TRANSPARENT_PROXY;
    #do
    #$IPTABLES -t nat -A POSTROUTING -p tcp -o $NET -d $endereco --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j SNAT --to-source $NET
    #done

    # Redireciona espertinhos para o site qqer.
    #$IPTABLES -t -nat -A PREROUTING -s 192.168.xxx.xxx -d $WEB -j DNAT --to-destinantion $IPLAN

    #############################################-------FIM-------####################################################


    As informações estão nas chain´s FORWARD e NAT....

    [ ] ´s

    Bau[/u][/b]

  18. #18

    Padrão Liberar 1 IP para passa pelo proxy......

    Citação Postado originalmente por bau
    Então vou postar meu script aqui para que vc´s possam dar uma olhada e opinar.


    VERSION="1.0"
    WHICH="/usr/bin/which"
    UNAME="`$WHICH uname`"
    KERNEL="`$UNAME -r`"
    IFCONFIG="`$WHICH ifconfig`"
    WHEREIS="$WHICH whereis"
    MODPROBE="$WICH modprobe"

    # Server Uptime
    UPTIME="´uptime | sed 's/ [,]//g' | awk '{print $3}'`"
    #echo -e "Server Uptime: $UPTIME"

    # Seta qual o path completo do comando iptables
    #IPTABLES="/usr/local/sbin/iptables"
    IPTABLES"`$WHICH iptables`"
    echo -e "\nPath do comando iptables: $IPTABLES\n"

    echo "Versão do iptables: `IPTABLES -V`"
    echo "Versão do kernel: $KERNEL Server UPtime: $UPTIME"
    echo -e "Versão do Firewall Scritp: $VERSION\n"

    # Interface de rede conectada a Internet
    NET="eth0"

    echo " Interface de rede conectada a Internet: $NET"

    # Interface de rede conectada a rede local
    LAN="eth1"

    echo " Interface de rede conectada a rede local: $LAN"

    # Interface de rede loopback
    LOOP="lo"

    echo " Interface de rede loopback: $LOOP"

    # Ip da interface de rede conectada a Internet
    IPNET="`$IFCONFIG $NET | grep 'inet[^6]' | grep -v ^$NET: | sed 's/[a-zA-Z:]//g' | awk '{print $1}'`"

    echo " Endereço IP da interface de rede conectada a internet: $IPNET"

    # Mascara de sub-rede da interface de rede conectada a internet
    MASKNET="`$IFCONFIG $NET | grep 'Mask[^1]' | grep -v ^$NET: | sed 's/[a-zA-Z:]//g' | awk '{print $3}'`"

    # Dados que entraram pela interface de rede conectada a internet
    DATAINNET="`ifconfig $NET | grep 'RX bytes' | sed 's/[a-zA-Z()]//g' | awk '{print $2}'`"

    DATAINNETSIZE="`ifconfig $NET | grep 'RX bytes' | sed 's/[0-9().:]//g' | awk ' {print $3}'`"
    echo -e "Total de dados que entraram pela interface de rede conectada a internet: $DATAINNET $DATAINNETSIZE"

    # Dados que sairam pela interface de rede conectada a internet
    DATAOUTNET="`ifconfig $NET | grep 'TX bytes' | sed 's/[a-zA-Z()]//g' | awk '{print $4}'`"

    DATAOUTNETSIZE="`ifconfig $NET | grep 'TX bytes' | sed 's/[0-9().:]//g' | awk ' {print $6}'`"

    echo -e "Total de dados que sairam pela interface de rede conectada a internet: $DATAOUTNET $DATAOUTNETSIZE\n"

    # IP da interface de rede conectada a rede local
    IPLAN="`$IFCONFIG $LAN | grep 'inet[^6]' | grep -v ^$LAN: | sed 's/[a-zA-Z:]//g' | awk '{print $1}'`"

    echo "Endereco ip da interface de rede conectada a rede local: $IPLAN"

    # Mascarada de sub-rede da interface conectada a rede local
    MASKLAN="`$IFCONFIG $LAN | grep 'Mask[^1]' | grep -v ^$LAN: | sed 's/[a-zA-z:]//g' | awk '{print $3}'`"

    # Dados que entraram pela interface de rede conectada a rede local
    DATALAN="`ifconfig $LAN | grep 'RX bytes' | sed 's/[a-zA-Z()]//g' | awk '{print $2}'`"
    DATAINLANSIZE="`ifconfig $LAN | grep 'RX bytes' | sed 's/[0-9().:]//g' | awk '{print $3}'`"
    echo -e "Total de dados que entraram pela interface de rede conectada a redelocal: $DATAINLAN $DATAINLANSIZE"

    # Dados que sairam pela interface da rede local
    DATAOUTLAN="`ifconfig $LAN | grep 'TX bytes' | sed 's/[a-zA-Z()]//g' | awk '{print $4}'`"

    DATAOUTLANSIZE="`ifconfig $LAN | grep 'TX bytes' | sed 's/[0-9().:]//g' | awk '{print $6}'`"
    echo -e "Total de dados que sairam pela interface de rede conectada a rede local: $DATAOUTLAN $DATAOUTLANSIZE\n"

    # IP da interface Loopback
    IPLOOP="`$IFCONFIG $LOOP | grep 'inet[^6]' | grep -v ^$LOOP: | sed 's/[a-zA-Z:]//g' | awk '{print $1}'`"
    echo -e "Endereco ip da interface de rede loopback: $IPLOOP\n"

    # Mascara de sub-rede da interface de rede loopback
    MASKLOOP="`$IFCONFIG $LOOP | grep 'Mask[^1]' | sed 's/[a-zA-Z:]//g' | awk '{print $2}'`"

    # Lock File
    LOCK_FILE="/var/run/firewall/firewall.run"

    # Rede Externa (internet)
    OUTNET="$IPNET/$MASKNET"

    # Rede local (intranet)
    LANNET="$IPLAN/$MASKNET"

    # Interface loopback
    LOOPNET="$IPLOOP/$MASKLOOP"

    # FAixa de IPs da Internet
    WEB="0/0"

    # DNS Server
    DNS="`grep nameserver /etc/resolv.conf | awk '{print $2}' | awk 'getline $1'`"
    DNSTMP="/var/run/firewall/dns.tmp"
    touch $DNSTMP
    echo "0" > $DNSTMP
    for i in `grep nameserver /etc/resolv.conf | awk '{print $2}'`
    do
    expr `cat $DNSTMP` + 1 > $DNSTMP
    echo "Endereco IP do Servidor DNS: DNS `cat $DNSTMP` $i"
    done
    rm $DNSTMP

    # Max Error for ping packet loss (10% packet loss)
    MAX_ERROR="10"

    # Blocked IPs
    STUPIDFILTER_LIST="/etc/firewall/blocked/stupidfilter"

    # Blocked Sites
    SITE_LIST="/etc/firewall/blocked/sites"

    # Blocked WormFilter
    WORMFILTER_LIST="/etc/firewall/blocked/wormfilter"

    # Blocked WEBFILTER
    WEBFILTER_LIST="/etc/firewall/blocked/webfilter"
    STRING_LIST="/etc/firewall/blocked/strings"

    # Load Iptables Modules
    $MODPROBE ipt_contrack
    $MODPROBE ip_contrack
    $MODPROBE ip_contrack_ftp
    $MODPROBE ip_contrack_irc
    $MODPROBE ip_nat_ftp
    $MODPROBE ip_nat_irc
    $MODPROBE ip_nat_snmp_basic



    ##########################################-----Limpando Regras------############################################

    # Limpando Regras Existentes
    $IPTABLES -F INPUT
    $IPTABLES -F OUTPUT
    $IPTABLES -F FORWARD
    $IPTABLES -t -nat -F


    #########################################------INPUT--------####################################################

    # Determinando Politica padrão
    $IPTABLES -P INPUT DROP

    # Bloqueia IPs estupidos! por tentativas diversas
    $IPTABLES -N STUPIDFILTER
    $IPTABLES -A STUPIDFILTER -j DROP
    for BLOCKED_STUPIDFILTER in `grep -v ^# $STUPIDFILTER_LIST`
    do
    $IPTABLES -A INPUT -p tcp -s $BLOCKED_STUPIDFILTER -d $IPNET -j REJECT
    $IPTABLES -A INPUT -p udp -s $BLOCKED_STUPIDFILTER -d $IPNET -j REJECT
    echo "IP Bloqueado pelo STUPIDFILTER: $BLOCKED_STUPIDFILTER"
    done

    # Bloqueia pacotes fragmentados
    $IPTABLES -A INPUT -i $NET -f -j DROP

    # Bloqueia qualquer tentativa de conexao de fora para dentro por TCP
    $IPTABLES -A INPUT -i $NET -p tcp --syn -j DROP

    # Protecao contra ataques
    $IPTABLES -A INPUT -m state --state INVALID -j DROP

    # Aceita os pacotes que realmente devem aceitar
    $IPTABLES -A INPUT -i ! $NET -j ACCEPT
    $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    # Acabando com sessoes mortas
    $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j DROP

    #Bloqueando Traceroute
    $IPTABLES -A INPUT -p udp -s $WEB -i $NET --dport 33435:33525 -j DROP

    #Bloqueando uma máquina pelo endereço MAC
    #$IPTABLES -A INPUT -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP

    # Dropando pacotes TCP mal formados
    $IPTABLES -N BAD_TCP_PACKETS
    $IPTABLES -A BAD_TCP_PACKETS -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "Pacotes TCP mal formados!"
    $IPTABLES -A BAD_TCP_PACKETS -p tcp ! --syn -m state --state NEW -j DROP

    #WORMFILTER
    $IPTABLES -N WORMFILTER
    $IPTABLES -A WORMFILTER -j REJECT

    # Bloqueia todos os IP logados pelo WORMFILTER
    for BLOCKED_WORMFILTER in `grep -v ^# $WORMFILTER_LIST`
    do
    $IPTABLES -A INPUT -p tcp -s $BLOCKED_WORMFILTER -i $NET --dport 80 -j WORMFILTER
    echo " IP Bloqueado pelo WORMFILTER: $BLOCKED_WORMFILTER"
    done

    # Protecao contra Port Scanners
    $IPTABLES -N SCANNER
    $IPTABLES -A SCANNER -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: Port Scanner"
    $IPTABLES -A SCANNER -j DROP
    $IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i $NET -j SCANNER
    $IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -i $NET -j SCANNER
    $IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -i $NET -j SCANNER
    $IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i $NET -j SCANNER
    $IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i $NET -j SCANNER
    $IPTABLES -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i $NET -j SCANNER
    $IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i $NET -j SCANNER

    # Esse passo foi tirado do Arno IPTABLES FIREWALL
    $IPTABLES -N VALID_CHECK
    $IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
    $IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
    $IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP
    $IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP
    $IPTABLES -A VALID_CHECK -p tcp --tcp-flags SYN, RST SYN, RST -j DROP
    $IPTABLES -A VALID_CHECK -p tcp --tcp-flags SYN, FIN SYN, FIN -j DROP
    $IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP

    # Liberar Acesso externo a determinadas portas Iniciam como REJECT,
    # Mas se precisar liberar, basta mudar para ACCEPT
    #FTP
    $IPTABLES -A INPUT -p tcp --dport 21 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 21 -i $NET -j REJECT

    #SSH
    $IPTABLES -A INPUT -p tcp --dport 22 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 22 -i $NET -j REJECT

    #SMTP
    $IPTABLES -A INPUT -p tcp --dport 25 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 25 -i $NET -j REJECT

    #TIME
    $IPTABLES -A INPUT -p tcp --dport 37 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 37 -i $NET -j REJECT

    #DNS
    $IPTABLES -A INPUT -p tcp --dport 53 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 53 -i $NET -j REJECT

    #WWW
    $IPTABLES -A INPUT -p tcp --dport 80 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 80 -i $NET -j REJECT

    #POP3
    $IPTABLES -A INPUT -p tcp --dport 110 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 110 -i $NET -i REJECT

    #IDENTD
    $IPTABLES -A INPUT -p tcp --dport 113 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 113 -i $NET -j REJECT

    #IMAP
    $IPTABLES -A INPUT -p tcp --dport 143 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 143 -i $NET -j REJECT

    #SMTP Sendmail
    $IPTABLES -A INPUT -p tcp --dport 587 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 587 -i $NET -j REJECT

    #IMAPS
    $IPTABLES -A INPUT -p tcp --dport 993 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 993 -i $NET -j REJECT

    #POP3S
    $IPTABLES -A INPUT -p tcp --dport 995 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 995 -i $NET -j REJECT

    #X11
    $IPTABLES -A INPUT -p tcp --dport 6000 -i $LAN -j REJECT
    $IPTABLES -A INPUT -p tcp --dport 6000 -i $NET -j REJECT

    #Protecao contra IP Spoonfing
    $IPTABLES -A INPUT -s 1.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 2.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 7.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 10.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 10.0.0.0/255.0.0.0 -i $NET -j DROP
    $IPTABLES -A INPUT -s 23.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 27.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 31.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 41.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 45.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 60.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 68.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 69.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 70.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 71.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 80.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 88.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 90.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 91.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 92.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 100.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 111.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 112.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 127.0.0.0/8 -i $NET -j DROP
    $IPTABLES -A INPUT -s 128.66.0.0/16 -i $NET -j DROp
    $IPTABLES -A INPUT -s 172.0.0.0/255.0.0.0 -i $NET -j DROP
    $IPTABLES -A INPUT -s 172.16.0.0/12 -i $NET -j DROP
    $IPTABLES -A INPUT -s 192.168.0.0/16 -i $NET -j DROP
    $IPTABLES -A INPUT -s 197.0.0.0/16 -i $NET -j DROP
    $IPTABLES -A INPUT -s 255.255.255.255 -i $NET -j DROP

    # Protecao contra o acesso externo a servicos telnet
    $IPTABLES -A INPUT -p tcp -i $NET -d $LANNET --dport 23 -j DROP

    # Protecao contra o acesso externo ao netbios
    $IPTABLES -A INPUT -p tcp -i $NET -d $LANNET --dport 137:139 -j DROP

    # Protecao contra o acesso interno com netbios
    $IPTABLES -A INPUT -p tcp -i $LANNET -d $NET --dport 137:139 -j DROP

    # Libera acesso interno da rede
    $IPTABLES -A INPUT -p tcp --syn -s $LANNET -j ACCEPT

    # Libera ping 'restrinto'
    $IPTABLES -A INPUT -p icmp --icmp-type 8 -i $NET -j ACCEPT
    $IPTABLES -A INPUT -p icmp --icmp-type 0 -i $NET -j ACCEPT
    $IPTABLES -A INPUT -p icmp -s $LANNET -d $WEB -j ACCEPT

    # Bloqueia tudo que nao estiver especificado acima
    $IPTABLES -A INPUT -p tcp --syn -j DROP
    $IPTABLES -A INPUT -p udp -j DROP

    #############################################-------OUTPUT-------#################################################


    # Agora inicia o chain OUTPUT

    # Aceita os pacotes que realmente devem entrar
    $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

    # Perfomance - Setando acesso a web com delay minimo
    $IPTABLES -t mangle -A OUTPUT -o $NET -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
    $IPTABLES -t mangle -A OUTPUT -o $NET -p tcp --dport 80 -j TOS --set-tos Minimize-Delay

    # Liberando Acesso Interno a rede
    $IPTABLES -A OUTPUT -p tcp --syn -s $LANNET -j ACCECPT

    # Liberando Acesso loopback
    $IPTABLES -A OUTPUT -p tcp --syn -s $LANNET -j ACCEPT

    #Bloqueia o resto
    $IPTABLES -A OUTPUT -p tcp --syn -j DROP
    $IPTABLES -A OUTPUT -p udp -j DROP


    ######################################----------FORWARD------####################################################


    # Inicio da chain FORWARD
    # Dropa pacotes invalidos
    $IPTABLES -A FORWARD -m state --state INVALID -j DROP

    # Dropa pacotes TCP indesejaveis
    $IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

    # Aceita os pacotes que realmente devem passar
    $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j DROP

    # Protecao contra Worms
    $IPTABLES -A FORWARD -p tcp --dport 135 -i $LAN -j REJECT

    # Protecao contra syn-flood
    $IPTABLES -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

    # Protecao contra ping da morte
    $IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

    # Protecao contra port scanners avancados (ex.: namp)
    $IPTABLES -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

    # Protecao contra pacotes que podem procurar obter informacoes da rede interna
    $IPTABLES -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP

    # Bloqueando redes P2P

    #imesh
    $IPTABLES -A FORWARD -d 216.35.208.0/24 -j REJECT

    #BearShare and Toad Node
    $IPTABLES -A FORWARD -p tcp --dpot 6346 -j REJECT

    #WinMX
    $IPTABLES -A FORWARD -d 209.61.186.0/24 -j REJECT
    $IPTABLES -A FORWARD -d 64.49.201.0/24 -j REJECT

    # Napigator
    $IPTABLES -A FORWARD -d 209.25.178.0/24 -j REJECT

    #Morpheus
    $IPTABLES -A FORWARD -d 206.142.53.0/24 -j REJECT
    $IPTABLES -A FORWARD -p TCP --dport 1214 -j REJECT

    # Kazza
    $IPTABLES -A FORWARD -d 213.248.112.0/24 -j REJECT
    $IPTABLES -A FORWARD -p TCP --dport 1214 -j REJECT

    # Limewire
    $IPTABLES -A FORWARD -p TCP --dport 6346 -j REJECT

    # Audiogalaxy
    $IPTABLES -A FORWARD -d 64.245.58.0/23 -j REJECT

    # GNUTELLA
    $IPTABLES -A FORWARD -p tcp --dport 6346 -j REJECT

    # eDonkey
    $IPTABLES -A FORWARD -p tcp --dport 4661:4662 -j REJECT
    $IPTABLES -A FORWARD -p udp --dport 4665 -j REJECT

    # Bloquando Servicos de Mensagens Intantaneas
    #AIM
    $IPTABLES -A FORWARD -d login.oscar.aol.com -j REJECT

    #ICQ
    $IPTABLES -A FORWARD -p TCP --dport 5190 -j REJECT
    $IPTABLES -A FORWARD -d login.icq.com -j REJECT

    #MSN
    $IPTABLES -A FORWARD -p TCP --dport 1863 -j REJECT
    $IPTABLES -A FORWARD -d 64.4.13.0/24 -j REJECT

    # Yahoo Messenger
    $IPTABLES -A FORWARD -d cs.yahoo.com -j REJECT

    #Libera acesso interno da Rede
    $IPTABLES -A FORWARD -p tcp --syn -s $LANNET -j ACCEPT

    #WEBFILTER
    $IPTABLES -N WEBFILTER
    $IPTABLES -A WEBFILTER -j REJECT

    # Bloqueia todos os ip´s logados pelo WEBFILTER
    for BLOCKED_WEBFILTER in `grep -v ^# $WEBFILTER_LIST`
    do
    $IPTABLES -A FORWARD -p tcp -s $LANNET -d $BLOCKED_WEBFILTER --dport 80 -j WEBFILTER

    $IPTABLES -A FORWARD -p tcp -s $LANNET -d BLOCKED_WEBFILTER --dport 1080 -j WEBFILTER
    echo " IP Bloqueado pelo WEBFILTER: $BLOCKED_WEBFILTER"
    done

    # Bloqueia String maliciosas pelo WEBFILTER
    # Necessita do Modulo 'string' do pactch-o-matic compilado
    #for BLOCKED_STRING in `grep -v ^# $STRING_LIST`
    #do
    # $IPTABLES -A FORWARD -p tcp -m string --string "BLOCKED_STRING" -j WEBFILTER

    # echo " String Bloqueada pelo WEBFILTER: $BLOCKED_STRING"
    #done

    # Aqui devo habilitar a passagem dos pacotes NAT para IPs full que passaram fora do proxy
    # Ver tabela abaixo NAT onde informa o IP liberado
    #$IPTABLES -A FORWARD -p tcp -s xxx.xxx.xxx.xxx -d $NET -j ACCEPT

    # Bloqueia tudo que nao estiver especificado acima
    $IPTABLES -A FORWARD -p tcp --syn -j DROP
    $IPTABLES -A FORWARD -p udp -j DROP

    ################################################-------NAT-------################################################

    # Aqui Inicia a Chain NAT

    # Exemplos

    # Habilitando o mascaramento de saida
    $IPTABLES -t -nat -A POSTROUTING -o $NET -j MASQUERADE

    # Nessa Chain passara o IP informado fora do Proxy como full
    #$IPTABLES -t nat -A POSTROUTING -s xxx.xxx.xxx.xxx -o $NET -j MASQUERADE

    # Regras para redirecionar portas e ips que estao saindo
    #$IPTABLES -t -nat -A PRETOURING -p tcp --dport 25 -j REDIRECT --to-port 25
    # Exemplos

    # Redireciona a porta 25 do smtp para esta maquina 192.168.xxxxxxx:25
    #$IPTABLES -t -nat -A PREROUTING -p tcp --dport 25 -j DNAT --to 192.168.xxxxx:25

    # Redireciona o trafego http para alpha.algumacoisa.no-ip.org
    #$IPTABLES -t -nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-dest 192.168.xxxxx

    # Redireciona a porta 25 do smtp para o servidor wwww.algumacoisa.com.br com ip xxx.xxx.xxx.xxx:25
    #$IPTABLES -t -nat -A PREROUTING -p tcp --dport 25 -j DNAT --to xxx.xxx.xxx.xxx:25

    # Redireciona o trafego web para o proxy transparente
    #$IPTABLES -t -nat -A PREROUTING -i $LANNET -p tcp --dport 80 -j REDIRECT --to-port 3128
    #$IPTABLES -t -nat -A PREROUTING -i $LANNET -p tcp --dport 8080 -j REDIRECT --to-port 3128

    #SERVIDOR_SMTP_LOCAL="false"
    # se possuir servidor smtp LOCAL na maquina, habilite o 'transparent
    # proxy' do SMTP, permitindo assim que qualquer acesso a servidores SMTP
    # externos sejam atendidos pelo servidor local
    # Basta colocar o IP aqui para passar pelo transparente proxy
    # defina enderecos IPs que nao devem passar pelo transparent proxy
    # 200.244.136.0/24 = dataprev homepage, usa 8080
    # 200.246.143.0/24 = itau software de internet banking


    #BYPASS_TRANSPARENT_PROXY="200.244.136.0/24 200.246.143.0/24 192.168.30.1"


    # Transparent Proxy ( interface INTERNA )
    # IPs que nao devem passar no Transparent Proxy
    #for endereco in $BYPASS_TRANSPARENT_PROXY;
    #do
    # $IPTABLES -t nat -A PREROUTING -p tcp -i $LANNET -d $NET --dport 80 -j ACCEPT
    #done

    # agora sim, transparent proxy pra galera !!!#
    #$IPTABLES -t nat -A PREROUTING -p tcp -i $LANNET --dport 80 -j REDIRECT --to-port 8080

    #$IPTABLES -t nat -A PREROUTING -p tcp -i $LANNET --dport 3128 -j REDIRECT --to-port 8080#
    #$IPTABLES -t nat -A PREROUTING -p tcp -i $LANNET --dport 8080 -j REDIRECT --to-port 8080

    # redirecionando SMTP para servidor smtp local ( interface INTERNA )

    #if [ $SERVIDOR_SMTP_LOCAL == "true" ]; then
    #$IPTABLES -t nat -A PREROUTING -p tcp -i $LANNET --dport 25 -j REDIRECT --to-port 25

    # Aqui vc devera colocar o ip para ser liberado a net
    #endereco="192.168.0.0 192.168.0.1"

    # Liberando NAT para alguns IPs especiais
    #for endereco in $NAT_LIBERADO;
    #do
    #$IPTABLES -t nat -A POSTROUTING -s $endereco -o $NET -m state --state NEW,ESTABLISHED,RELATED -j SNAT --to-source $NET
    #done

    # IPs que nao devem passar no Transparent Proxy
    #for endereco in $BYPASS_TRANSPARENT_PROXY;
    #do
    #$IPTABLES -t nat -A POSTROUTING -p tcp -o $NET -d $endereco --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j SNAT --to-source $NET
    #done

    # Redireciona espertinhos para o site qqer.
    #$IPTABLES -t -nat -A PREROUTING -s 192.168.xxx.xxx -d $WEB -j DNAT --to-destinantion $IPLAN

    #############################################-------FIM-------####################################################


    As informações estão nas chain´s FORWARD e NAT....

    [ ] ´s

    Bau[/u][/b]
    Caro Bau, encontrei alguns erro no seu script, e aconselho que vc contrate um proficional na arera para corrigir os mesmo ou vc mesmo de uma estuda na ferramenta iptables e olhe regra por regra..

    obs: na chain Forward recomendo vc deixa ela como drop ao inves de colocar um regra com drop all no final, outra coisa é em relacao a arquiterua do seu firewall.

    bom.. o resto eh contigo..

    abraço e boa sorte

  19. #19

    Padrão Liberar 1 IP para passa pelo proxy......

    Citação Postado originalmente por Brenno
    desculpa mas ainda não concordo com sua regra "inversa"

    o nosso colega disse q tem 1 (UM) firewall e um (1) proxy em maquinas separada, o proxy dele não eh transparente. ou seja, se ele não definir no browser o ip da maquina onde ta o proxy, o pacote vai direto para maquina rotiadora, que é o firewall. então entra a questao que eu falei, quando o chefe do nosso amigo for abri seu navegador e colocar um site, esse pacote vai chegar no firewall e vai consultar a primeira tabela que a nat(caso vc n conhecha como funcionar o fluxo de dados na ferramenta iptables, eu aconselho vc da uma olhada no guia focalinux) ai vem a questao que eu tava explicando, se tiver como drop all a tabena nat como a filter, ele irar ter q fazer do jeito q eu disse, ou seja, nesse caso não existe regra inversa, ... caso ainda continue sem entender, eu perco um tempo e faço um desenho e te mando eheheheh

    sem mais...

    aheuraruear piada isso, ainda não conseguiu entender o que eu escrevi, e assim tirou conclusões erradas ao meu ver, talvez você deva perder seu tempo lendo o guia foca ao invés de fazer desenhos no paint... eehehehehehehe

    Depois dessa acho que vou parar de visitar esse tópico, a questão está mais do que resolvida...
    [ ] 's

  20. #20

    Padrão Liberar 1 IP para passa pelo proxy......

    Citação Postado originalmente por aledr
    Citação Postado originalmente por Brenno
    desculpa mas ainda não concordo com sua regra "inversa"

    o nosso colega disse q tem 1 (UM) firewall e um (1) proxy em maquinas separada, o proxy dele não eh transparente. ou seja, se ele não definir no browser o ip da maquina onde ta o proxy, o pacote vai direto para maquina rotiadora, que é o firewall. então entra a questao que eu falei, quando o chefe do nosso amigo for abri seu navegador e colocar um site, esse pacote vai chegar no firewall e vai consultar a primeira tabela que a nat(caso vc n conhecha como funcionar o fluxo de dados na ferramenta iptables, eu aconselho vc da uma olhada no guia focalinux) ai vem a questao que eu tava explicando, se tiver como drop all a tabena nat como a filter, ele irar ter q fazer do jeito q eu disse, ou seja, nesse caso não existe regra inversa, ... caso ainda continue sem entender, eu perco um tempo e faço um desenho e te mando eheheheh

    sem mais...

    aheuraruear piada isso, ainda não conseguiu entender o que eu escrevi, e assim tirou conclusões erradas ao meu ver, talvez você deva perder seu tempo lendo o guia foca ao invés de fazer desenhos no paint... eehehehehehehe

    Depois dessa acho que vou parar de visitar esse tópico, a questão está mais do que resolvida...
    [ ] 's

    já li muito o guia, e ainda vou continuar lendo, em relacao a entender o que vc escreveu, eu entendir muito bem,
    eu trabalho com iptables a quase 3 anos, e vc?
    bom isso não vem ao caso.

    agora vou argumentar oq vc falou no post passado, pois no outro post vc disse q eu n entendir a situação do bau, agora nesse vc ta falando que eu n entendir oq vc escreveu, por isso vou mostrar oq vc escreveu e dizer o pq;
    Ele tem um firewall e um proxy em máquinas separadas, mas se pra chegar ao firewall ele tivesse que passar pela máquina que tem o proxy (não pelo proxy, mas pela máquina), o caminho inverso deveria estar aberto, um caminho só de ida para os pacotes não resolveria, ele passaria pela máquina com o proxy e chegaria até o firewall, quando o firewall fosse retornar o pacote, ele tentaria passar pela máquina com o proxy e seria parado na chain Forward.

    se ele não por ip da maquina onde ta o proxy no browser de qualquer maquina cliente, o pacote de vai direto a maquina rotiadora, que o firewall.

    vc começa errando ae, pois o pacote n irar passa pelo proxy , e sim, vai direto para a maquina rotiadora que o firewall (isso quando ele n coloca o ip do proxy no browser na maquina cliente)

    segunda situação (que n eh o caso do bau) ,
    quando vc colocar o ip do proxy na no browser da maquina cliente, esse pacote irar ate o servidor proxy, que por sua vez irar fazer a consulta na internet, entao bastaria liberar a porta do proxy que a default 3128 do squid no firewall da na chain forward

    iptables -A FORWARD -s ipdamaquinaproxy -p tcp --dport 3128 -j ACCEPT


    voltando a primeira situação.


    quando o pacote chegar direto ao firewall ele consultarar a tabela nat


    e se la tiver a regra que geralmente a maiorias das pessoas colocam

    iptables -t nat -A POSTROUNTIG -o ethinternet -j MASQUERADE

    o pacote irar entrar nessa regra e logo em seguida irar consultar a chain forward da tabela filter

    iptables -s ipdochefe -p tcp -j ACCEPT

    ou seja, o ip do chefe estará sendo liberardo tudo pra fora.

    em vez de ficar rindo, achando piada, pq vc nao agurmenta? pois até agora oq vc agurmentou não tem nem um nexo e mostra seu amadorismo, se não tem conhecimento para discutir tal assunto, pelo menos seja humilde dizendo que nao saber, ou reconlhar a sua insignificância.

    sem mais...