Linux - Squid auf dem lokalen Computer zur Steuerung des ausgehenden Datenverkehrs

Linux - Squid auf dem lokalen Computer zur Steuerung des ausgehenden Datenverkehrs

Ich versuche, Squid auf meinem Computer so einzurichten, dass nur der ausgehende Datenverkehr desselben Computers kontrolliert wird. Wenn ich das richtig verstehe, läuft Squid auf den meisten Linux-Distributionen als Benutzer „squid“ (meine ist Fedora, falls das wichtig ist?).

Ich habe iptables so eingerichtet, dass alle ausgehenden Pakete außer denen von UID 0 und UID 23 (Root & Squid) gelöscht werden.

: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

Ich möchte dann die Squid-Proxy-Informationen für jedes lokale Benutzerkonto manuell in den Browser eingeben müssen (ich glaube also nicht, dass ich ein transparentes Setup anstrebe). Wenn möglich hätte ich gerne einen Benutzer/Passwort, das erforderlich ist, um eine Verbindung zu Squid herstellen zu können, um zu verhindern, dass Benutzer auf das Internet zugreifen können, außer über den Squid-Proxy?

Meine aktuelle squid.conf sieht wie folgt aus, funktioniert aber überhaupt nicht und beinhaltet offensichtlich keine Benutzer-/Passwort-Anforderung:

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 .   

Ist das, was ich versuche, erreichbar und gehe ich es auf die richtige Art und Weise an?

Wird das, was ich mit iptables gemacht habe, funktionieren?

Mir ist klar, dass ich nicht in 10 Minuten lernen werde, wie man das richtig einrichtet. Daher sind alle Hilfestellungen und Hinweise auf Anleitungen oder sogar Alternativlösungen zur Bewerkstelligung des Problems willkommen.

Antwort1

Wahrscheinlich müssen Sie für andere Programme zumindest den Zugriff auf DNS öffnen.

Squid verfügt zwar über ein Authentifizierungsmodul, das Sie in Ihrem Fall jedoch nicht benötigen sollten. Da nur Squid auf das Internet zugreifen kann, müssen alle Benutzer es verwenden.

Überprüfen Sie die Umgebungsvariablen, die zum Einrichten von Proxys verwendet werden, und konfigurieren Sie sie global. Sie sollten http_proxymindestens Folgendes festlegen.

Es gibt einen wpad.datMechanismus zum Konfigurieren von Proxys, aber ich habe ihn nicht wie beabsichtigt verwendet.

Ich glaube, Sie werden feststellen, dass viele Dienste nicht aufgeführte Ports verwenden und das Surferlebnis dadurch nicht besonders gut sein wird.

Da Sie anscheinend keine Sites blockieren, ist es möglicherweise einfacher, nur die Ports mithilfe von zu begrenzen iptables.

verwandte Informationen