Squid - Internet Funciona mas portas todas bloqueadas. [RESOLVIDO]

1. Squid - Internet Funciona mas portas todas bloqueadas. [RESOLVIDO]

Augusto Silva
rockmusic26

(usa Outra)

Enviado em 28/05/2013 - 14:39h

Galera, me ajudem por favor, defini meu squid como proxy autenticado depois de muito sofrimento para tentar bloquear ultrasurf e facebook, estou refazendo meu script do zero sendo que minha internet já está funcionando e o squid bloqueando corretamente os sites marcados como bloqueados inclusive por https.

No entanto nas máquinas que estão passando pelo proxy do squid todas as portas estão bloqueadas, por que ocorre esta situação?
É como se o squid estivesse trabalhando independente do iptables já que no iptables liberei todas as portas que necessito e naquelas máquinas que não passam pelo proxy as regras estão funcionando.

Meu Iptables:

#Variáveis de portas
PORTAS_TCP="21,3389,80,21,81"
PORTAS_TCP2="443,5900"
PORTAS_UDP="491,53"

#Limpar regras
iptables -F
iptables -t nat -F

#Bloqueando todo o tráfego
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#Ida e volta nas Chains
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#Liberando roteamento no kernell
echo 1 > /proc/sys/net/ipv4/ip_forward

#Libera os Ips Abaixo do Iptables
iptables -I FORWARD -s 10.1.1.28 -j ACCEPT

#Libera IPs abaixo do proxy
iptables -t nat -A POSTROUTING -s 10.1.1.28 -j MASQUERADE

#Liberando portas
iptables -A INPUT -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT

iptables -A INPUT -p udp -m multiport --dports $PORTAS_UDP -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --dports $PORTAS_UDP -j ACCEPT

iptables -A INPUT -p tcp -m multiport --dports $PORTAS_TCP2 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports $PORTAS_TCP2 -j ACCEPT


Meu Squid:


#Proxy Autenticado
http_port 3128

cache_mem 512 MB
maximum_object_size 100 MB
minimum_object_size 0KB
cache_swap_low 90
cache_swap_high 90

#Ips abaixos são liberados do squid mas permanecem nas regras do iptables
acl liberados src "/etc/squid/ips"
http_access allow liberados

acl localhost src 10.1.1.0/255.0.0.0

acl bloqueadas url_regex -i "/etc/squid/bloqueio"
http_access deny bloqueadas




  


2. MELHOR RESPOSTA

Buckminster
Buckminster

(usa Debian)

Enviado em 28/05/2013 - 16:17h

#Proxy Autenticado

http_port 3128

cache_mem 512 MB
maximum_object_size 100 MB
minimum_object_size 0KB
cache_swap_low 90
cache_swap_high 90

acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

acl localnet src XXX.XXX.XXX.XXX/XX

acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
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

http_access allow manager localhost
http_access deny manager

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny to_localhost

#Ips abaixos são liberados do squid mas permanecem nas regras do iptables
acl liberados src "/etc/squid/ips"
http_access allow liberados
acl localhost src 10.1.1.0/255.0.0.0
acl bloqueadas url_regex -i "/etc/squid/bloqueio"
http_access deny bloqueadas

http_access allow localnet
http_access allow localhost
http_access deny all

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

access_log /var/log/squid3/access.log squid
cache_log /var/log/squid3/cache.log

httpd_suppress_version_string on
visible_hostname nome

Esse squid.conf aí em cima tem as configurações mínimas que devem ter. A partir dele vá configurando o teu.

Nesse squid.conf faltam as regras de autenticação.

iptables -P OUTPUT DROP << coloque essa política como ACCEPT.

Dúvidas posta aqui.

