Autor Tópico: Iptables + Squid lento  (Lida 15273 vezes)

Offline slavik

  • Usuário Ubuntu
  • *
  • Mensagens: 20
    • Ver perfil
Re: Iptables + Squid lento
« Resposta #15 Online: 15 de Outubro de 2013, 15:18 »
Coloquei o protocolo e resolveu.
Ficou assim:

Código: [Selecionar]
$IPT -t nat -A PREROUTING -i $IF_INT -d $IP_WEB -p tcp --dport 80 -j RETURN

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Iptables + Squid lento
« Resposta #16 Online: 15 de Outubro de 2013, 15:20 »
Sim, tentei com o ip local e o ip externo.
Os dois geraram erro.

E outra coisa, a regra

Código: [Selecionar]
$IPT -A INPUT -p tcp -i $IF_WEB --dport 80 -j ACCEPT
Não supriria? Porque ela está liberando a entrada de pacotes na porta 80, certo?

Não, não é a mesma coisa. Aí vc está autorizando o recebimento de pacotes destinados à porta 80 de sua máquina quando a interface por onde eles foram recebidos for a designada na variável IF_WEB.

Na regra que eu te passei, você está determinando que quando o pacote for destinado à porta 80, no endereço IP designado na variável MEU_IP, ele não vai ter nenhum processamento de NAT --- não é questão de permitir ou bloquear, e sim se vai ter NAT ou não.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Iptables + Squid lento
« Resposta #17 Online: 15 de Outubro de 2013, 15:20 »
Coloquei o protocolo e resolveu.
Ficou assim:

Código: [Selecionar]
$IPT -t nat -A PREROUTING -i $IF_INT -d $IP_WEB -p tcp --dport 80 -j RETURN

Bem lembrado, eu sempre esqueço disso.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline slavik

  • Usuário Ubuntu
  • *
  • Mensagens: 20
    • Ver perfil
Re: Iptables + Squid lento
« Resposta #18 Online: 15 de Outubro de 2013, 15:30 »
Então se eu fizer isso

Código: [Selecionar]
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
Eu estarei aceitando absolutamente tudo, em todas as interfaces, em todos os ip's?

Offline slavik

  • Usuário Ubuntu
  • *
  • Mensagens: 20
    • Ver perfil
Re: Iptables + Squid lento
« Resposta #19 Online: 15 de Outubro de 2013, 15:41 »
Na porta 80, é claro.

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Iptables + Squid lento
« Resposta #20 Online: 15 de Outubro de 2013, 15:45 »
Então se eu fizer isso

Código: [Selecionar]
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
Eu estarei aceitando absolutamente tudo, em todas as interfaces, em todos os ip's? [Na porta 80, é claro]

Exato.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline slavik

  • Usuário Ubuntu
  • *
  • Mensagens: 20
    • Ver perfil
Re: Iptables + Squid lento
« Resposta #21 Online: 15 de Outubro de 2013, 16:28 »
Então, nesse caso essa linha

Código: [Selecionar]
$IPT -t nat -A PREROUTING -i $IF_INT -d $IP_WEB -p tcp --dport 80 -j RETURN
Seria desnecessária?

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Iptables + Squid lento
« Resposta #22 Online: 15 de Outubro de 2013, 18:27 »
Não, essa linha tem outra função.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline Arthur Bernardes

  • Usuário Ubuntu
  • *
  • Mensagens: 4.692
    • Ver perfil
Re: Iptables + Squid lento
« Resposta #23 Online: 15 de Outubro de 2013, 23:20 »
Você percebe lentidão quando usa a internet sem passar pelo Squid? Tentou fazer esse teste?

Offline slavik

  • Usuário Ubuntu
  • *
  • Mensagens: 20
    • Ver perfil
Re: Iptables + Squid lento
« Resposta #24 Online: 31 de Outubro de 2013, 12:48 »
Bom dia

Depois de umas alterações aqui, vi que as coisas ficaram um pouco melhores.
Porém, estou com um problema no acesso ao meu servidor Zimbra.
Ele simplesmente não acessa (pelo menos da rede interna).
Tenho todas as regras de DNAT para o servidor, e simplesmente não vai.
Alguém saberia me dizer o porquê?

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Iptables + Squid lento
« Resposta #25 Online: 31 de Outubro de 2013, 23:16 »
Pode mostrar seu firewall depois das mudanças?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline slavik

  • Usuário Ubuntu
  • *
  • Mensagens: 20
    • Ver perfil
Re: Iptables + Squid lento
« Resposta #26 Online: 01 de Novembro de 2013, 09:12 »
Iptables

Código: [Selecionar]
#!/bin/sh

# variaveis

# web
IF_WEB="eth1"
IP_WEB="IP_externo"

# intern
IF_INT="eth0"
IP_INT="IP_rede_interna"
# sapl
IP_SAP="IP_sistema"
# zimbra
IP_ZIM="IP_zimbra"
# mascara de rede
NTWRK="10.0.0.0/24"

# atalho para o iptables
IPT=`which iptables`

$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -X -t nat
$IPT -X -t mangle
$IPT -Z
$IPT -Z -t nat
$IPT -Z -t mangle


# ativacao de modulos
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_filter
modprobe iptable_nat
modprobe ipt_LOG
modprobe ipt_limit
modprobe ipt_state
modprobe ipt_MASQUERADE
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp


# compartilhamento de internet
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses



# politicas padrao
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT

###### regras de NAT ######
for ZIMPORT in `cat /etc/init.d/zimbra_ports`; do
    $IPT -t nat -A PREROUTING -d $IP_WEB -p tcp --dport $ZIMPORT -j DNAT --to-destination $IP_ZIM:$ZIMPORT
