Technologieführer

Squid- und DansGuardian-Proxy auf Ubuntu einrichten

6 min read Linux Netzwerk Aktualisiert 11 Oct 2025
Squid + DansGuardian: Transparenter Proxy auf Ubuntu
Squid + DansGuardian: Transparenter Proxy auf Ubuntu

Dieser Leitfaden zeigt Schritt für Schritt, wie Sie Squid und DansGuardian als transparenten Proxy auf einem Ubuntu-Server einrichten, NTLM-Authentifizierung über winbind aktivieren und ipmasq für die Weiterleitung konfigurieren. Er enthält eine ausführliche Checkliste, Troubleshooting-Tipps, ein Start-/Rollback-Playbook und Testszenarien.

Übersicht

Dieser Artikel beschreibt die folgenden Hauptschritte:

  • Sicherung und Anpassung der Squid-Konfiguration
  • Einrichtung von ntlm_auth und Berechtigungen für winbindd_privileged
  • Installation und Konfiguration von DansGuardian
  • Konfiguration der Firewall/Weiterleitung mit ipmasq
  • Installation des DansGuardian Webmin-Moduls
  • Tests, Validierung und Troubleshooting

Wichtig: Lesen Sie zuerst die Checkliste “Vorbereitungen” weiter unten, um sicherzustellen, dass alle Abhängigkeiten vorhanden sind.

Voraussetzungen

  • Ubuntu-Server mit Root-Rechten
  • Samba / winbind installiert und der Server der Domäne beigetreten (falls NTLM verwendet wird)
  • Squid, DansGuardian und ipmasq sollten installierbar sein
  • Backups wichtiger Konfigurationsdateien

1. Backup und Grundkonfiguration von Squid

Wichtig: Vor jeder Änderung immer ein Backup der Konfigurationsdatei anlegen.

Führen Sie diese Befehle als root aus:

cp /etc/squid/squid.conf /etc/squid/squid.conf.bak nano -c /etc/squid/squid.conf

Ändern Sie anschließend in der Datei folgende Zeilen (Zeilennummern in Ihrem System können abweichen):

  • Zeile 73: setze auf

http_port 127.0.0.1:3128 transparent

  • Zeile 74: setze auf

http_port 8080

  • Zeile 593: setze auf

cache_peer 127.0.0.1 parent 8081 0 no-query login=*:nopassword

Uncommenten (entfernen des Kommentars) und ersetzen Sie die Platzhalter mit dem vollen Pfad zu ntlm_auth:

  • Zeilen 1791 bis 1783: ersetzen Sie mit

/usr/bin/ntlm_auth –helper-protocol=squid-2.5-ntlmssp

  • Zeilen 1800 bis 1803: ersetzen Sie mit

/usr/bin/ntlm_auth –helper-protocol=squid-2.5-basic

Weitere Einstellungen:

  • Zeile 2449: acl ntlm_auth proxy_auth REQUIRED
  • Zeile 2579: http_access allow ntlm_auth
  • Zeile 3161: forwarded_for off

Speichern Sie danach die Datei.

Wichtig: forwarded_for off verhindert, dass Squid die interne IP des Clients an externe Websites weiterleitet.

2. Berechtigungen für winbindd_privileged sicherstellen

Squid benötigt Zugriff auf /var/run/samba/winbindd_privileged, damit ntlm_auth korrekt läuft. Standard-Berechtigungen können nach einem Neustart zurückgesetzt werden. Um das dauerhaft zu handhaben, legen Sie ein Init-Skript an, das beim Boot die Rechte setzt.

Erstellen und editieren Sie /etc/init.d/winbind-ch.sh und fügen Sie exakt folgenden Inhalt ein:

#!/bin/sh
#set -x
WINBINDD_PRIVILEGED=/var/run/samba/winbindd_privileged
chmodgrp() {
chgrp proxy $WINBINDD_PRIVILEGED || return 1
chmod g+w $WINBINDD_PRIVILEGED || return 1
}
case "$1" in
start)
chmodgrp
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
#EOF

Dann registrieren Sie das Skript im Systemstart:

update-rc.d winbind-ch.sh start 21 2 3 4 5 .

Hinweis: Stellen Sie sicher, dass das Skript ausführbar ist (chmod +x /etc/init.d/winbind-ch.sh).

3. DansGuardian konfigurieren

Editieren Sie die Hauptkonfigurationsdatei:

nano -c /etc/dansguardian/dansguardian.conf

  • Kommentieren Sie Zeile 3 aus (falls dort z. B. ein Beispiel-include steht).
  • Ändern Sie in Zeile 62 den Port 8080 auf 8081 (DansGuardian hört auf 8081, Squid verbindet sich lokal).
  • Ändern Sie Zeile 102 von filtergroups = 1 auf

filtergroups = 2

Erstellen Sie die zweite Filtergruppe:

cp /etc/dansguardian/dansguardianf1.conf /etc/dansguardian/dansguardianf2.conf nano -c /etc/dansguardian/dansguardianf2.conf

Setzen Sie in der neuen Datei Zeile 29 auf:

naughtynesslimit = 100

Anti-Virus-Definitionen und Signatur-Update-Hosts sollten nicht blockiert werden, weil sonst Browser- oder Update-Zugriffe scheitern. Fügen Sie Ausnahmen hinzu:

Editieren Sie /etc/dansguardian/exceptionvirussitelist und tragen Sie dort die Domain Ihres AV-Anbieters ein, z. B.:

activeupdate.trendmicro.com

Fügen Sie die Domain auch in die Site-Ausnahmen ein:

/etc/dansguardian/exceptionsitelist

Beispiel: trendmicro.com

Starten oder Neustarten von DansGuardian:

/etc/init.d/dansguardian restart

4. Firewall und transparentes Proxying mit ipmasq

Ipmasq automatisiert Firewall- und NAT-Konfigurationen und wird hier zur Weiterleitung aller HTTP-Anfragen an DansGuardian verwendet.

Installieren:

apt-get install ipmasq -y

Kopieren Sie eine Beispielregel, die ausgehende HTTP-Requests an Port 8081 umleitet:

cp /usr/share/doc/ipmasq/examples/basics/I89tproxy.rul /etc/ipmasq/rules/I89tproxy.rul

Falls Sie Port-Weiterleitungen (DNAT) zu internen Servern benötigen, prüfen Sie die Beispielregeln:

/usr/share/doc/ipmasq/examples/dnat/C50dnat.rul

Wichtig: Passen Sie die Regelpfade und IP-Adressen an Ihre Netzwerktopologie an, bevor Sie ipmasq aktivieren.

5. DansGuardian Webmin-Modul installieren

Öffnen Sie einen Browser und gehen Sie zu https://192.168.1.1:10000/ und melden Sie sich als root an. Gehen Sie zu Webmin > Webmin Configuration > Webmin Modules. Wählen Sie “From ftp or http URL” und fügen Sie die folgende URL ein, dann klicken Sie auf Install Module:

http://internap.dl.sourceforge.net/sourceforge/dgwebminmodule/dg-0.5.10-pr5.wbm

6. Tests und Validierung

Nach einem Reboot konfigurieren Sie im Browser eines Testclients den Proxy auf die IP dieses Servers und Port 8080 (Squid). Testfälle:

  • Domänenverbundenes Windows: Browser auf Proxy 8080, öffnet eine Website, sollte automatisch per NTLM authentifizieren und die Benutzeranmeldung in DansGuardian-Logs erscheinen.
  • Nicht-domänen-Computer: Browser ohne Proxy, verbindet transparent via ipmasq → DansGuardian → Squid. DansGuardian-Logs zeigen die IP des Clients; beim Durchlaufen des Domain-Rechners sehen Sie Einträge mit 127.0.0.1 (Loopback), weil der Verkehr lokal durch Squid geleitet wird.
  • Testen Sie das Blocken einer Kategorie in DansGuardian und prüfen Sie, ob die Sperre greift.
  • Prüfen Sie, ob Antivirus-Update-Hosts erreichbar bleiben.

Wenn NTLM nicht funktioniert: Internet Explorer erwartet manchmal domainname\username im Anmeldefenster. Prüfen Sie auch Zeit-/Uhrzeitsynchronisation und Domänenbeitritt.

Troubleshooting (häufige Probleme und Lösungen)

  • Problem: ntlm_auth gibt Fehler aus

    • Prüfen Sie, ob winbind läuft und der Server in der Domäne ist.
    • Prüfen Sie /var/log/syslog und /var/log/samba/log.winbindd.
    • Stellen Sie sicher, dass /var/run/samba/winbindd_privileged die Gruppe “proxy” hat und g+w gesetzt ist.
  • Problem: Sites sehen interne IPs

    • Überprüfen Sie, dass forward_for off in squid.conf gesetzt ist.
  • Problem: DansGuardian blockt AV-Updates

    • Ergänzen Sie exceptionvirussitelist und exceptionsitelist entsprechend.
  • Problem: Firewall-Regeln werden nach Neustart nicht angewendet

    • Stellen Sie sicher, dass ipmasq beim Boot aktiviert ist und die Regeldateien korrekt liegen.
  • Problem: Webmin-Modul lässt sich nicht installieren

    • Prüfen Sie die Netzwerkverbindung und Proxy-Einstellungen des Servers; laden Sie das Modul ggf. lokal herunter und installieren Sie es von der Datei.

