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

Bezahlte iPhone‑Apps kostenlos — ohne Jailbreak
iOS

Bezahlte iPhone‑Apps kostenlos — ohne Jailbreak

RAID1: Festplatte ersetzen (Ausfall simulieren)
Sysadmin

RAID1: Festplatte ersetzen (Ausfall simulieren)

Opigno LMS auf Ubuntu 18.04 installieren
Anleitung

Opigno LMS auf Ubuntu 18.04 installieren

Schwache Mobilfunkverbindung beheben
Netzwerk

Schwache Mobilfunkverbindung beheben

Taskleiste in Windows fixieren und sperren
Windows

Taskleiste in Windows fixieren und sperren

Discord TTS geht nicht? Komplett‑Guide zur Fehlerbehebung
Support

Discord TTS geht nicht? Komplett‑Guide zur Fehlerbehebung