Apresentamos regras do Squid para filtrar acesso dos clientes da rede com base no MAC e IP. Dessa forma, podemos usar regras para bloquear determinados clientes pelo endereço ou fazer a filtragem de acesso de conteúdo.

Além disso, vamos aproveitar a configuração usada no post :Squid Proxy Instalação e Configuração.
Lista do tutorial sobre Squid e SquidGuard:
Parte 1: Squid Proxy Instalação e Configuração.
Parte 2: Squid Proxy: Filtrar clientes por IP e MAC
Parte 3: Squid: Autenticação de Usuário
Parte 4: SquidGuard : Instalação e Configuração
Parte 5: SquidGuard : como importar blocklist ?
Dessa forma, vamos nos ater somente as configurações relacionadas abaixo:
- 1) Regra com base no IP do cliente
- 2) Regra com base no MAC do cliente
- 3) Regra filtrando domínios por MACs de clientes
Configuração usada no Squid
Aqui usamos o mesmo arquivo de configuração inicial (squid.conf) que usamos no post: Squid Proxy Instalação e Configuração.
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl CONNECT method CONNECT
#----------------------------
## Nega acesso a portas nao Safe_ports
http_access deny !Safe_ports
#----------------------------
##Nega CONNECT a nao secure SSL ports
http_access deny CONNECT !SSL_ports
#----------------------------
#porta que o squid vai ouvir / Squid listen port
http_port 3128
#----------------------------
# Insira regras
#----------------------------
# Somente permite essa rede
acl Minha_Rede src 192.168.10.0/24
http_access allow Minha_Rede
#----------------------------
#o resto bloqueia
http_access deny all
Configure o navegador dos clientes:

