Squid não acessa site da empresa. [RESOLVIDO]

25. Re: Squid não acessa site da empresa. [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 07/11/2013 - 13:45h

andrecanhadas escreveu:

Buckminster escreveu:

Então use teus poderes e me diga com certeza porque digitando www.meusite.com.br acessava o site de fora da rede e não acessava de dentro da rede.


Simples fora da rede o IP resolvido é o externo e o acesso é direto, dentro da rede como provavelmente ele não tem um DNS interno resolvendo este domínio e ao jogar a url ele vai resolver o DNS como sendo o IP externo.

Para que ele conseguisse acesso seria preciso abri o INPUT na interface Loopback o que gera uma perda grande de segurança.

A INTERFACE LOOPBACK JÁ ESTAVA ABERTA:
#Libera a interface local
iptables -A INPUT -i lo -j ACCEPT

AÍ JÁ CAI POR TERRA TODA TUA TEORIA.

Mesmo abrindo o input no LO ainda assim o IP externo seria a maquina do firewall e teria que fazer o NAT (prerouting) da porta 80 na interface LO e $Lan para o IP interno da maquina web.

Provavelmente isto causaria mais problemas do que benefícios, logo é mais fácil e seguro simplesmente tirar ele fora do proxy.

Que sentido tem fazer o acesso a um site local passar pelo proxy sendo que o acesso direto é mais rápido pois pula varias etapas e é fácil de resolver?

Assim que ele postar as configurações fique a vontade tentando resolver de outra forma, para mim a solução mais simples e menos passível de erros foi a que já resolveu o problema.

ESTOU VENDO AS CONFIGURAÇÕES.
MAS NÃO ME ENTENDA MAL ANDRÉ, É QUE EU GOSTO DE IDENTIFICAR O PROBLEMA.
TALVEZ A SOLUÇÃO APRESENTADA POR VOCÊ SEJA A MAIS ACERTADA, TALVEZ NÃO.
MAS EM REDES, PENSO EU, TEMOS QUE IDENTIFICAR O PROBLEMA PARA QUE NÃO CAUSE MAIS TRANSTORNOS FUTURAMENTE.
E O PROBLEMA NÃO FOI IDENTIFICADO, SOMENTE FOI APRESENTADA UMA SOLUÇÃO, OU SEJA, UM REMÉDIO PARA A DOR DE CABEÇA SEM COMBATER A CAUSA.

SE EU ESTIVER ERRADO, E VOCÊ CERTO, ASSUMO MEU ERRO... MAS NÃO ANTES DE ANALISAR A SITUAÇÃO.
É QUE EU NÃO GOSTO DE SER ATINGIDO POR BALAS PERDIDAS ATIRADAS NO ESCURO.





  


26. Re: Squid não acessa site da empresa. [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 07/11/2013 - 14:02h

Vamos fazer como o esquartejador, vamos por partes Gabriel. Irei postando aos poucos, qualquer dúvida você comenta.
Tenho certeza que o André nos ajudará nessa empreitada.

Primeiro você deve comentar as ACL localnet que você não utiliza abaixo:
#acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.2.0/24 # RFC1918 possible internal network << acredito que essa seja a tua rede local.

Mas caso você tenha ou queria ter mais de uma rede local, mude o nome da ACL, dê nomes distintos, por exemplo:

acl redelocal src 10.0.0.0/8 # RFC1918 possible internal network
acl rede_local src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.2.0/24 # RFC1918 possible internal network

e depois, antes de http_access deny all e http_access allow localhost, libere as redes locais, assim:

http_access allow redelocal
http_access allow rede_local
http_access allow localnet
http_access allow localhost
http_access deny all

Teu proxy NÃO é autenticado. Estão faltando as regras de autenticação.
Assim como está, teu proxy é que se pode chamar de proxy normal, ou seja, não é transparente e nem é autenticado.

No Iptables.
De início coloque essa regra

# #Access LOG
iptables -A FORWARD -s 192.168.2.0/24 ! -d 192.168.2.0/24 -p tcp --syn -m limit --limit 1/m -m state --state NEW -j LOG --log-level $LOG --log-prefix "Iptables_-_Access: "

no final do arquivo, pois, logicamente, a regra do log deve ficar após as regras de bloqueio/liberação; o Iptables, assim como o Squid, lê as regras de cima para baixo e como ele irá fazer log se a regra do log está antes das outras regras?

E as políticas padrões:
#Regras Padrao
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

Veja que a chain FORWARD está como ACCEPT na política padrão, ou seja, está toda liberada tornando inúteis a maioria das regras com FORWARD abaixo dela.
Mude para

#Regras Padrao
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

A chain OUTPUT pode deixar como ACCEPT.

INPUT << essa chain trabalha com os pacotes que tenham destino ao próprio servidor, ou seja, tudo que vier de fora e for endereçado ao próprio servidor, por exemplo, quando você abre o navegador e acessa a internet pelo próprio servidor primeiro o pacote passa pela chain OUTPUT, pois está saindo pedindo um determinado site e quando volta passa pela chain INPUT pois foi o próprio servidor quem pediu o site;
OUTPUT << essa chain trabalha com os pacotes gerados localmente, ou seja, pacotes que o próprio servidor envia para fora;
FORWARD << essa chain trabalha com os pacotes que passam pelo servidor, ou seja, pacotes que vem de fora do servidor e são destinados para outras máquinas que não sejam o servidor, ou mais seja ainda, é tudo que passa pelo servidor e que não tem como destino ele próprio, por exemplo, quando um vivente usuário abre um site, que não seja o site da tua empresa, numa máquina cliente da rede interna, essa solicitação irá passar pela chain FORWARD pois o tal site está fora da rede interna e o servidor Web não é o mesmo onde está o Iptables. Essa é a situação mais corriqueira, pois a quase totalidade dos acessos são feitas de máquinas da rede interna para fora. Os pacote ficam entrando e saindo passando pelo servidor. Entenda-se como "pacotes" tudo aquilo que trafega pela rede, tanto interna quanto externa (sites, downloads, etc).

Vá lendo isto:
http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras?pagina=1


27. Re: Squid não acessa site da empresa. [RESOLVIDO]

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 07/11/2013 - 14:31h

Buckminster escreveu:



A INTERFACE LOOPBACK JÁ ESTAVA ABERTA:
#Libera a interface local
iptables -A INPUT -i lo -j ACCEPT

AÍ JÁ CAI POR TERRA TODA TUA TEORIA.

Opa o Lo esta aberto sim mas não direcionado, se tiver um apache rodando na maquina do squid acessando meu site.com.br ira acessar a maquina do squid e não o outro webserver

Mesmo abrindo o input no LO ainda assim o IP externo seria a maquina do firewall e teria que fazer o NAT (prerouting) da porta 80 na interface LO e $Lan para o IP interno da maquina web.





ESTOU VENDO AS CONFIGURAÇÕES.
MAS NÃO ME ENTENDA MAL ANDRÉ, É QUE EU GOSTO DE IDENTIFICAR O PROBLEMA.
TALVEZ A SOLUÇÃO APRESENTADA POR VOCÊ SEJA A MAIS ACERTADA, TALVEZ NÃO.
MAS EM REDES, PENSO EU, TEMOS QUE IDENTIFICAR O PROBLEMA PARA QUE NÃO CAUSE MAIS TRANSTORNOS FUTURAMENTE.
E O PROBLEMA NÃO FOI IDENTIFICADO, SOMENTE FOI APRESENTADA UMA SOLUÇÃO, OU SEJA, UM REMÉDIO PARA A DOR DE CABEÇA SEM COMBATER A CAUSA.

SE EU ESTIVER ERRADO, E VOCÊ CERTO, ASSUMO MEU ERRO... MAS NÃO ANTES DE ANALISAR A SITUAÇÃO.
É QUE EU NÃO GOSTO DE SER ATINGIDO POR BALAS PERDIDAS ATIRADAS NO ESCURO.



Não estou vendo mal apenas achei estranho tanta indagação por remover um acesso local de fora do proxy como se isso fosse uma coisa errada.
Sugeri isto pois já passei pelo mesmo problema diversas vezes e a solução me foi indicada para outros no próprio squid-cache.org (embora não achei mais).
Na epóca diziam algo do tipo que o squid não consegue acessar a rede interna usando o loopback e deveria adicionar nas exceção do navegador.

Quanto a balas perdidas... (Já estava achando que era Carioca) vou ficar longe de Jacaraguacacuaqueçetuba/RI tenho medo de balas perdidas rsrs

Estou acompanhando aqui se tiver algum erro que eu identifique eu grito de novo


28. Re: Squid não acessa site da empresa. [RESOLVIDO]

Gabriel Bortolotto Contessotto
essemesmo

(usa KUbuntu)

Enviado em 07/11/2013 - 14:35h

Buckminster, boa tarde.

Acabei de fazer as suas sugestões.

No arquivo squid.conf, optei por comentar as linha.

Se altero o Iptables com a regra que comentou da chain FORWARD, (iptables -P FORWARD DROP), eu perco o acesso ao meusite.

Fiz os seguintes testes.

Alteração no squid.conf + removi do browser meusite = Erro 111
Alteração no squid.conf + alteração iptables + removi do browser meusite = 110 - Conexão recusada

Então para manter as situações funcionais, no momento a única alteração feito foi no squid.conf.

No iptables vou ler o artigo que recomendou e ver se tenho alguma ideia.




29. Re: Squid não acessa site da empresa. [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 07/11/2013 - 16:45h

Essas regras abaixo

#Habilita portas
iptables -A INPUT -j ACCEPT -p tcp --dport 21 #FTP - OFFICIAL
iptables -A INPUT -j ACCEPT -p tcp -s $REDE_DIGITAL --dport 22 #SSH_INTERNO
iptables -A INPUT -j ACCEPT -p udp --dport 53 #DNS (query)
iptables -A INPUT -j ACCEPT -p tcp --dport 53 #DNS (transferencia)
iptables -A INPUT -j ACCEPT -p tcp --dport 80 #HTTP
iptables -A INPUT -j ACCEPT -p tcp --dport 110 #POP3
iptables -A INPUT -j ACCEPT -p tcp --dport 143 #IMAP
iptables -A INPUT -j ACCEPT -p tcp --dport 443 #HTTPS
iptables -A INPUT -j ACCEPT -p udp --dport 1194 #Tunel0
iptables -A INPUT -j ACCEPT -p tcp -s $REDE_DIGITAL --dport 3000 #Ntop interno
iptables -A INPUT -j ACCEPT -p tcp -s $REDE_DIGITAL --dport 3128 #Squid

altere para

#Habilita portas
iptables -A INPUT -p tcp --dport 21 -j ACCEPT #FTP - OFFICIAL
iptables -A INPUT -s $REDE_DIGITAL -p tcp --dport 22 -j ACCEPT #SSH_INTERNO
iptables -A INPUT -p udp --dport 53 -j ACCEPT #DNS (query)
iptables -A INPUT -p tcp --dport 53 -j ACCEPT #DNS (transferencia)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #HTTP
iptables -A INPUT -p tcp --dport 110 -j ACCEPT #POP3
iptables -A INPUT -p tcp --dport 143 -j ACCEPT #IMAP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT #HTTPS
iptables -A INPUT -p udp --dport 1194 -j ACCEPT #Tunel0
iptables -A INPUT -s $REDE_DIGITAL -p tcp --dport 3000 -j ACCEPT #Ntop interno
iptables -A INPUT -s $REDE_DIGITAL -p tcp --dport 3128 -j ACCEPT #Squid

Sempre ao fazer alterações reinicie o Iptables e o Squid.

E aconselho a trocar todos os REJECT por DROP.
REJECT manda um aviso ao destino informando que a conexão foi rejeitada, DROP não envia nada, ou seja, REJECT consome um pouco mais de banda.
A não ser que seja estritamente necessário para você mandar um retorno, deixe REJECT, senão troque para DROP, é mais seguro.


30. Re: Squid não acessa site da empresa. [RESOLVIDO]

Gabriel Bortolotto Contessotto
essemesmo

(usa KUbuntu)

Enviado em 07/11/2013 - 17:18h

Pessoal, agradeço a ajuda de todos, principalmente a Buckminster e andrecanhadas

O problema foi resolvido.

Fiz da seguinte forma,

Já temos um Dns então adicionei as configurações para resolver dns interno.

Me pareceu mais prudente, afinal, pelo que entendi, ao resolver o ip como sendo um ip interno eu não chego a fazer qualquer requisição ao meu Firewall. Mantendo os pacotes na rede interna.

Não optei pela regra do iptables do andrecanhadas pois assim mandaria os pacotes para o Firewall fazendo mesmo que pouco cosumir alguma coisa. Assim deixo o meu Firewall fazer outra coisa, talvez trico.

Também fiz as alterações do ultimo post do Buckminster, todas elas e as do squid.conf, removendo as redes que não utilizo.

Agora vou me preocupar com alguns outro problemas que levantamos aqui no tópico,

"Para que ele conseguisse acesso seria preciso abri o INPUT na interface Loopback o que gera uma perda grande de segurança." andrecanhadas

E

"iptables -P FORWARD DROP" Buckminster





31. Re: Squid não acessa site da empresa. [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 07/11/2013 - 17:35h

Bom que resolveu. Mas vou te enviar igual.
Testa assim como abaixo, com calma, mas antes dê uma lida em todo o script, tem observações:

#!/bin/sh
#
#Variaveis
REDE_DIGITAL="192.168.2.0/24"
IP_NET="185.52.36.73"
IF_NET="eth0"
LOG=4
IF_DIGITAL="eth1"
IF_CAMERAS="eth2"

#FIREWALL
#Desliga IP FORWARD
echo 0 > /proc/sys/net/ipv4/ip_forward

##Apagando e restaurando as chains e tabelas
############################################
iptables -Z # Zera as regras das chains
iptables -F # Remove as regras das chains
iptables -X # Apaga as chains
#
##Proteção contra ping, SYN Cookie, IP Spoofing e proteções do kernel
#####################################################################
echo 1 > /proc/sys/net/ipv4/tcp_syncookies #Syn Flood-DoS
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter #Ip Spoofing
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts #Sem ping e port scanners
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses #Sem resposta remota
for i in /proc/sys/net/ipv4/conf/*; do
echo 0 > $i/accept_redirects #Sem redirecionar rotas
echo 0 > $i/accept_source_route #Sem traceroute
echo 1 > $i/log_martians #Loga pacotes suspeitos no kernel
echo 1 > $i/rp_filter #Ip Spoofing
echo 0 > $i/secure_redirects; done #Sem redirecionamento de pacotes
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all #Sem ping e tracert
#
#Modulos
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe xt_recent
#
##Definindo políticas padrões
#############################
iptables -P INPUT DROP # iptables a política padrão da chain INPUT é proibir tudo
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#
##Liberando a Loopback
######################
iptables -A INPUT -i lo -j ACCEPT # adiciona regra na chain INPUT para liberar a loopback
#
##Regras de segurança na internet e de aceitação de pacotes
###########################################################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW ! -i $IF_NET -j DROP # << Interface de entrada da internet
iptables -A FORWARD -m state --state NEW ! -i $IF_NET -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP

#Libera Maquinas permitidas sem LOG
iptables -A FORWARD -s 192.168.2.254 -j ACCEPT

iptables -A FORWARD -s 192.168.2.253/24 -d 200.228.16.49 -j ACCEPT
# iptables -A FORWARD -s 192.168.2.253/24 -p tcp -d 192.168.2.73 --dport 21 -j RETURN
# iptables -A FORWARD -s 192.168.2.253/24 -p tcp -d 192.168.2.73 --dport 80 -j RETURN
# iptables -A FORWARD -s 192.168.2.253/24 -p tcp -d 192.168.2.73 --dport 443 -j RETURN

iptables -A FORWARD -s 192.168.2.253/24 -p tcp -m tcp --dport 21 -j DROP
iptables -A FORWARD -s 192.168.2.253/24 -p tcp -m tcp --dport 80 -j DROP
iptables -A FORWARD -s 192.168.2.253/24 -p tcp -m tcp --dport 443 -j DROP
iptables -A FORWARD -s 192.168.2.253/24 -p tcp -m tcp --dport 8080 -j DROP

#Evita spoof
# iptables -A INPUT ! -i lo -s 127.0.0.0/8 -j DROP

#Libera a interface local
# iptables -A INPUT -i lo -j ACCEPT

#Bloqueio a placa de rede das Camereas
iptables -A FORWARD -i $IF_CAMERAS ! -d 192.168.2.253 -j DROP

#Libera as interfaces de rede
iptables -A INPUT -i $IF_DIGITAL -j ACCEPT
iptables -A INPUT -i tun0 -j ACCEPT

#Libera foward
iptables -A FORWARD -s 192.168.2.0/24 -j ACCEPT

# Redirecionamento
iptables -t nat -A PREROUTING -i $IF_DIGITAL -p tcp --dport 80 -j REDIRECT --to-port 3128 # << AQUI DEVE IR A PLACA DA REDE INTERNA, NÃO SEI SE IF_DIGITAL É A TUA PLACA DA REDE INTERNA.
iptables -t nat -A PREROUTING -i $IF_DIGITAL-p tcp --dport 443 -j REDIRECT --to-port 3128 # aqui também.

#Faz mascaramento para acesso a net
iptables -t nat -A POSTROUTING -o $IF_NET -j MASQUERADE

# COMENTA TODAS ESSAS REGRAS A PARTIR DAQUI...
#Dropa pacotes com flags invalidas
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags ALL FIN,URG,PSH -m limit --limit 3/m -j LOG --log-level $LOG --log-prefix "Iptables_-_DROP tcp flag: "
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags SYN,RST SYN,RST -m limit --limit 3/m -j LOG --log-level $LOG --log-prefix "Iptables_-_DROP tcp flag: "
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit --limit 3/m -j LOG --log-level $LOG --log-prefix "Iptables_-_DROP tcp flag: "
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags ALL FIN -m limit --limit 3/m -j LOG --log-level $LOG --log-prefix "Iptables_-_DROP tcp flag: "
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags ALL ALL -m limit --limit 3/m -j LOG --log-level $LOG --log-prefix "Iptables_-_DROP tcp flag: "
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags ALL NONE -m limit --limit 3/m -j LOG --log-level $LOG --log-prefix "Iptables_-_DROP tcp flag: "
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags FIN,RST FIN,RST -m limit --limit 3/m -j LOG --log-level $LOG --log-prefix "Iptables_-_DROP tcp flag: "
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags ACK,FIN FIN -m limit --limit 3/m -j LOG --log-level $LOG --log-prefix "Iptables_-_DROP tcp flag: "
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags ACK,PSH PSH -m limit --limit 3/m -j LOG --log-level $LOG --log-prefix "Iptables_-_DROP tcp flag: "
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags ACK,URG URG -m limit --limit 3/m -j LOG --log-level $LOG --log-prefix "Iptables_-_DROP tcp flag: "
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags ACK,FIN FIN -j DROP
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags ACK,PSH PSH -j DROP
iptables -A INPUT -i $IF_NET -p tcp --tcp-flags ACK,URG URG -j DROP

#Dropa pacotes "novos" sem a flag SYN
iptables -A INPUT -i $IF_NET -p tcp ! --syn -m state --state NEW -m limit --limit 1/h -j LOG --log-prefix "Iptables_-_DROP sem SYN: "
iptables -A INPUT -i $IF_NET -p tcp ! --syn -m state --state NEW -j DROP

#Dropa icmp
iptables -A INPUT -i tun0 -p icmp -j ACCEPT
iptables -A INPUT -i $IF_NET -p icmp -m limit --limit 1/h -j LOG --log-level $LOG --log-prefix "Iptables_-_DROP icmp: "
iptables -A INPUT -i $IF_NET -p icmp -j DROP
################################################### ATÉ AQUI.

#Habilita portas
iptables -A INPUT -p tcp --dport 21 -j ACCEPT #FTP - OFFICIAL
iptables -A INPUT -s $REDE_DIGITAL -p tcp --dport 22 -j ACCEPT #SSH_INTERNO
iptables -A INPUT -p udp --dport 53 -j ACCEPT #DNS (query)
iptables -A INPUT -p tcp --dport 53 -j ACCEPT #DNS (transferencia)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #HTTP
iptables -A INPUT -p tcp --dport 110 -j ACCEPT #POP3
iptables -A INPUT -p tcp --dport 143 -j ACCEPT #IMAP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT #HTTPS
iptables -A INPUT -p udp --dport 1194 -j ACCEPT #Tunel0
iptables -A INPUT -s $REDE_DIGITAL -p tcp --dport 3000 -j ACCEPT #Ntop interno
#iptables -A INPUT -s $REDE_DIGITAL -p tcp --dport 3128 -j ACCEPT #Squid

#SMTP
iptables -A INPUT -p tcp --dport 25 --syn -m limit --limit 1/s --limit-burst 10 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 --syn -j DROP
iptables -A INPUT -p tcp --dport 25 -j ACCEPT

#SMTP - 587
iptables -A INPUT -p tcp --dport 587 --syn -m limit --limit 1/s --limit-burst 10 -j ACCEPT
iptables -A INPUT -p tcp --dport 587 --syn -j DROP
iptables -A INPUT -p tcp --dport 587 -j ACCEPT


#POP3
iptables -A INPUT -p tcp --dport 110 --syn -m limit --limit 1/s --limit-burst 10 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 --syn -j DROP
iptables -A INPUT -p tcp --dport 110 -j ACCEPT

#IMAP
iptables -A INPUT -p tcp --dport 143 --syn -m limit --limit 1/s --limit-burst 10 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 --syn -j DROP
iptables -A INPUT -p tcp --dport 143 -j ACCEPT

#Redireciona portas
# iptables -t nat -A PREROUTING -d $IP_NET -p tcp --dport 21 -j DNAT --to 192.168.2.73 #FTP
# iptables -t nat -A PREROUTING -d $IP_NET -p tcp --dport 22 -j DNAT --to 192.168.2.73 #SSH
# iptables -t nat -A PREROUTING -d $IP_NET -p tcp --dport 25 -j DNAT --to 192.168.2.73 #SMTP
# iptables -t nat -A PREROUTING -d $IP_NET -p tcp --dport 587 -j DNAT --to 192.168.2.73 #SMTP
# iptables -t nat -A PREROUTING -d $IP_NET -p udp --dport 53 -j DNAT --to 192.168.2.73 #DNS (Query)
# iptables -t nat -A PREROUTING -d $IP_NET -p tcp --dport 53 -j DNAT --to 192.168.2.73 #DNS (Transferencia)
# iptables -t nat -A PREROUTING -d $IP_NET -p tcp --dport 80 -j DNAT --to 192.168.2.73 #HTTP
# iptables -t nat -A PREROUTING -d $IP_NET -p tcp --dport 110 -j DNAT --to 192.168.2.73 #POP3
# iptables -t nat -A PREROUTING -d $IP_NET -p tcp --dport 143 -j DNAT --to 192.168.2.73 #IMAP
# iptables -t nat -A PREROUTING -d $IP_NET -p tcp --dport 443 -j DNAT --to 192.168.2.73 #HTTPS

#Evita spamware bloqueando a porta 25
iptables -A FORWARD -d 192.168.2.73 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.2.73 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp --dport 25 --syn -m limit --limit 1/m -m state --state NEW -j LOG --log-level $LOG --log-prefix "Iptables_-_Access Spam: "
iptables -A FORWARD -p tcp --dport 25 -j DROP
iptables -A FORWARD -d 192.168.2.73 -p tcp --sport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.2.73 -p tcp --sport 25 -j ACCEPT
iptables -A FORWARD -p tcp --sport 25 --syn -m limit --limit 1/m -m state --state NEW -j LOG --log-level $LOG --log-prefix "Iptables_-_Access Spam: "

#Evita spyware bloqueando a porta 110
iptables -A FORWARD -d 192.168.2.73 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -s 192.168.2.73 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp --dport 110 --syn -m limit --limit 1/m -m state --state NEW -j LOG --log-level $LOG --log-prefix "Iptables_-_Access Spy: "
iptables -A FORWARD -p tcp --dport 110 -j DROP
iptables -A FORWARD -d 192.168.2.73 -p tcp --sport 110 -j ACCEPT
iptables -A FORWARD -s 192.168.2.73 -p tcp --sport 110 -j ACCEPT
iptables -A FORWARD -p tcp --sport 110 --syn -m limit --limit 1/m -m state --state NEW -j LOG --log-level $LOG --log-prefix "Iptables_-_Access Spy: "
iptables -A FORWARD -p tcp --sport 110 -j DROP

#Recent Porta 110
iptables -I FORWARD -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set --name SSH;
iptables -I FORWARD -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --name SSH --update --seconds 60 --hitcount 15 -j DROP;
iptables -I FORWARD -p tcp --dport 25 -i eth0 -m state --state NEW -m recent --set --name SMTP;
iptables -I FORWARD -p tcp --dport 25 -i eth0 -m state --state NEW -m recent --name SMTP --update --seconds 60 --hitcount 15 -j DROP;
iptables -I FORWARD -p tcp --dport 587 -i eth0 -m state --state NEW -m recent --set --name SMTP;
iptables -I FORWARD -p tcp --dport 587 -i eth0 -m state --state NEW -m recent --name SMTP --update --seconds 60 --hitcount 15 -j DROP;
iptables -I FORWARD -p tcp --dport 110 -i eth0 -m state --state NEW -m recent --set --name POP3;
iptables -I FORWARD -p tcp --dport 110 -i eth0 -m state --state NEW -m recent --name POP3 --update --seconds 60 --hitcount 15 -j DROP;
iptables -I FORWARD -p tcp --dport 143 -i eth0 -m state --state NEW -m recent --set --name IMAP;
iptables -I FORWARD -p tcp --dport 143 -i eth0 -m state --state NEW -m recent --name IMAP --update --seconds 60 --hitcount 15 -j DROP;

echo 1 > /proc/sys/net/ipv4/ip_forward


Veja bem: em "Proteção contra ping, SYN Cookie..." você pode comentar o que não quiser.

Nas políticas padrões o ideal é sempre bloquear as chains INPUT e FORWARD e depois ir liberando somente o que você quer.

Teste em pelo menos duas máquinas com o IP do Squid setado nos navegadores.

A política padrão FORWARD deve ser DROP por questões de segurança.
E a liberar a loopback não influencia tanto assim na segurança, pois a loopback é uma placa de rede virtual.
Fala uma coisa, a placa de rede IF_DIGITAL é a placa da rede interna?


32. Re: Squid não acessa site da empresa. [RESOLVIDO]

Gabriel Bortolotto Contessotto
essemesmo

(usa KUbuntu)

Enviado em 07/11/2013 - 17:44h

Vou testar sim.

Agora a noite vou ler as regras com aquele manual que me mandou. Até para entender e estudar um pouco.

Amanhã pela manhã eu posto o resultado. É que tudo que vocês comentaram e falaram eu diríamos assim coloquei a prova para ver se entendia e o que estava fazendo.

E sobre se a IF_DIGITAL é a placa de rede interna sim.


33. Re: Squid não acessa site da empresa. [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 07/11/2013 - 17:51h

Esse IP_NET="185.52.36.73" é o IP de qual máquina?



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts