Eu também recomendaria uma configuração de proxy transparente. Isso pode ser feito em três etapas.
- Configuração do Squid (para que ele funcione como um proxy transparente)
- Configuração do Iptables (configure o sistema como roteador e, em seguida, encaminhe todo o tráfego HTTP para o Squid)
- Use as ACLs do Squid para filtrar suas solicitações de http
1. Configuração do Squid
Considerando que você é capaz de instalar o squid e editar seu squid.conf, este seria um exemplo simples (condensado) para habilitar um proxy http transparente para a rede 192.168.111.0/24 e * .222. / 24. / p>
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
acl lan src 192.168.111.1 192.168.222.0/24
http_access allow localhost
http_access allow lan
2. Configuração do Iptables
Suas regras DNAT se pareceriam com isso, considerando que o serviço do squid está sendo executado no padrão porta (3128).
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
3. ACLs do Squid
Seu exemplo de ACL pode ser assim. Basta usar a Access Controls apropriada para o seu caso.
acl evelrequest url_regex -i ^http(s)://([a-zA-Z]+).hostname.tld/requestpath/.*$
http_access deny evelrequest