Linux - Squid na máquina local para controlar o tráfego de saída

0

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?

    
por matt101 12.12.2015 / 12:21

1 resposta

0

Você provavelmente precisará abrir o acesso a pelo menos DNS para outros programas.

O Squid tem um módulo de autenticação, mas você não deve precisar dele no seu caso. Como apenas o squid pode acessar a web, todos os usuários serão forçados a usá-lo.

Verifique as variáveis de ambiente usadas para configurar proxies e configurá-las globalmente. Você deve definir http_proxy pelo menos.

Existe um mecanismo wpad.dat para configurar proxies, mas eu não usei como você pretende.

Acho que você encontrará muitos serviços usando portas não listadas e a experiência de navegação não será muito boa.

Como você não parece estar bloqueando nenhum site, pode ser mais simples limitar as portas usando iptables .

    
por 12.12.2015 / 17:57