done
$IPT -t nat -A PREROUTING -d $IP_WEB -p udp --dport 25 -j DNAT --to-destination $IP_ZIM:25
$IPT -t nat -A PREROUTING -d $IP_WEB -p udp --dport 26 -j DNAT --to-destination $IP_ZIM:26
# ips liberados
for IP in `cat /etc/init.d/ips`; do
    $IPT -t nat -A POSTROUTING -s $IP/32 -o $IF_WEB -j MASQUERADE
done
# mascarando trafego em geral
for PORT in `cat /etc/init.d/ports`; do
    $IPT -t nat -A POSTROUTING -p tcp -s $NTWRK -o $IF_WEB --dport $PORT -j MASQUERADE
    $IPT -t nat -A POSTROUTING -p udp -s $NTWRK -o $IF_WEB --dport $PORT -j MASQUERADE
done
# nat do squid
$IPT -t nat -A PREROUTING -i $IF_INT -p tcp --dport 80 -j REDIRECT --to-port 3128
# nat do apache
$IPT -t nat -A PREROUTING -i $IF_INT -d $IP_WEB -p tcp --dport 80 -j RETURN


###### regras de INPUT ######
# loopback
$IPT -A INPUT -i lo -j ACCEPT
# dns
$IPT -A INPUT -p tcp --dport 53 -j ACCEPT
$IPT -A INPUT -p udp --dport 53 -j ACCEPT
# ssh
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
# protecao contra ip spoofing
$IPT -A INPUT -i $IF_WEB -s 10.0.0.0/8 -j DROP
$IPT -A INPUT -i $IF_WEB -s 10.0.0.0/8 -m limit --limit 3/s -j LOG --log-level info --log-prefix "FIREWALL: Spoofing - 10. --"
$IPT -A INPUT -i $IF_WEB -s 172.16.0.0/16 -j DROP
$IPT -A INPUT -i $IF_WEB -s 172.16.0.0/16 -m limit --limit 3/s -j LOG --log-level info --log-prefix "FIREWALL: Spoofing - 172.16. --"
$IPT -A INPUT -i $IF_WEB -s 192.168.0.0/16 -j DROP
$IPT -A INPUT -i $IF_WEB -s 192.168.0.0/16 -m limit --limit 3/s -j LOG --log-level info --log-prefix "FIREWALL: Spoofing - 192.168. --"
# apache
$IPT -A INPUT -p tcp -d $IP_WEB --dport 80 -j ACCEPT
# mascarando trafego em geral
for PORT in `cat /etc/init.d/ports`; do
    $IPT -A INPUT -p tcp -i $IF_WEB --dport $PORT -j ACCEPT
    $IPT -A INPUT -p udp -i $IF_WEB --dport $PORT -j ACCEPT
done
# squid
$IPT -A INPUT -p tcp -s $NTWRK --dport 3128 -j ACCEPT


###### regras de FORWARD #####
# loopback
$IPT -A FORWARD -i lo -j ACCEPT
# dns
$IPT -A FORWARD -p tcp --dport 53 -j ACCEPT
$IPT -A FORWARD -p udp --dport 53 -j ACCEPT
# protecao contra synflood
$IPT -A FORWARD -p tcp --syn -m limit --limit 2/s -j ACCEPT
# protecao contra ping da morte
$IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
$IPT -A FORWARD -i $IF_WEB -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

###### logging ######
# log de navegacao
$IPT -A INPUT -m limit --limit 3/m --limit-burst 3 -j LOG --log-level info --log-prefix "Firewall: INPUT --"
$IPT -A OUTPUT -m limit --limit 3/m --limit-burst 3 -j LOG --log-level info --log-prefix "Firewall: OUTPUT --"
$IPT -A FORWARD -m limit --limit 3/m --limit-burst 3 -j LOG --log-level info --log-prefix "Firewall: FORWARD --"
$IPT -t nat -A PREROUTING -m limit --limit 3/m --limit-burst 3 -j LOG --log-level info --log-prefix "Firewall: NAT [pre] --"
$IPT -t nat -A POSTROUTING -m limit --limit 3/m --limit-burst 3 -j LOG --log-level info --log-prefix "Firewall: NAT [post] --"

Rodando esse script através de uma VM, a velocidade de navegação passando pelo squid ou não é basicamente a mesma.
O problema mesmo, é o acesso ao zimbra...

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Iptables + Squid lento
« Resposta #27 Online: 01 de Novembro de 2013, 12:33 »
Você incluiu as portas do zimbra entre as portas a serem liberadas na entrada (/etc/init.d/ports)?

Em tempo: o diretório /etc/init.d é pra scripts, não pra arquivos de configuração. Sugiro fortemente que vc coloque seu arquivo de configuração em outro diretório.

Outra coisa, da forma como vc configurou, não será possível acessar o endereço externo do zimbra a partir da rede interna, mesmo que vc libere essas portas na cadeia INPUT.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline slavik

  • Usuário Ubuntu
  • *
  • Mensagens: 20
    • Ver perfil
Re: Iptables + Squid lento
« Resposta #28 Online: 01 de Novembro de 2013, 12:50 »
Sim, as portas do zimbra estão no arquivo ports.
E isso que você citou é justamente o meu problema, o acesso do zimbra através da rede interna.
O que eu preciso fazer?

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Iptables + Squid lento
« Resposta #29 Online: 01 de Novembro de 2013, 15:31 »
Use o endereço interno do zimbra nas conexões internas.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D