Squid, está instalado mas não bloqueia sites

1. Squid, está instalado mas não bloqueia sites

Rafael Pereira
horohoro

(usa Ubuntu)

Enviado em 22/04/2017 - 19:59h

Bom, esse é praticamente meu primeiro contato com ubuntu, instalei o squid, montei uma configuração bem básica para ele, mas não bloqueia os sites que eu defini na acl, nem no sistema q eu estou montando o conf, se puderem me ajudar, meu Squid.conf:

http_port 3128
visible_hostname Rafael
cache_mgr Rafael@testando.com
cache_mem 256 MB #unidade em MB
cache_swap_low 90 #unidade em %
cache_swap_high 95 #unidade em %
#verificar
ipcache_size 256
ipcache_low 90
ipcache_high 95
cache_dir ufs /etc/squid/cache 2048 16 256 #cache
cache_access_log /etc/squid/access.log #Log
cache_swap_log /etc/squid/swap.log #swap
logformat squid %ts.%3tu %tr %>a %Ss /%03>Hs %<st %rm %ru %un %Sh/$<A %mt #não entendi muito bem essa linha de comando, mas resolveu um problema que apontava qnd mandava "squid3 -z" no terminal
#Regra de Atualizacao do cache, ainda não sei direito como funciona
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
#acls
#acl all src all #outra linha que tem em muitos tutoriais antigos, mas o squid atual me diz pra remover essa linha
acl redelocal src 192.168.0.0/24 #24 = 255.255.255.0
acl localhost src 192.168.0.0/16 #
acl manager proto cache_object
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
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 Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
acl sites_bloqueados url_regex -i /etc/squid/sites_bloqueados.txt
#regras de acesso
http_access allow manager localhost
http_access allow manager
http_access allow purge localhost
http_access allow purge
http_access allow !Safe_ports
http_access allow CONNECT !SSL_ports
#bloqueios
http_access deny sites_bloqueados
http_access allow redelocal
http_access allow localhost
http_access deny all

Segunda parte da minha dúvida, quando vou montar minha lista de sites bloqueados, precisa ser *exemplo: site.com, site2.com, site3.com* ou
site.com
site2.com
site3.com

Mais informações: estou usando ubuntu numa máquina virtual, desde já obrigado.


  


2. Re: Squid, está instalado mas não bloqueia sites

Carlos APC
Carlos_Cunha

(usa Linux Mint)

Enviado em 22/04/2017 - 22:06h

Vc pode bloquear/liberar de diversas forma.
Exemplos:

acl -> dstdomain -> .dominio.com .dominio.com.br
acl -> url_regex -> bla.bla.com bla.ok.com

E por ai vaia, tudo depende da forma que será sua acl...

Abraço
#-------------------------------------------------------------------------------------#
Administrador de Redes Mistas Linux/Windows
LPI 101-102
LPI 201
Para consultas particulares acesse:
www.cunhatec.com.br

"Falar é fácil, me mostre o código." - Linus Torvalds


3. Re: Squid, está instalado mas não bloqueia sites

Buckminster
Buckminster

(usa Debian)

Enviado em 22/04/2017 - 22:12h

1 - Você redirecionou a porta 80 para a 3128 no Iptables?

2 - No arquivo de sites bloqueados faça um por linha, assim:
site.com
site2.com
site3.com

3 - Acredito que seu Squid seja transparente, então deixe essa linha assim:
http_port 3128 intercept

4 - A linha acl all src all vem como padrão, não precisa colocar ela.


4. Re: Squid, está instalado mas não bloqueia sites

Gilvan
gilvanbrrn

(usa Ubuntu)

Enviado em 23/04/2017 - 01:18h

Aqui o erro:
acl sites_bloqueados url_regex -i /etc/squid/sites_bloqueados.txt
http_access deny sites_bloqueados

tire o .txt



5. Re: Squid, está instalado mas não bloqueia sites

Rafael Pereira
horohoro

(usa Ubuntu)

Enviado em 23/04/2017 - 01:27h

Buckminster escreveu:

1 - Você redirecionou a porta 80 para a 3128 no Iptables?

2 - No arquivo de sites bloqueados faça um por linha, assim:
site.com
site2.com
site3.com

3 - Acredito que seu Squid seja transparente, então deixe essa linha assim:
http_port 3128 intercept

4 - A linha acl all src all vem como padrão, não precisa colocar ela.


Bom
1- fiz isso pelo terminal:
iptables -t nat -A PREROUTING -p tcp -d 192.168.0.0 --dport 80 -j DNAT --to 192.168.0.1:3128
depois:
netstat -tlpn | grep 80
pra ver se está sendo usada, e nada. já com grep 3128 está sendo usada por alguns processos, isso está certo?
2-acabei de organizar assim, obrigado.
3-feito.
4-ok,retirei.
após isso /\
/etc/init.d/squid restart
mas ainda continua a mesma coisa, não mostra minha mensagem de bloqueio.





