Somente a questão do SQUID ainda não está muito clara. Preciso que:
1 - Se o usuário não colocar o proxy no navegador, não consiga navegar nem em http e nem em https
Mole: Bloqueie tudo que vá passar da rede interna pra externa.
iptables -A FORWARD -p tcp -j DROP
Depois libere só os acessos legítimos, tipo, correio eletrônico:
iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
Só tenha cuidado que, apesar de eu ter dito "depois", a regra de liberação tem que vir antes, no script.
2 - Se o usuário não colocar o proxy no navegador, possa utilizar o compartilhamento samba da rede e o ssh normalmente
Seu script de firewall só vai controlar o que passar pelo firewall; compartilhamentos samba da rede não passam pelo firewall, a menos que o servidor de arquivos seja justamente o firewall. Nesse caso, é um tráfego que está entrando (INPUT), não atravessando (FORWARD). É só incluir a liberação na cadeia correta.
Sobre o ssh... é pra liberar ssh no servidor, ou pra fora?
3 - Se o usuário colocar o proxy no navegador, todas suas requisições passem pelo SQUID, sem usuário e senha.
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
Ah!!! Informe-se sobre o WPAD. Assim o usuário não vai precisar colocar o proxy no navegador: basta selecionar "detectar automaticamente".