Rollback-Playbook (Sofortmaßnahme)

  1. Stoppen Sie Dienste:

/etc/init.d/dansguardian stop /etc/init.d/squid stop

  1. Stellen Sie die Squid-Backupdatei wieder her:

cp /etc/squid/squid.conf.bak /etc/squid/squid.conf

  1. Deaktivieren Sie das init-Skript, falls aktiviert:

update-rc.d -f winbind-ch.sh remove

  1. Entfernen Sie geänderte ipmasq-Regeln und starten Sie ipmasq neu.

  2. Starten Sie Dienste neu und prüfen Sie Logs.

Rollenbasierte Checkliste

Systemadministrator

  • Backup aller Konfigurationsdateien anlegen
  • Samba/Winbind installieren und Domänenbeitritt prüfen
  • Squid-Konfiguration anpassen und testen
  • Init-Skript erstellen und Berechtigungen prüfen
  • ipmasq-Regeln anpassen
  • Systemneustart und Validierung

Helpdesk / Tester

  • Testclients vorbereiten (domänen- und nicht-domänenbasiert)
  • Browser-Proxyeinstellungen setzen und testen
  • Sperrungen in DansGuardian verifizieren
  • Logs prüfen und Tickets melden

Akzeptanzkriterien

  • Domänenbenutzer authentifiziert automatisch per NTLM und wird in DansGuardian-Logs mit Benutzernamen geführt.
  • Nicht-domänen-Clients werden transparent gefiltert, ohne Browser-Proxy-Einstellungen.
  • Antivirus-Update-Hosts werden nicht blockiert.
  • Keine internen IP-Adressen werden an externe Websites geleakt.

Entscheidungshilfe (Mermaid-Flowchart)

flowchart TD
  A[Start: Client stellt HTTP-Anfrage] --> B{Ist Client domänenverbunden?}
  B -- Ja --> C[Client → Squid '127.0.0.1:3128']
  C --> D[Squid → DansGuardian '8081']
  D --> E[DansGuardian → Squid '8080']
  E --> F[Squid → Internet]
  B -- Nein --> G[Client → ipmasq Weiterleitung]
  G --> D
  F --> H[Ende]
  D --> H

Kurze Glossarzeile

  • NTLM: Netzwerk-Authentifizierungsprotokoll von Microsoft, hier durch winbind/ntlm_auth genutzt.
  • ipmasq: Utility zur automatischen Konfiguration von NAT/Firewall-Regeln.

Sicherheitshinweise

  • Führen Sie alle Dienste mit minimalen Rechten aus und prüfen Sie, ob nur notwendige Ports offen sind.
  • Überwachen Sie Logs (syslog, DansGuardian, Squid, Samba) regelmäßig auf Anomalien.
  • Beschränken Sie den Zugriff auf Webmin (z. B. IP-Whitelist, HTTPS, starke Passwörter).

Nützliche Links

Zusammenfassung

Dieser Leitfaden beschreibt das Konfigurieren eines transparenten Proxy-Setups mit Squid und DansGuardian, NTLM-Integration via winbind, Boot-Skripten zur Berechtigungsverwaltung und ipmasq-Regeln zur Weiterleitung. Testen Sie sorgfältig mit Domänen- und Nicht-Domänen-Clients und nutzen Sie die bereitgestellten Troubleshooting-Schritte und das Rollback-Playbook, um Probleme schnell zu beheben.

Wichtig: Prüfen Sie vor Rollout die Netzwerktopologie und passen Sie IP-Adressen, Gruppen- und Domänenangaben an Ihre Umgebung an.

Autor
Redaktion

Ähnliche Materialien

Podman auf Debian 11 installieren und nutzen
DevOps

Podman auf Debian 11 installieren und nutzen

Apt-Pinning: Kurze Einführung für Debian
Systemadministration

Apt-Pinning: Kurze Einführung für Debian

FSR 4 in jedem Spiel mit OptiScaler
Grafikkarten

FSR 4 in jedem Spiel mit OptiScaler

DansGuardian + Squid (NTLM) auf Debian Etch installieren
Netzwerk

DansGuardian + Squid (NTLM) auf Debian Etch installieren

App-Installationsfehler auf SD-Karte (Error -18) beheben
Android

App-Installationsfehler auf SD-Karte (Error -18) beheben

Netzwerkordner mit KNetAttach in KDE
Linux Netzwerk

Netzwerkordner mit KNetAttach in KDE