6. Re: Squid, está instalado mas não bloqueia sites

Rafael Pereira
horohoro

(usa Ubuntu)

Enviado em 23/04/2017 - 01:33h

gilvanbrrn escreveu:

Aqui o erro:
acl sites_bloqueados url_regex -i /etc/squid/sites_bloqueados.txt
http_access deny sites_bloqueados

tire o .txt


Fiz isso agora, removi o .txt,reiniciei o squid, mas não surtiu efeito, continua deixando passar os sites da lista
depois renomeei o arquivo /etc/squid/sites_bloqueados.txt para /etc/squid/sites_bloqueados, reiniciei o squid, mas continua deixando passar.


7. Re: Squid, está instalado mas não bloqueia sites

Gilvan
gilvanbrrn

(usa Ubuntu)

Enviado em 23/04/2017 - 01:39h

acl SitesBloqueados url_regex -i "/etc/squid/sites.deny"
http_access deny SitesBloqueados

( "" )

uma copia do meu,


8. Re: Squid, está instalado mas não bloqueia sites

Rafael Pereira
horohoro

(usa Ubuntu)

Enviado em 23/04/2017 - 01:46h

gilvanbrrn escreveu:

acl SitesBloqueados url_regex -i "/etc/squid/sites.deny"
http_access deny SitesBloqueados

( "" )

uma copia do meu,

Deixei igual, até com as aspas, continua deixando entrar nos sites da lista. qual comando que eu posso usar para verificar o funcionamento do squid? se ele está ok, se está rodando.



9. Re: Squid, está instalado mas não bloqueia sites

Rafael Pereira
horohoro

(usa Ubuntu)

Enviado em 23/04/2017 - 01:49h

Atualização de como meu Squid.conf está agora, ainda está deixando acessar os sites da lista de bloqueio

#Porta Monitorada pelo squid (3128 = default)
http_port 3128 intercept #transparente; ver depois

#Nome do seu servidor (sem espacos)
visible_hostname Rafael
#Memoria utilizada para objetos em transito (Cache)
cache_mgr Rafael@Teste.com
cache_mem 256 MB #unidade em MB
cache_swap_low 90 #unidade em %
cache_swap_high 95 #unidade em %
#verificar
ipcache_size 256
ipcache_low 90
ipcache_high 95
cache_dir ufs /etc/squid/cache 2048 16 256 #Local Onde o Cache e Gravado
cache_access_log /etc/squid/access.logs #Local onde sera guardado os logs do squid
cache_swap_log /etc/squid/swap.log
logformat squid %ts.%3tu %tr %>a %Ss /%03>Hs %<st %rm %ru %un %Sh/$<A %mt
error_directory /etc/squid/acesso_negado.html
#Regra de Atualizacao do cache, ainda não sei direito como funciona
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280

#acls
acl manager proto cache_object
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
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 Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
acl redelocal src 192.168.0.10/24 #24 = 255.255.255.0
acl localhost src 192.168.0.0
acl sitesbloqueados url_regex -i "/etc/squid/sites.deny"
http_access deny sitesbloqueados

#regras de acesso
http_access allow manager localhost
http_access allow manager
http_access allow purge localhost
http_access allow purge
http_access allow !Safe_ports
http_access allow CONNECT !SSL_ports
#bloqueios
#http_access deny sitesbloqueados
http_access allow redelocal
http_access allow localhost
http_access deny all #all = todos os IPs


10. Re: Squid, está instalado mas não bloqueia sites

Gilvan
gilvanbrrn

(usa Ubuntu)

Enviado em 23/04/2017 - 02:01h

normalmente é
squid restart
ou
squid3 restart

veja a sua versão



11. Re: Squid, está instalado mas não bloqueia sites

Buckminster
Buckminster

(usa Debian)

Enviado em 23/04/2017 - 11:48h

Tenta essa regra abaixo no terminal:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128


e testa sem reiniciar a máquina.

Mas depois tu deverá fazer um script do Iptables para o redirecionamento ficar permanente. No terminal as regras do Iptables funcionam somente até reiniciar a máquina.

Aqui tem uma configuração básica do Iptables:

https://www.vivaolinux.com.br/dica/Configuracao-basica-do-IPtables

Mas tu pode usar o seguinte script:

