Squid- und DansGuardian-Proxy auf Ubuntu einrichten
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)
- Stoppen Sie Dienste:
/etc/init.d/dansguardian stop /etc/init.d/squid stop
- Stellen Sie die Squid-Backupdatei wieder her:
cp /etc/squid/squid.conf.bak /etc/squid/squid.conf
- Deaktivieren Sie das init-Skript, falls aktiviert:
update-rc.d -f winbind-ch.sh remove
Entfernen Sie geänderte ipmasq-Regeln und starten Sie ipmasq neu.
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.
Ähnliche Materialien

Bezahlte iPhone‑Apps kostenlos — ohne Jailbreak
RAID1: Festplatte ersetzen (Ausfall simulieren)

Opigno LMS auf Ubuntu 18.04 installieren

Schwache Mobilfunkverbindung beheben

Taskleiste in Windows fixieren und sperren