1) Regra com base no IP do cliente
Nesse caso vamos criar uma lista de bloqueio de IPs dos clientes que queremos bloquear. Este é o arquivo /etc/squid/squid.conf:
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl CONNECT method CONNECT
#----------------------------
## Nega acesso a portas nao Safe_ports
http_access deny !Safe_ports
#----------------------------
##Nega CONNECT a nao secure SSL ports
http_access deny CONNECT !SSL_ports
#----------------------------
#porta que o squid vai ouvir
http_port 3128
#----------------------------
# Insira regras
acl SRC_IP src "/etc/squid/SRC_IP.txt"
http_access deny SRC_IP
#----------------------------
# Somente permite essa rede
acl Minha_Rede src 192.168.10.0/24
http_access allow Minha_Rede
#----------------------------
#o resto bloqueia,
http_access deny all
(acl SRC_IP src “/etc/squid/SRC_IP.txt”) = Aqui, a ACL (SRC_IP) utiliza os IPs de origem (src) armazenados no arquivo ( “/etc/squid/SRC_IP.txt”).
Em seguida, utilizamos o (http_access deny SRC_IP) para bloquear acesso http (http_access deny) aos IPs contidos na ACL (SRC_IP).
Agora vamos criar o arquivo /etc/squid/SRC_IP.txt. Para isso podemos usar um editor :
sudo nano /etc/squid/SRC_IP.txt
Em seguida adicione os IPs que deseja bloquear. Coloque um IP por linha. Exemplo:
192.168.10.5
192.168.10.7
Em seguida, vamos reiniciar o squid :
sudo service squid restart
Agora limpe o cache do navegador do cliente e tente acessar.
Aumente seu conhecimento em Redes
Sugestão de livros:
2) Regra com base no MAC do cliente
Agora vamos criar uma lista de bloqueio de MACs dos clientes que queremos bloquear. Este é o arquivo /etc/squid/squid.conf:
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl CONNECT method CONNECT
#----------------------------
## Nega acesso a portas nao Safe_ports
http_access deny !Safe_ports
#----------------------------
##Nega CONNECT a nao secure SSL ports
http_access deny CONNECT !SSL_ports
#----------------------------
#porta que o squid vai ouvir
http_port 3128
#----------------------------
# Insira regras
acl SRC_MAC arp "/etc/squid/SRC_MAC.txt"
http_access deny SRC_MAC
#----------------------------
# Somente permite essa rede
acl Minha_Rede src 192.168.10.0/24
http_access allow Minha_Rede
#----------------------------
#o resto bloqueia, Block all the rest
http_access deny all
(acl SRC_MAC arp “/etc/squid/SRC_MAC.txt”) = Aqui, a ACL (SRC_MAC) utiliza os MACs de origem (arp) armazenados no arquivo ( “/etc/squid/SRC_MAC.txt”).
Em seguida, utilizamos o (http_access deny SRC_MAC) para bloquear acesso http (http_access deny) os MACs contidos na ACL (SRC_MAC).
Agora vamos criar o arquivo /etc/squid/SRC_MAC.txt. Para isso podemos usar um editor :
sudo nano /etc/squid/SRC_MAC.txt
Em seguida adicione os MACs que deseja bloquear. Coloque um MAC por linha. Exemplo:
08:00:27:4b:32:42
08:00:27:55:11:11
Em seguida, vamos reiniciar o squid :
sudo service squid restart
Agora limpe o cache do navegador do cliente e tente acessar.
3) Regra filtrando domínios por MACs de clientes
Nesse caso, queremos que alguns clientes que possuem seu MAC no arquivo (/etc/squid/SRC_MAC.txt) não tenham permissão para acessar alguns domínios.
Os outros clientes da rede poderão acessar os domínios normalmente.
Esse tipo de filtragem de domínios com base no MAC do cliente pode ser interessante quando queremos dar prioridade a alguns clientes na rede.
Dessa forma, clientes prioritários podem acessar normalmente, enquanto outros clientes sofrem restrição de acesso.
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl CONNECT method CONNECT
#----------------------------
## Nega acesso a portas nao Safe_ports
http_access deny !Safe_ports
#----------------------------
##Nega CONNECT a nao secure SSL ports
http_access deny CONNECT !SSL_ports
#----------------------------
#porta que o squid vai ouvir / Squid listen port
http_port 3128
#----------------------------
#insert rules / Insira regras
acl SRC_MAC arp "/etc/squid/SRC_MAC.txt"
acl Dominios_Proibidos dstdomain "/etc/squid/dominios_proibidos.txt"
http_access deny Dominios_Proibidos SRC_MAC
#----------------------------
# Somente permite essa rede
acl Minha_Rede src 192.168.10.0/24
http_access allow Minha_Rede
#----------------------------
#o resto bloqueia, Block all the rest
http_access deny all
(acl SRC_MAC arp “/etc/squid/SRC_MAC.txt”) = Aqui, a ACL (SRC_MAC) utiliza os MACs de origem (arp) armazenados no arquivo ( “/etc/squid/SRC_MAC.txt”).
(acl Dominios_Proibidos dstdomain “/etc/squid/dominios_proibidos.txt”) =
Em seguida, utilizamos a ACL (Dominios_Proibidos) para bloquear os domínios de destino (dstdomain) armazenados no arquivo (“/etc/squid/dominios_proibidos.txt”).
Agora vamos usar (http_access deny Dominios_Proibidos SRC_MAC). Nesse caso, estamos bloqueando acesso http (http_access deny) aos domínios da ACL (Dominios_Proibidos) e que tenham seus MACs na ACL (SRC_MAC).
Agora vamos criar o arquivo /etc/squid/SRC_MAC.txt. Para isso podemos usar um editor :
sudo nano /etc/squid/SRC_MAC.txt
Em seguida adicione os MACs que deseja bloquear. Coloque um MAC por linha. Exemplo:
08:00:27:4b:32:42
08:00:27:55:11:11
Agora vamos criar o arquivo /etc/squid/dominios_proibidos.txt. Para isso podemos usar um editor :
sudo nano /etc/squid/dominios_proibidos.txt
Em seguida adicione os domínios que deseja bloquear. Coloque um domínio por linha. Exemplo:
.simplificandoredes.com
Em seguida, vamos reiniciar o squid :
sudo service squid restart
Agora limpe o cache do navegador do cliente e tente acessar.
Cenário usado

Veja mais:
Squid Proxy Instalação e Configuração.
PfBlockerNG: Lista de exceção para clientes

Juliana Mascarenhas
Data Scientist and Master in Computer Modeling by LNCC.
Computer Engineer
Python: mostrar portas TCP abertas
Modelagem de Dados e Seu primeiro Cliente!
Quais são as Principais Características de um SGBD relacional?
O que não te contam sobre Storytelling
Fazer gráficos ruins é mais fácil do que se pensa. Ninguém quer isso, mas acontece….
O Livro Storytelling com dados
Versão Kindle Versão física Revisitando uma literatura muito útil para todo profissional que precisa transmitir…