#!/bin/bash
#Desabilitando o tráfego entre as placas
#################################
echo 0 > /proc/sys/net/ipv4/ip_forward
#
##Apagando e restaurando as chains e tabelas
######################################
iptables -Z # Zera as regras de todas as chains
iptables -F # Remove as regras de todas as chains
iptables -X # Apaga todas as chains
##Proteção contra ping, SYN Cookies, IP Spoofing e proteções do kernel
#
##########################################################
echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Syn Flood (DoS)
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Port scanners
echo 0 > /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 1 > $i/secure_redirects; done # Redirecionamento seguro de pacotes
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all # Sem ping e tracert
#
# 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
#
## Regras de segurança na internet e acessos
#####################################
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 ethx -j DROP # Interface de entrada da internet
iptables -A FORWARD -m state --state NEW ! -i ethx -j DROP # Interface de entrada da internet
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#
# Redirecionamento para o Squid e mascaramento/compartilhamento
###########################################
iptables -t nat -A PREROUTING -i ethx -p tcp --dport 80 -j REDIRECT --to-port 3128 # Interface da rede interna
iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE # Interface de entrada da internet
#
# A partir daqui você pode inserir as regras de liberação e bloqueio, não esqueça habilitar no final o tráfego entre as placas.
#
# Habilitando o tráfego entre as placas
##########################
echo 1 > /proc/sys/net/ipv4/ip_forward
#

Quanto à execução do script eu sempre faço assim, como root:
Crio o script em /etc/init.d/ (Debian e Ubuntu):

#vim /etc/init.d/firewall.sh << eu usei o vim, você usa o teu editor de texto preferido e pode colocar outro nome para o script (aconselhável).

Coloco as regras dentro.
Salvo e saio.

Dou permissão de execução:
# chmod +x /etc/init.d/firewall.sh

E coloco em /etc/rc.local (Debian e Ubuntu) antes de 'exit 0', assim:
...
/etc/init.d/firewall.sh start

exit 0

Dessa maneira o iptables inicia junto com o sistema e você pode iniciar, parar e reiniciar no terminal com o comando:
#/etc/init.d/firewall.sh start, stop ou restart.


12. Re: Squid, está instalado mas não bloqueia sites

Rafael Pereira
horohoro

(usa Ubuntu)

Enviado em 23/04/2017 - 12:38h

Buckminster escreveu:

Tenta essa regra abaixo no terminal:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128


e testa sem reiniciar a máquina.

Mas depois tu deverá fazer um script do Iptables para o redirecionamento ficar permanente. No terminal as regras do Iptables funcionam somente até reiniciar a máquina.

Aqui tem uma configuração básica do Iptables:

https://www.vivaolinux.com.br/dica/Configuracao-basica-do-IPtables

Mas tu pode usar o seguinte script:

#!/bin/bash
#Desabilitando o tráfego entre as placas
#################################
echo 0 > /proc/sys/net/ipv4/ip_forward
#
##Apagando e restaurando as chains e tabelas
######################################
iptables -Z # Zera as regras de todas as chains
iptables -F # Remove as regras de todas as chains
iptables -X # Apaga todas as chains
##Proteção contra ping, SYN Cookies, IP Spoofing e proteções do kernel
#
##########################################################
echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Syn Flood (DoS)
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Port scanners
echo 0 > /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 1 > $i/secure_redirects; done # Redirecionamento seguro de pacotes
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all # Sem ping e tracert
#
# 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
#
## Regras de segurança na internet e acessos
#####################################
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 ethx -j DROP # Interface de entrada da internet
iptables -A FORWARD -m state --state NEW ! -i ethx -j DROP # Interface de entrada da internet
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#
# Redirecionamento para o Squid e mascaramento/compartilhamento
###########################################
iptables -t nat -A PREROUTING -i ethx -p tcp --dport 80 -j REDIRECT --to-port 3128 # Interface da rede interna
iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE # Interface de entrada da internet
#
# A partir daqui você pode inserir as regras de liberação e bloqueio, não esqueça habilitar no final o tráfego entre as placas.
#
# Habilitando o tráfego entre as placas
##########################
echo 1 > /proc/sys/net/ipv4/ip_forward
#

Quanto à execução do script eu sempre faço assim, como root:
Crio o script em /etc/init.d/ (Debian e Ubuntu):

#vim /etc/init.d/firewall.sh << eu usei o vim, você usa o teu editor de texto preferido e pode colocar outro nome para o script (aconselhável).

Coloco as regras dentro.
Salvo e saio.

Dou permissão de execução:
# chmod +x /etc/init.d/firewall.sh

E coloco em /etc/rc.local (Debian e Ubuntu) antes de 'exit 0', assim:
...
/etc/init.d/firewall.sh start

exit 0

Dessa maneira o iptables inicia junto com o sistema e você pode iniciar, parar e reiniciar no terminal com o comando:
#/etc/init.d/firewall.sh start, stop ou restart.


Testei com esse comando, não adiantou também, agora vou dar uma olhada nesse tutorial de iptables que você fez, obrigado.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts