+ Responder ao Tópico



  1. Então cara!
    O seguinte!

    Quando você coloca um "$" antes de qualquer nome, como você fez ali, o sistema pensa que isso é uma variavel! E o que você colocou ali não é!

    O que você tem que colocar ali é só o ip mesmo e ta tudo certo!

    Que regra você ta usando para jogar o trafego no squid?

    Umas regras basicas do iptables que deveria funcionar para o caso de só compartilhar internet

    Código :
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    iptables -t filter -A FORWARD -s 192.168.0.0/24 -o eth0 -j ACCEPT
    iptables -t filter -A FORWARD -o eth1 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
    O parametro -o do iptables assume que seja uma interface, não um IP!
    Eu recomendo fortemente que você leia o manual do iptables!
    Ele ensina todas essas coisas básicas de sintax!

    O DNS também precisa de UDP!

    E se você não colocar a politica padrão do iptables da chain FORWARD para DROP essas regras de ACCEPT não SERVEM PARA NADA!

    Uma coisa você colocou seu "Gateway" com o ip 192.168.0.10, isso esta sendo entregue por DHCP para os seus hosts? Porque se os seus hosts não sabem que ele é o gateway (ou que você de alguma outra forma envie o trafego para lá) NUNCA VAI FUNCIONAR!

  2. blz essa parte do $ eu entendi perfeitamente agora.

    cara o squid eu sei q ta funcionando, mas realmente não sei te explica q regra ta jogando o trafego pra la naum.

    o outlook e o ftp funcionaram agora, consegui fazer o arquivo de inicialização funcionar, ta liberando pra um IP, só consegui assim por enquanto.

    Código :
    !/bin/sh
     
    #iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    #iptables -t filter -A FORWARD -i $192.168.0.3 -p tcp -m multiport --destination-port 21,20,53,110,80,25 -j ACCEPT
    #iptables -t filter -A FORWARD -o $192.168.0.3 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    ### COMPARTILHA CONEXAO ###
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward
     
    ### LIBERA PORTAS ###
    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 21 -j ACCEPT
    iptables -A INPUT -p tcp --destination-port 20 -j ACCEPT
     
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j DNAT --to-dest 192.168.0.2
    iptables -A FORWARD -p tcp -i eth0 --dport 25 -d 192.168.0.2 -j ACCEPT
     
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 110 -j DNAT --to-dest 192.168.0.2
    iptables -A FORWARD -p tcp -i eth0 --dport 110 -d 192.168.0.2 -j ACCEPT

    esse comando de cima q ta liberando a porta 25 e 110 pro IP 192.168.0.2 funcionaria liberando para todos os IPs dessa forma ?

    Código :
     iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j DNAT --to-dest 192.168.0.2-192.168.0.254
    iptables -A FORWARD -p tcp -i eth0 --dport 25 -d 192.168.0.2-192.168.0.254 -j ACCEPT

    eu comentei as primeiras linha pq eu ja tinha tentado com elas e não funcionou, então eu adcionei essas abaixo pra testar, de alguma maneira funcionou.
    vou ler o manual do iptables pode dexar.

    Sim o IP do servidor é 192.168.0.10 mas eh claro q eu configurei o proxy e a rede de todos os clientes com esse IP como gateway.
    Última edição por ogait666; 25-03-2008 às 13:37.



  3. Então cara...
    Ai você tem um problema bem grande!
    Você não sabe como sua rede funciona!

    As regras que você ta colocando ali para os hosts não tem sentido, porque você ta jogando a porta 25 ( que é do servidor para o seu host, que é o cliente! Recomendo estudar também tcp/ip)!

    Acho que para te ajudar melhor só sabendo mesmo como ta configurado esse seu servidor! Preciso da saida desses comandos aqui a principio:

    Código :
    iptables -t filter -L -v -n
    iptables -t nat -L -v -n

  4. cara eu entendo de tcp/ip o problema eh o seguinte eu não sei pra q serve -t -c -p -A então não da pra eu saber qual comando eh util e qual naum eh, então eu fui simplesmente testando os comandos até funcionar.

    iptables -t filter -L -v -n

    Código :
    root@Server:/var/log/squid# iptables -t nat -L -v -n
    Chain PREROUTING (policy ACCEPT 964 packets, 106K bytes)
     pkts bytes target     prot opt in     out     source               destination
        0     0 DNAT       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25 to:192.168.0.2
        0     0 DNAT       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:110 to:192.168.0.2
        0     0 DNAT       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25 to:192.168.0.2
        0     0 DNAT       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:110 to:192.168.0.2
     
    Chain POSTROUTING (policy ACCEPT 29 packets, 1945 bytes)
     pkts bytes target     prot opt in     out     source               destination
      957 56501 MASQUERADE  0    --  *      eth0    0.0.0.0/0            0.0.0.0/0
        0     0 MASQUERADE  0    --  *      eth0    0.0.0.0/0            0.0.0.0/0
     
    Chain OUTPUT (policy ACCEPT 827 packets, 50496 bytes)
     pkts bytes target     prot opt in     out     source               destination


    iptables -t nat -L -v -n

    Código :
    root@Server:/var/log/squid# iptables -t filter -L -v -n
    Chain INPUT (policy ACCEPT 22159 packets, 9940K bytes)
     pkts bytes target     prot opt in     out     source               destination
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:110
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:20
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:110
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:20
     
    Chain FORWARD (policy ACCEPT 4834 packets, 993K bytes)
     pkts bytes target     prot opt in     out     source               destination
        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            192.168.0.2         tcp dpt:25
        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            192.168.0.2         tcp dpt:110
        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            192.168.0.2         tcp dpt:25
        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            192.168.0.2         tcp dpt:110
     
    Chain OUTPUT (policy ACCEPT 22124 packets, 14M bytes)
     pkts bytes target     prot opt in     out     source               destination

    vlw



  5. Então meu amigo...
    Por esse motivo que eu te digo, leia o man do iptables Man page of IPTABLES

    Isso vai te ajudar a entender as regras! E para que serve cada chain!

    Vendo essas saidas ai não tem nada que esteja redirecionando o trafego para um servidor proxy! Eu faria um script basico assim para compartilhar a internet:

    Código :
    iptables -t filter -F
    iptables -t filter -Z
    iptables -t filter -X
     
    iptables -t nat -F
    iptables -t nat -Z
    iptables -t nat -X
     
    # Isso habilita o encaminhamento de pacotes no linux
    echo "1" > /proc/sys/net/ipv4/ip_forward
     
    # Isso habilita o nat na interface eth0
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    Isso é mais do que suficiente para habilitar o compartilhamento de internet usando um linux e não mudando as politicas padrão das chains!

    Se você quer liberar só algumas coisas é preciso acrescentar regras como:

    Código :
     
    # Muda a politica padrão da chain forward para DROP
    # Essa chain é onde os pacotes em transito pelo firewall usam!
    # Dessa forma só o que for EXPLICITAMENTE permitido vai passar!
    # Para voltar a ACCEPT faça o seguinte "iptables -P FORWARD ACCEPT"
    iptables -P FORWARD DROP
     
    # Permitindo que as conexões voltem!
    iptables -t filter -A FORWARD -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    # Ai você vai liberando o acesso aos serviços que você quer permitir
    iptables -t filter -A FORWARD -s 192.168.0.2 -p tcp --dport 80 -j ACCEPT
    Olha cara se isso não funciona ai já não é culpa do iptables, deve ter alguma outra coisa que esta configurada de forma errada!






Tópicos Similares

  1. Problemas com IPTABLES
    Por no fórum Servidores de Rede
    Respostas: 4
    Último Post: 20-01-2004, 10:35
  2. Problema com Iptables em Cache Server
    Por no fórum Servidores de Rede
    Respostas: 0
    Último Post: 04-10-2003, 00:53
  3. Problemas com IPTABLES
    Por no fórum Servidores de Rede
    Respostas: 1
    Último Post: 11-07-2003, 16:38
  4. Problemas com IPTABLES
    Por no fórum Servidores de Rede
    Respostas: 0
    Último Post: 26-06-2003, 10:00
  5. problemas com iptables
    Por no fórum Servidores de Rede
    Respostas: 15
    Último Post: 05-02-2003, 18:00

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L