+ Responder ao Tópico



  1. #1

    Padrão Acesso direto

    ola pessoal.
    Tenho um problema, meu cenario é:

    Tenho um Proxy squid com iptables, tem 3 placas de rede

    1º placa WAN
    2º placa LAN
    3º placa wireless, esa ligado diteto a um AP. Uso publico.

    entao...

    ta tudo funcionando perfeito, so que eu gostaria q placa d rede wireless que esta ligado ao AP, os usuarios navegassem direto sem passar pelo proxy.

    eu ja fiz com que a placa da wireless recebece um ip diferente da placa de rede lan pelo dhcpd.
    agora so nao consigo redirecionar a navegação para essa placa.

    alguem aki ja fez isso? podem me dar uma luz hehehe.

    obrigado.

  2. #2

    Padrão

    quais as regras de masquerade e de redirect (caso tenha proxy transparente) que voce tem implantado para a sua rede interna?

  3. #3

    Padrão

    Amigo, como o comentário anterior, é só você postar suas regras para te ajudar, mas eu acho que no seu caso vai ser só negar o redirecionamento automatico do proxy transparente para interface que você quer passagem livre.

    Sds,

  4. #4

    Padrão Script

    Ola segue os meus scripts.

    Iptables :

    #! /bin/sh
    #description: Inicializao
    #
    # chkconfig: 2345 80 30
    # processname: iptables
    # pidfile: /var/run/iptabless.pid
    #
    #
    # SUPORTVILLE INFORMATICA - Israel
    #
    # Descricao
    #
    # Compartilhamento de internet via NAT com bloqueio de entrada e roteamento
    #
    # Definir variaveis
    INTERWAN=eth1 # A interface eth0 eve possui o IP invalido da rede (WAN)
    INTERLAN=eth2 # A interface eth1 deve possuir seu IP valido da rede (LAN)
    INTERDMZ=eth3 # A interface eth2 deve possuir seu IP valido da rede (DMZ)
    REDEMASK=10.0.0.0/24 # Coloque no REDEMASK a faixa de IP da sua rede local mais a mascara
    #
    # Limpa antigas regras
    iptables -F
    iptables -F -t nat
    iptables -F -t mangle
    #
    # Carregar funcoes da rede
    . /etc/rc.d/init.d/functions
    . /etc/sysconfig/network

    if [ ${NETWORKING} = "no" ]
    then
    exit 0
    fi

    case "$1" in
    start)
    printf "Iniciando o servico de %s: " "iptables"
    echo
    # Ativa roteamento
    echo 1 > /proc/sys/net/ipv4/ip_forward

    # Carrega modulos IPTABLES
    modprobe ip_tables

    # Carregar modulos FTP
    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp

    # Carregar modulos NAT
    modprobe iptable_nat

    # Regras do firewall

    # Define cadeias padroes
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT ACCEPT

    # Define regras do tipo INPUT
    # DMZ #

    iptables -t nat -A POSTROUTING -o eth3 -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward

    ######

    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -i $INTERLAN -p tcp --dport 3128 -j ACCEPT
    iptables -t nat -A POSTROUTING -o $INTERLAN -j MASQUERADE

    #####

    iptables -A INPUT -p tcp --dport 22 -j ACCEPT # Libera porta SSH
    iptables -A INPUT -p tcp --dport 3389 -j ACCEPT # Libera porta WTS
    iptables -A INPUT -p udp --dport 3389 -j ACCEPT # Libera porta WTS
    iptables -A INPUT -p tcp --dport 5901 -j ACCEPT # Libera porta WTS
    iptables -A INPUT -p tcp --dport 81 -j ACCEPT # Libera porta WTS


    # Compartilhar eth1 para pop smtp e dns com destino $REDEMASK
    iptables -t nat -A POSTROUTING -s $REDEMASK -o $INTERWAN -p tcp --dport 25 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s $REDEMASK -o $INTERWAN -p tcp --dport 110 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s $REDEMASK -o $INTERWAN -p tcp --dport 465 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s $REDEMASK -o $INTERWAN -p tcp --dport 995 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s $REDEMASK -o $INTERWAN -p udp --dport 53 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s $REDEMASK -o $INTERWAN -p tcp --dport 53 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s $REDEMASK -o $INTERWAN -p tcp --dport 3456 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s $REDEMASK -o $INTERWAN -p tcp --dport 3389 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s $REDEMASK -o $INTERWAN -p tcp --dport 81 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s $REDEMASK -o $INTERWAN -p tcp --dport 3550 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s $REDEMASK -o $INTERWAN -p tcp --dport 4550 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s $REDEMASK -o $INTERWAN -p tcp --dport 3650 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s $REDEMASK -o $INTERWAN -p tcp --dport 5550 -j MASQUERADE

    # Acesso As cameras

    iptables -A FORWARD -m state --state NEW -p tcp --dport 81 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -i $INTERWAN --dport 81 -j DNAT --to-dest 10.0.0.16:81
    iptables -A FORWARD -m state --state NEW -p tcp --dport 3550 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -i $INTERWAN --dport 3550 -j DNAT --to-dest 10.0.0.16:3550
    iptables -A FORWARD -m state --state NEW -p tcp --dport 4550 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -i $INTERWAN --dport 4550 -j DNAT --to-dest 10.0.0.16:4550
    iptables -A FORWARD -m state --state NEW -p tcp --dport 3650 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -i $INTERWAN --dport 3650 -j DNAT --to-dest 10.0.0.16:3650
    iptables -A FORWARD -m state --state NEW -p tcp --dport 5550 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -i $INTERWAN --dport 5550 -j DNAT --to-dest 10.0.0.16:5550

    # Acesso VPN

    iptables -A FORWARD -m state --state NEW -p tcp --dport 8070 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -i $INTERWAN --dport 8070 -j DNAT --to-dest 10.0.0.250:8070
    iptables -A FORWARD -m state --state NEW -p tcp --dport 47 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -i $INTERWAN --dport 47 -j DNAT --to-dest 10.0.0.250:47
    iptables -A FORWARD -m state --state NEW -p tcp --dport 3389 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -i $INTERWAN --dport 3389 -j DNAT --to-dest 10.0.0.250:3389
    iptables -A FORWARD -m state --state NEW -p tcp --dport 1771 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -i $INTERWAN --dport 1771 -j DNAT --to-dest 10.0.0.250:1771
    iptables -A FORWARD -m state --state NEW -p tcp --dport 1723 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -i $INTERWAN --dport 1723 -j DNAT --to-dest 10.0.0.250:1723
    iptables -A FORWARD -m state --state NEW -p tcp --dport 65535 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -i $INTERWAN --dport 65535 -j DNAT --to-dest 10.0.0.250:65535

    iptables -A FORWARD -m state --state NEW -p tcp --dport 5901 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -i $INTERWAN --dport 5901 -j DNAT --to-dest 10.0.0.1:5901

    # Define regras do tipo FORWARD
    iptables -A FORWARD -o $INTERLAN -m state --state NEW,INVALID -j ACCEPT
    iptables -A FORWARD -o $INTERLAN -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -i $INTERLAN -s $REDEMASK -j ACCEPT

    # Define regras de bloqueio
    iptables -A FORWARD -j ACCEPT
    iptables -A INPUT -j ACCEPT

    # FIM Regras do firewall

    ;;
    stop)
    printf "Parando o servico de %s: " "iptables"
    echo
    # Remover regras quando estado estiver STOP
    #
    # Limpar regras para o padrao definido

    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -F
    iptables -F -t nat
    iptables -F -t mangle

    ;;

    # Restartando o IPTABLES
    #
    restart)
    service iptables stop
    service iptables start
    echo
    ;;
    *)
    printf "Uso: iptables (start|stop|restart)"
    echo
    ;;

    esac
    exit 0

    -------------------

    É bem basico mesmo.
    --------------------

    Squid:

    # SUPORTVILLE INFORMATICA - Israel
    #
    #
    # Criar diretorio squid e liberar permicoes
    #
    # mkdir /var/spool/squid
    # chmod 777 /var/spool/squid
    #
    # Criar e liberar o arquivo de log:
    #
    # chmod 777 /var/log/squid
    # touch /var/log/squid/access.log
    # chmod 777 /var/log/squid/access.log
    #
    # Iniciar Squid somente pra este boot:
    # service squid start
    #
    # configurar pra iniciar Squid automaticamente em todo boot.
    # chkconfig --level 35 squid on
    #
    # Definir nome do host firewall
    visible_hostname pcfw01

    # Definir em que porta vai rodar o squid

    http_port 10.0.0.1:3128

    # Definir tamanho de memoria cache
    cache_mem 60 MB

    # Definir tamanho maximo de objeto
    maximum_object_size 4096 KB

    # Definir tamanho minimo de objeto
    minimum_object_size 0 KB

    # Definir o local, tamanho, pasta e sub-pasta do cache
    cache_dir ufs /var/spool/squid 100 16 256

    # Definir o local para gravar os logs de acesso
    cache_access_log /var/log/squid/access.log

    # Definir o local para gravar os logs do cache
    cache_log /var/log/squid/cache.log

    # Definir o local para gravar os logs do store
    cache_store_log /var/log/squid/store.log

    # Definir o local onde vai ter a tabela mine
    mime_table /etc/squid/mime.conf

    # Definir a mask dos usuarios que vao logar nos arquivos de saida
    client_netmask 255.255.255.255

    # Definir a pasta da mensagens de site negados por padrao serao exibidas em portugues
    error_directory /usr/share/squid/errors/Portuguese/

    # Padroes
    refresh_pattern ^ftp: 1440 20% 10080
    refresh_pattern ^gopher: 1440 0% 1440
    refresh_pattern . 0 20% 4320

    # Definir ACLs
    acl all src 0.0.0.0/0.0.0.0
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl SSL_ports port 443 563
    acl Safe_ports port 80 21 443 563 70 210 1025-65535
    acl Safe_ports port 280 # http-mgmt
    acl Safe_ports port 488 # gss-http
    acl Safe_ports port 591 # filemaker
    acl Safe_ports port 777 # multiling http
    acl CONNECT method CONNECT
    acl redelocal src 10.0.0.0/24

    #acl semproxy src 192.168.0.200

    #acl nodownload url_regex -i ftp .pif .mpeg .mpg .avi .mp3 .wav .wma .iso .rar

    acl liberasite url_regex "/etc/squid/liberasite.txt

    # Definir acoes

    http_access allow manager localhost
    http_access allow liberasite
    http_access deny manager
    #http_access allow semproxy
    http_access deny CONNECT !SSL_ports
    #http_access deny nodownload

    # acl pra bloquear palavras nos enderecos e liberar excessoes
    acl negapalavra url_regex "/etc/squid/negapalavra.txt"
    acl liberapalavra url_regex "/etc/squid/liberapalavra.txt"
    acl negasites url_regex "/etc/squid/negasites.txt"

    http_access allow liberapalavra all
    http_access deny negapalavra all
    http_access deny negasites all

    # finalizar acoes regras
    http_access allow redelocal
    #http_access deny all
    icp_access allow all
    miss_access allow all
    cache_effective_user nobody
    cache_effective_group nobody

  5. #5

    Padrão

    Amigo, pelo seu script vi que voce nao faz nenhum proxy transparente. Resumindo, o usuario consegue acessar qualquer coisa desde que as 3 condições estejam satisfeitas:
    - FORWARD ACCEPT;
    - MASQUERADE;
    - echo 1 > /proc/sys/net/ipv4/ip_forward;

    pelo que eu vi, voce tem o modulo de encaminhamentos ativo, voce tem a sua FORWARD ACCEPT, porem falta um MASQUERADE;

    iptables -t nat -A POSTROUTING -s $redewifi -o $if_net -j MASQUERADE

  6. #6

    Padrão

    o q quer dizer esse $if_net

    como devo colocar essa regra no meu iptables.

    se puder corrigi-lo para mim.


    obrigado

  7. #7

    Padrão

    Citação Postado originalmente por israelcunha Ver Post
    o q quer dizer esse $if_net

    como devo colocar essa regra no meu iptables.
    $if_net é uma variável e, como tal, deve ser definida com algum valor antes de ser utilizada. Ela representa a interface de conexão do seu servidor com a internet (por exemplo, a interface ligada ao modem).

    Você pode colocar a linha no seu código exatamente da forma como o rogeriokde te passou.
    Mas antes disso, de preferência no início do código, você deve definir a variável if_net:

    Código :
    if_net=eth1
    isso se a interface de conexão com a internet for a eth1.

    abracos

  8. #8

    Padrão

    Intendi...

    vou tentar depois eu posto

    obrigado

    abs