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 Void Linux)

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 Void Linux)

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.