Estou tentando configurar o squid no meu computador para controlar o tráfego de saída apenas do mesmo computador. Se meu entendimento estiver correto, o squid é executado como usuário "squid" na maioria das distribuições Linux (o meu é o Fedora, se isso importa?).
Eu configurei o iptables para descartar todos os pacotes de saída, exceto os do uid 0 e uid 23 (root & squid).
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -j DROP
-A FORWARD -j DROP
-A OUTPUT -m owner --uid-owner 0 -j ACCEPT
-A OUTPUT -m owner --uid-owner 23 -j ACCEPT
-A OUTPUT -j DROP
COMMIT
Eu, então, quero ter que inserir manualmente as informações do proxy do squid no navegador para cada conta de usuário local (portanto, não acho que eu esteja atrás de uma configuração transparente). Se possível, eu gostaria que um usuário / passe fosse capaz de se conectar ao squid, para evitar que os usuários tivessem acesso à internet, exceto através do proxy do squid?
Meu squid.conf atual é o seguinte, mas ele não funciona de forma alguma e, obviamente, não incorpora um requisito de usuário / aprovaçã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 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 deny !safe_ports
http_access deny CONNECT !ssl_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern .
O que eu estou tentando fazer é viável, e estou indo da maneira certa?
O que eu fiz com o iptables funciona?
Eu percebo que isso não é algo que eu vou aprender a configurar corretamente em 10 minutos, então qualquer ajuda / ponteiros para guias ou até mesmo soluções alternativas sobre como conseguir isso são bem-vindas?