3. Re: Squid - Internet Funciona mas portas todas bloqueadas. [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 28/05/2013 - 14:48h

Faça assim:

iptables -t nat -A POSTROUTING -s 10.1.1.28 -j MASQUERADE
# Redirecionando para o Squid
iptables -t nat -A PREROUTING -i ethx -p tcp --dport 80 -j REDIRECT --to-port 3128 << acrescente essa regra e reinicie o iptables; em ethx coloque a placa de saída para tua rede interna.

E aqui no squid.conf acrescente:
http_port 3128 transparent << se for Squid versão 3.0.

http_port 3128 intercept << se for versão 3.1 ou acima.


4. Re: Squid - Internet Funciona mas portas todas bloqueadas. [RESOLVIDO]

Augusto Silva
rockmusic26

(usa Outra)

Enviado em 28/05/2013 - 14:58h

Buckminster escreveu:

Faça assim:

iptables -t nat -A POSTROUTING -s 10.1.1.28 -j MASQUERADE
# Redirecionando para o Squid
iptables -t nat -A PREROUTING -i ethx -p tcp --dport 80 -j REDIRECT --to-port 3128 << acrescente essa regra e reinicie o iptables; em ethx coloque a placa de saída para tua rede interna.

E aqui no squid.conf acrescente:
http_port 3128 transparent << se for Squid versão 3.0.

http_port 3128 intercept << se for versão 3.1 ou acima.



Mas se eu deixar essa regra meu squid ficará transparente, e não é o que eu quero, pois eu quero o proxy autenticado, mas eu quero liberar algumas portas para acesso e já alterei para o proxy passar a porta 80 para a porta do squid na 3128 mas todas as portas que eu defini na variável das portas estão bloqueadas para as máquinas que passam pelo squid.


#Variáveis de portas
PORTAS_TCP="21,3389,80,21,81"
PORTAS_TCP2="443,5900"
PORTAS_UDP="491,53"

#Limpar regras
iptables -F
iptables -t nat -F

#Bloqueando todo o tráfego
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#Ida e volta nas Chains
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#Liberando roteamento no kernell
echo 1 > /proc/sys/net/ipv4/ip_forward

#Libera os Ips Abaixo do Iptables
iptables -I FORWARD -s 10.1.1.28 -j ACCEPT

#Libera IPs abaixo do proxy
iptables -t nat -A POSTROUTING -s 10.1.1.28 -j MASQUERADE

#Passando tráfego da porta 80 para a porta do squid
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

#Liberando portas
iptables -A INPUT -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT

iptables -A INPUT -p udp -m multiport --dports $PORTAS_UDP -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --dports $PORTAS_UDP -j ACCEPT

iptables -A INPUT -p tcp -m multiport --dports $PORTAS_TCP2 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports $PORTAS_TCP2 -j ACCEPT



5. Re: Squid - Internet Funciona mas portas todas bloqueadas. [RESOLVIDO]

Augusto Silva
rockmusic26

(usa Outra)

Enviado em 28/05/2013 - 17:10h

Amigo, minhas regras são mais simples por que estou implementando do zero, só gostaria que primeiro de tudo conseguisse fazer essas 4 regras abaixo e depois deixar meus scripts ainda mais completos...

Exemplo do que eu gostaria:
1 - Ip 10.1.1.18 não passar pelo squid e nem pelo iptables, ou seja navegar livre de qualquer bloqueio e sem necessidade de informar o proxy no navegador.
2 - IP 10.1.1.19 não passar pelo squid e não informar o proxy no navegador, mas será permitido para ele usar somente as portas liberadas no iptables;
3 - Ip 10.1.1.20 passar pelo squid autenticado ou seja informar o proxy no navegador, não navegar pelos sites bloqueados e utilizar somente as portas liberadas no iptables.
4 - IP 10.1.1.21 irá passar pelo squid autenticado, no entanto poderá navegar por alguns sites que eu definir.

No entanto mesmo configurando o squid seguindo seu script, deixando a política de OUTPUT como ACCEPT mas nada disso quer funcionar parece que estou numa urucubaca, já estou chegando no ponto pensar em desistir por que eu estou fazendo um serviço a mais na minha empresa por que os malditos usuários só querem saber de facebook o dia todo, e praticamente deixei meu serviço de lado nesses ultimos meses só para tentar configurar o squid e iptables que hoje funciona no modo transparente mas com vários furos por causa do https.

A única coisa que estou consiguindo no momento é a regra 1 e parcialmente a regra 3 e 4 pois não libera as portas, ou eu sou muito burro ou determinadas configurações do linux são muito massantes...


6. Re: Squid - Internet Funciona mas portas todas bloqueadas. [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 28/05/2013 - 17:26h

rockmusic26 escreveu:

Amigo, minhas regras são mais simples por que estou implementando do zero, só gostaria que primeiro de tudo conseguisse fazer essas 4 regras abaixo e depois deixar meus scripts ainda mais completos...

Exemplo do que eu gostaria:
1 - Ip 10.1.1.18 não passar pelo squid e nem pelo iptables, ou seja navegar livre de qualquer bloqueio e sem necessidade de informar o proxy no navegador.
2 - IP 10.1.1.19 não passar pelo squid e não informar o proxy no navegador, mas será permitido para ele usar somente as portas liberadas no iptables;
3 - Ip 10.1.1.20 passar pelo squid autenticado ou seja informar o proxy no navegador, não navegar pelos sites bloqueados e utilizar somente as portas liberadas no iptables.
4 - IP 10.1.1.21 irá passar pelo squid autenticado, no entanto poderá navegar por alguns sites que eu definir.

No entanto mesmo configurando o squid seguindo seu script, deixando a política de OUTPUT como ACCEPT mas nada disso quer funcionar parece que estou numa urucubaca, já estou chegando no ponto pensar em desistir por que eu estou fazendo um serviço a mais na minha empresa por que os malditos usuários só querem saber de facebook o dia todo, e praticamente deixei meu serviço de lado nesses ultimos meses só para tentar configurar o squid e iptables que hoje funciona no modo transparente mas com vários furos por causa do https.

A única coisa que estou consiguindo no momento é a regra 1 e parcialmente a regra 3 e 4 pois não libera as portas...


Quais são as portas que você quer liberar para o IP 10.1.1.19?

Quais são as portas que você quer liberar para o IP 10.1.1.20?


7. Re: Squid - Internet Funciona mas portas todas bloqueadas. [RESOLVIDO]

Augusto Silva
rockmusic26

(usa Outra)

Enviado em 29/05/2013 - 08:19h

São as portas mais básicas como a 3389 do terminal server, 21 para FTP entre outras mais que vou implementando conforme a utilização...


8. Re: Squid - Internet Funciona mas portas todas bloqueadas. [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 29/05/2013 - 11:35h

vc tem que liberar na chain FORWARD e fazer as regras de NAT, ex:

iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to IP_DO_HOST_COM_TS:3389
iptables -A FORWARD -p tcp --dport 3389 -d IP_DO_HOST_COM_TS -j ACCEPT

O mesmo raciocínio vale para os demais serviços.


9. Re: Squid - Internet Funciona mas portas todas bloqueadas. [RESOLVIDO]

Augusto Silva
rockmusic26

(usa Outra)

Enviado em 29/05/2013 - 13:37h

Mas dessa forma eu vou precisar definir para todos os hosts o IP que eu quero liberar, mas e eu só quero liberar a porta 3389 das máquinas que estiverem no proxy pois eu vejo que todas as portas tirando aquela que eu defini no navegador estão bloqueadas, o que está ocorrendo na verdade é que o squid funciona mesmo sem nenhuma regra do iptables configurada, isso está correto, já estou bem confuso.


10. Re: Squid - Internet Funciona mas portas todas bloqueadas. [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 29/05/2013 - 13:59h

Vamos a um exemplo bem prático:

Vc tem uma rede com 10 hosts, os 10 hosts tem o TS habilitado e vc precisa acessá-los de fora, aí, vc realiza o acesso, o acesso chega até o seu firewall e o seu firewall precisa passar a requisição para o host a ser acessado, pegunta-se como o firewall vai saber para onde enviar a requisição se há na rede 10 hosts com a porta 3389 habilitada?

Por isso existem as regras de NAT, dê uma estudada a mais para que serve o NAT, vai clariar sua mente...


11. Re: Squid - Internet Funciona mas portas todas bloqueadas. [RESOLVIDO]

Augusto Silva
rockmusic26

(usa Outra)

Enviado em 29/05/2013 - 14:36h

Não amigo, não é isso que eu quero fazer, é exatamente o contrário, na minha estação com proxy eu quero que ela possa acessar o terminal server, o FTP todas essas portas estão bloqueadas na minha máquina com proxy que somente acessa a porta 3128 informada no navegador, qualquer outro programa que utilize portas diferentes estão bloqueadas nesta estação, esse redirecionamento da rede externa eu já efetuei no meu servidor oficial, pois estou fazendo meus testes em uma máquina virtual, ou seja, quando alguém da rede externa quer acessar um terminal server da minha rede, ai sim eu informo tanto no modem quanto no meu firewall o IP que possui o terminal server.


12. Re: Squid - Internet Funciona mas portas todas bloqueadas. [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 29/05/2013 - 14:47h

Segue sugestão de firewall com explicações em cima do teu que você postou aqui.
Talvez você deverá adaptar alguma coisa. Veja as explicações abaixo.

#Variáveis de portas
PORTAS_TCP="21,3389,80,21,81"
PORTAS_TCP2="443,5900"
PORTAS_UDP="491,53"

#Limpar regras
iptables -F
iptables -t nat -F

#Bloqueando todo o tráfego
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

#Ida e volta nas Chains
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#Liberando roteamento no kernell
echo 1 > /proc/sys/net/ipv4/ip_forward

#Libera os Ips Abaixo do Iptables
iptables -I FORWARD -s 10.1.1.18 -j ACCEPT << estas 4 regras liberam o IP 10.1.1.18 na ida e na volta.
iptables -I FORWARD -d 10.1.1.18 -j ACCEPT
iptables -I INPUT -s 10.1.1.18 -j ACCEPT
iptables -I INPUT -d 10.1.1.18 -j ACCEPT

#Libera IP para portas específicas sem passar pelo proxy
iptables -t nat -A POSTROUTING -p tcp -m multiport --dports ! 3389 ! 21 -s 10.1.1.19 -j DROP << iptables adicionar regra na chain postrouting tudo que não for nas portas 3389 e 21 para o IP 10.1.1.19 bloqueia.

#Compartilhamento
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE << aqui vai a placa de rede de entrada da Internet; se a placa de rede estiver com IP fixo deve usar SNAT em vez de MASQUERADE, assim:

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source xxx.xxx.xxx.xxx << aqui você coloca o IP que está fixo na placa de rede de entrada da internet do servidor.

#Passando tráfego da porta 80 para a porta do squid
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

#Libera IP para portas específicas passando pelo proxy
iptables -t nat -A POSTROUTING -p tcp -m multiport --dports ! 3389 ! 21 -s 10.1.1.20 -j DROP
iptables -t nat -A POSTROUTING -p tcp -m multiport --dports ! 3389 ! 21 -d 10.1.1.20 -j DROP

#Liberando portas
iptables -A INPUT -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT

iptables -A INPUT -p udp -m multiport --dports $PORTAS_UDP -j ACCEPT

iptables -A INPUT -p tcp -m multiport --dports $PORTAS_TCP2 -j ACCEPT


Tudo que você não quer que passe pelo proxy você coloca as regras ANTES do redirecionamento, bloqueando ou liberando portas no Iptables.
O sinal de exclamação (!) inverte o sentido, ou seja, nas regras das portas coloquei ! antes das portas liberando elas, pois o DROP bloqueia. Se colocar ACCEPT, por exemplo, vai acontecer o contrário, vai bloquear somente as duas portas e liberar todas as outras.

A opção -I coloca a regra no topo (em primeiro) da chain especificada.

O IP 10.1.1.20 você faz os bloqueios dos sites direto no Squid. O mesmo vale para o IP 10.1.1.21.

Veja o Manual do Iptables traduzido:
http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras/



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts