netstryker
(usa Debian)
Enviado em 02/12/2013 - 21:11h
Buckminster escreveu:
netstryker escreveu:
Com relação a política padrão seguirei a sua sugestão.
Com relação ao que você falou sobre o "snat":
============================
E veja o que diz o Manuel:
"masquerade :: Este alvo só é válido na tabela nat na chain postrouting. Ele só deve ser utilizado com IP atribuído dinamicamente (dialup): se você tem um endereço IP estático, você deve usar o alvo snat."
============================
Obs.: Muito bom o post "Manual do IPtables - Comentários e sugestões de regras". Vou estudá-lo.
Como ficaria a regra com o "snat" e qual ou quais regras eu deveria substituir por ela!?
Não precisa colocar como snat nesse caso. Coloque elas como sugeri anteriormente.
# EX: Abrindo a porta do Squid para a rede interna
iptables -A INPUT -p tcp -i $ifproxy --dport 3128 -j ACCEPT
iptables -A INPUT -p tcp -s $iflan --dport 110 -j ACCEPT
iptables -A INPUT -p tcp -s $iflan --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -s $iflan --dport 587 -j ACCEPT
# iptables -A INPUT -p tcp -s $iflan --dport 53 -j ACCEPT << primeiro teste com essas duas regras comentadas, caso não funcionar, descomente elas e teste de novo.
# iptables -A INPUT -p udp -s $iflan --source-port 53 -j ACCEPT
Ou faça assim:
iptables -A INPUT -s $iflan -p tcp -m multiport --dport 25,110,465,587,993,995 -j ACCEPT
iptables -A INPUT -d $iflan -p tcp -m multiport --dport 25,110,465,587,993,995 -j ACCEPT
As duas regras acima liberam o tráfego na ida e na volta. Porém, caso você queira liberar somente na ida (-s) ou somente na volta (-d) também pode fazer. Depende do que você quer. Às vezes precisa liberar nos dois sentidos, às vezes não.
Veja bem, o Iptable lê as regras de cima para baixo no script. Caso uma regra seja conflitante com outra mais abaixo, valerá a que está antes.
O importante é que tudo esteja funcionando a contento.
Tanto as configurações do Iptables quanto do Squid são coisas bem pessoais, vamos assim dizer, pois dependem do que se quer e dependem da rede de cada um.
E sobre autenticação no Squid vale o comentário 10 do GuilhermeBR.
Prezado Buckminster,
Na sexta-feira, quando eu disse que tudo já estava funcionando como eu preciso, mesmo antes de você postar as suas sugestões o meu script estava exatamente assim:
=========================
# Interface do proxy
ifproxy="eth1"
# Interface da internet
ifinternet="eth2"
# Rede interna
iflan="192.168.0.0/24"
# LIMPANDO AS REGRAS CRIADAS ANTERIORMENTE
# Limpando a tabela filter
iptables -F
# Limpando a tabela NAT
iptables -t nat -F
# Limpando a tabela mangle
iptables -t mangle -F
# Ativando o NAT do iptables
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_nat_ftp
# Bloqueando resposta do servidor ao PING
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# Ativando proteção contra IP spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
# Autorizando pacotes da interface de loopback e rede local
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i $ifproxy -j ACCEPT
# Aceitando a passagem de pacotes de conexões já estabelecidas
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Abrindo a porta 22 para conexão remota interna e externa via SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Abrindo as portas 20 e 21 para conexão externa via FTP
iptables -A INPUT -i $ifinternet -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -i $ifinternet -p tcp --dport 21 -j ACCEPT
# Abrindo a porta 10000 para conexão remota interna via Webmin
iptables -A INPUT -i $ifproxy -p tcp --dport 10000 -j ACCEPT
# Abrindo a porta do Squid para a rede interna
iptables -A INPUT -i $ifproxy -p tcp --dport 3128 -j ACCEPT
# Bloqueando tentativas de conexão provenientes da Internet
iptables -A INPUT -p tcp --syn -j DROP
Liberando portas de e-mail POP e SMTP
iptables -A INPUT -s $iflan -p tcp -m multiport --dport 25,110,465,587,993,995 -j ACCEPT
iptables -A INPUT -s $iflan -p udp -m multiport --dport 25,110,587,995 -j ACCEPT
iptables -t nat -A POSTROUTING -s $iflan -p tcp -m multiport --dport 25,110,465,587,993,995 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $iflan -p udp -m multiport --dport 25,110,587,995 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $iflan -p tcp --dport 53 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $iflan -p udp --dport 53 -j MASQUERADE
# EX: Liberando portas de DNS
iptables -A INPUT -s $iflan -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -s $iflan -p udp --source-port 53 -j ACCEPT
iptables -A FORWARD -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
# Liberando portas para o Skype e Teamviewer (rede local)
iptables -A FORWARD -p tcp -m multiport --dport 1616,5938 -j ACCEPT
=========================
Com o script assim o meu proxy "não transparente" estava funcionando como eu preciso, liberando o Skype e o Teamviewer. O GMail estava funcionando normalmente no Outlook para enviar e receber, cheguei até a enviar e receber mensagens de teste. Pensei que estava tudo resolvido.
Antes de ir embora, fiz backup do script que funcionou e alterei os parâmetros para que o proxy ficasse como transparente temporariamente até hoje.
Hoje, quando eu novamente mudei o script de firewall do proxy transparente para esse que funcionou perfeitamente na sexta-feira os problemas dos e-mails no Outlook voltaram. Novamente só o Skype e Teamviewer funcionam.
Passei o dia inteiro tentando de tudo, todas as sugestões dadas por vocês até agora, estudei o conteúdo de todos os links que vocês postaram e simplesmente como um passe de mágica e sem nenhuma explicação plausível os e-mails pararam de enviar e receber no Outlook.
Eu não me esqueci de mudar o proxy para "não transparente" dentro do "squid.conf" e não fiz nenhuma alteração sequer no script que havia funcionado na sexta-feira.
Não sei mais o que fazer.