SQUID - Configsammlung
Moderator: Securepoint
SQUID - Configsammlung
Die Einstellungen an den Templates können im Webinterface unter "Extras -> Erweiterte Einstellugen -> Vorlagen" gemacht werden!
Eine allgemeine Anleitung zum Bearbeiten von Templates finden Sie hier:
http://www.securepoint.de/support/topic.php?id=545
- Webzugriff für bestimmte Benutzer ohne Authetifizierung
- Binden des Squids an eine IP: Webzugriff im VPN, Sourcerouting über multipath Routing
- Subversion über Squid
- Reverse Proxy
- Trafficlimitierung
- Mehrere Benutzergruppen
- Zeitbasierter Zugriff
- Bestimmte Dateianhänge blocken
- Bestimmt Webseiten über verschiedene Leitungen routen
Passen Sie dazu das Template /etc/squid/squid.conf an.
Code: Alles auswählen
acl pc_maier src 192.168.1.2/255.255.255.255
acl netz2 src 192.168.2.0/255.255.255.0
http_access allow pc_maier all
http_access allow netz2 all
Template: /etc/dansguardian/dansguardian.conf
Code: Alles auswählen
# source ip. on | off
forwardedfor = on
Man kann den Squid so konfigurieren, dass er mit der IP von eth1 rausschickt. Für das normale Internet greift dann das HideNAT, für den Tunnel die Ausnahme.
Somit kann alles per Port 80 angesprochen werden!
In der 10er kann der Wert über die Weboberfläche angepasst werden! Anwendungen-> Http-Proxy -> Allgemein -> Ausgehende Adresse bestimmen
ACHTUNG!
Gültig in allen Versionen 5888 gibt es ein vordefinierte Variable die nur über die CLI gesetz werden muss:
Code: Alles auswählen
change extc_value http_proxy OUTGOING_ADDR 192.168.175.1
restart application SERVICE_HTTP_PROXY
Über den Proxy soll ein Subversion-Server im Internet angesprochen werden. Damit der Proxy die verscheidenen Modi versteht, muss das Template "/etc/squid/squid.conf" angepasst werden.
Alternativ kann auch https verwendet werden da dann die Pakate nur durchgereicht werden.
Code: Alles auswählen
extension_methods REPORT MERGE MKACTIVITY CHECKOUT GET PROPFIND PUT MKCOL MOVE COPY DELETE LOCK
Von Außen soll ein interner Webserver über den Proxy erreichbar sein. Allerdings soll das "Portforwarding" nur gemacht werden, wenn im Browser der DNS-Name angegeben wurde. Dies kann nur auf Applikations-Ebene geschehen und kann über Anpassungen im "/etc/squid/squid.conf" vorgenommen werden.
Anmerkung: Der Transparente-Proxy kann nicht verwendet werden!
Fügen Sie diesen Code am Anfang ein:
Deaktiviert den Transparenten-Proxy
Code: Alles auswählen
http_port 127.0.0.1:49221
Code: Alles auswählen
http_port 194.2.12.12:80 vhost
Code: Alles auswählen
cache_peer 192.168.1.1 parent 80 0 no-query originserver
collapsed_forwarding on
Code: Alles auswählen
acl hostedDomain dstdomain meinedomain.de
Code: Alles auswählen
http_access allow localhost all
Code: Alles auswählen
cache_peer_access 192.168.1.1 allow hostedDomain
never_direct deny all
- Speichern Sie die Config unter einem anderen Namen
Manchen Benutzern oder gesamten Netzen soll der Traffic begrenzt werden. Diese Optionen sind erst ab Release3 verfügbar. Passen Sie dabei das Template /etc/squid/squid.conf an.
Begrenzt den Traffic des gesamten Netzwerkes auf 64KB/s,
Begrenzt den Traffic eines einzelnen Benutzers auf 32 KB/s das restliche Netz ist nicht begrenzt.delay_pools 1
delay_class 1 1
delay_access 1 allow all
delay_parameters 1 64000/64000
acl pc_maier src 192.168.4.92/255.255.255.255
delay_pools 1
delay_class 1 2
delay_access 1 allow pc_maier
delay_access 1 deny all
delay_parameters 1 -1/-1 32000/32000
Weist den Dateien mit den Endungen (zip|exe|cmd|rar|com|mp3) ein Geschwindigkeit von 1KB/s zu.delay_parameters 1 -1/-1 32000/32000
delay_parameter -> name
1 -> Zuweisung des delay_pools
-1/-1 -> Unlimitierter Traffic für das gesamte Netz
32000/32000 -> begrenzung der acl auf 32KB/s
acl dateien urlpath_regex -i \\.(zip|exe|cmd|rar|com|mp3)($)
delay_pools 1
delay_class 1 1
delay_parameters 1 1024/1024
delay_access 1 allow dateien
delay_access 1 deny all
Lösung: Die Authentifizierung am Proxy und die Auswertung der Blockingliste verwendet den selben Mechanismus. In der Standardkonfiguration erfolgt die Anmeldung am Proxy vor der Auswertung der Blockingliste. Ist die Anmeldung erfolgreich, erfolgt keine weitere Prüfung mehr. Zur Behebung des Problems muss man die Reihenfolge der Auswertung im Template des Proxyservers umstellen.
Folgender Abschnitt befindet sich im Template /etc/squid/squid.conf:
Um nun die Blockingliste vor der Authentifizierung auszuwerten, muss der letzte Abschnitt vor die anderen drei gesetzt werden.#IF ${ENABLE_AUTH_LOCAL}=1
http_access allow authentication all
#ENDIF
#IF ${ENABLE_AUTH_RADIUS}=1
http_access allow authentication all
#ENDIF
#IF ${ENABLE_AUTH_LDAP}=1
http_access allow authentication all
#ENDIF
# http_access allow noporn authentication
#IF ${ENABLE_BANNED_URL_LIST}=1
http_access deny porn all
#ENDIF
Dieser Ausdruck erfasst alle Ziel-URLs, die den Begriff "jappy" enthalten, also z.b. www.jappy.de, pics.jappy.tv etc...acl jappy dstdom_regex -i ..jappy..
Dann weist man dieser die entsprechende up/downloadgeschwindigkeit zu:
Man kann diese Begrenzung auch mit einer Umgebungsvariable steuern. Dazu fügt man z.B. in den erweiterten Einstellung eine entsprechende Variable hinzu. Die Zuweisung der Geschwindigkeit sieht dann so aus:delay_pools 1
delay_class 1 2
delay_access 1 allow jappy
delay_access 1 deny all
delay_parameters 1 -1/-1 4000/4000
Die Variable kann in den erweiterten Einstellungen des Webinterface hinzufügen und dann auf der CLI setzen bzw. löschen, und zwar so:#IF ${JAPPY_LANGSAM}=1
delay_pools 1
delay_class 1 2
delay_access 1 allow jappy
delay_access 1 deny all
delay_parameters 1 -1/-1 4000/4000
#ENDIF
oder zum löschen:change extc_value http_proxy JAPPY_LANGSAM 1
change extc_value http_proxy JAPPY_LANGSAM 0
ich vermute mal, das muss dann so aussehen:
Code: Alles auswählen
delay_pools 1
delay_class 1 2
delay_access 1 allow jappy
delay_access 1 deny all
delay_body_max_size 1 10M
delay_parameters 1 -1/-1 4000/4000
ich möchte anhand zweier Beispiele, die Einrichtung mehrerer Gruppen im Zusammenspiel mit dem URL-Filter erläutern.
- Beispiel 1 zeigt dies über die Authentifizierung anhand lokaler Benutzer
- Beispiel 2 anhand einer NTML-Authentifizierung.
Anmerkung: Der transparente Proxy kann nicht verwendet werden. Um die Anpassungen dauerhaft zu sichern muss die ID im Template /etc/squid/squid.conf erhöht werden.
Wenn wir neue Templates anlegen, wird auf eine Eingabe gewartet. Ein "**" schließt die Eingabe ab!
Ziel:
Gruppe-A: Dürfen auf Whitelist zugreifen Blacklist ist aber gesperrt
Gruppe-B: Sperrt die Einträge der Blacklist gibt den Rest frei
Gruppe-C: Gibt die Whitelist frei sperrt den Rest
Beispiel 1:
Vorbereitungen: Verbinden Sie sich mit dem Benutzer admin und dem Programm Putty an der Firewall!
Anlegen von 3 Benutzergruppen über die CLI.
Code: Alles auswählen
add extc_template http_proxy /etc/squid/groupa.txt
add extc_template http_proxy /etc/squid/groupb.txt
add extc_template http_proxy /etc/squid/groupc.txt
Code: Alles auswählen
add extc_template http_proxy /etc/squid/black-groupa.txt
add extc_template http_proxy /etc/squid/white-groupa.txt
add extc_template http_proxy /etc/squid/black-groupb.txt
add extc_template http_proxy /etc/squid/white-groupb.txt
add extc_template http_proxy /etc/squid/black-groupc.txt
add extc_template http_proxy /etc/squid/white-groupc.txt
Dazu gehen Sie im Webinterface auf "Extras -> Erweitert Einstellunge -> Ja -> Vorlagen -> http_proxy" dort wählen Sie die Datei "/etc/squid/squid.conf" aus. Hier sollten in der Auswahl auch die angelegten Templates sichtbar sein:
#IF ${ENABLE_EXCEPTION_URL_LIST}=1
http_access allow whitelist all
#ENDIF
//hinter dieser Stelle den folgenden Code einfügen
Code: Alles auswählen
acl whitelist_groupa url_regex "/etc/squid/white-groupa.txt"
acl whitelist_groupb url_regex "/etc/squid/white-groupb.txt"
acl whitelist_groupc url_regex "/etc/squid/white-groupc.txt"
acl blacklist_groupa url_regex "/etc/squid/black-groupa.txt"
acl blacklist_groupb url_regex "/etc/squid/black-groupb.txt"
acl blacklist_groupc url_regex "/etc/squid/black-groupc.txt"
acl UsersGroupA proxy_auth "/etc/squid/groupa.txt"
acl UsersGroupB proxy_auth "/etc/squid/groupb.txt"
acl UsersGroupC proxy_auth "/etc/squid/groupc.txt"
Code: Alles auswählen
#IF ${ENABLE_AUTH_LOCAL}=1
#dürfen auf whitelist zugreifen blacklist ist gesperrt
http_access allow UsersGroupA whitelist_groupa
http_access deny UsersGroupA blacklist_groupa
#sperrt die Einträge der blacklist gibt den rest frei
http_access deny UsersGroupB blacklist_groupb
http_access allow UsersGroupB all
#gibt die whitelist frei sperrt den rest
http_access allow UsersGroupC whitelist_groupc
http_access deny UsersGroupC all
#ENDIF
Hier den mittleren Wert auskommentieren
Code: Alles auswählen
#IF ${ENABLE_AUTH_LOCAL}=1
#http_access allow authentication whitelist
#ENDIF
Als Wiltcard um in der Blacklist alles zu sperren, geben Sie .* ein.
Anlegen mehere Benutzergruppen über NTML-Authentifizierung
Vorbereitungen: Verbinden Sie sich mit dem Benutzer admin und dem Programm Putty an der Firewall!
Anlegen von jeweils 3 Black- und Whitelists:
Code: Alles auswählen
add extc_template http_proxy /etc/squid/black-groupa.txt
add extc_template http_proxy /etc/squid/white-groupa.txt
add extc_template http_proxy /etc/squid/black-groupb.txt
add extc_template http_proxy /etc/squid/white-groupb.txt
add extc_template http_proxy /etc/squid/black-groupc.txt
add extc_template http_proxy /etc/squid/white-groupc.txt
Dazu gehen Sie im Webinterface auf "Extras -> Erweitert Einstellunge -> Ja -> Vorlagen -> http_proxy" dort wählen Sie die Datei "/etc/squid/squid.conf" aus. Hier sollten in der Auswahl auch die angelegten Gruppen sichtbar sein:
Code: Alles auswählen
...
external_acl_type nt_group %LOGIN /usr/libexec/wbinfo_group
acl authentication external nt_group ${NTLM_GROUP}
acl ad-gruppe2 external nt_group ad-gruppe2
acl ad-gruppe3 external nt_group ad-gruppe3
...
#IF ${ENABLE_EXCEPTION_URL_LIST}=1
http_access allow whitelist all
#ENDIF
//hinter dieser Stelle den folgenden Code einfügen
Code: Alles auswählen
acl whitelist_groupa url_regex "/etc/squid/white-groupa.txt"
acl whitelist_groupb url_regex "/etc/squid/white-groupb.txt"
acl whitelist_groupc url_regex "/etc/squid/white-groupc.txt"
acl blacklist_groupa url_regex "/etc/squid/black-groupa.txt"
acl blacklist_groupb url_regex "/etc/squid/black-groupb.txt"
acl blacklist_groupc url_regex "/etc/squid/black-groupc.txt"
Code: Alles auswählen
#IF ${ENABLE_AUTH_NTLM}=1
http_access allow authentication whitelist_groupa
http_access deny authentication blacklist_groupa
http_access deny ad-gruppe2 blacklist_groupb
http_access allow ad-gruppe2 all
http_access allow ad-gruppe3 whitelist_groupc
http_access deny ad-gruppe3 all
http_access deny !authentication
#ENDIF
Debuggingmöglichkeiten finden Sie hier:
http://www.securepoint.de/support/topic.php?id=1011
Code: Alles auswählen
Days of the Week
S Sunday
M Monday
T Tuesday
W Wednesday
H Thursday
F Friday
A Saturday
D All weekdays
Code: Alles auswählen
acl business_hours time M T W H F 9:00-17:00
Code: Alles auswählen
acl mornings time 08:00-12:00
Erlaubt den Zugriff am Dienstag von 11 bis 17Uhr
Code: Alles auswählen
acl time_access time T 11:00-17:00
http_access allow time_access all
http_access deny all
Code: Alles auswählen
acl time_access time T 11:00-17:00
http_access allow time_access whitelist
http_access deny blacklist
Extras -> CLI -> CLI Befehl senden
Code: Alles auswählen
add extc_template http_proxy /etc/squid/bannedextensionlist
Extras -> Erweiterte Einstellungen -> Vorlagen
-> http_proxy -> /etc/dansguardian/bannedextensionlist
vor die Zeile
Code: Alles auswählen
${BANNED_EXTENSION_LIST,listx}
-> http_proxy -> /etc/squid/squid.conf
suchen nach:
Code: Alles auswählen
acl ssh proto SSH
Code: Alles auswählen
#IF ${ENABLE_BANNED_EXTENSION_LIST}=1
acl bannedextensions url_regex -i "/etc/squid/bannedextensionlist"
#ENDIF
Code: Alles auswählen
#IF ${ENABLE_AUTH_NTLM}=1
http_access deny !authentication
http_access allow authentication whitelist
#ENDIF
#ENDIF
Code: Alles auswählen
http_access deny bannedextensions
-> http_proxy -> /etc/squid/bannedextensionlist
folgendes einfügen:
Code: Alles auswählen
\\${BANNED_EXTENSION_LIST,listx}$
Die gesperrten Extensions können ganz normal über Anwendungen -> HTTP-Proxy gepflegt werden.
Damit die Änderungen auch Updates überleben, kann man in der ersten Zeile der /etc/squid/squid.conf noch das Datum auf 2020 oder so erhöhen. Funktioniert nach dem Update dann der Proxy nicht, hat sich das Template grundlegend geändert und man sollte alle Änderungen manuell einpflegen.
An die SP sind 2 Leitungen angeschlossen:
1. DSL - Hohe Latenz, hohe Bandbreite
2. Standleitung - Geringe Latenz, mittlere Bandbreite
Über die Standleitung sollen nur Firmenportale aufgrund der geringen Latenz erreichbar sein, alle anderen Webseiten sollen über ppp0 laufen.
Vorbereitung:
Annahme: Auf eth1 (internes Netz) befindet sich die folgende IP: 192.168.175.1/24, fügen Sie nun eine weitere IP hinzu: 192.168.175.2/24.
Die IPs dienen uns später für das Routing, über die .1 soll alles über ppp0 über die .2 soll alles über die Standleitung.
Fügen Sie nun ein neues Template hinzu "Extras -> CLI"
Code: Alles auswählen
add extc_template http_proxy /etc/squid/routed_urls.txt
Code: Alles auswählen
portal1.firma.de
portal.firma2.com
firm3.org
Template /etc/squid/squid.conf
Code: Alles auswählen
#$Id: 2010-09-13 08:50:34 +0000 $
http_port 127.0.0.1:49221 no-connection-auth transparent
# NEU: Definiert eine ACL mit einer Liste unsere Domains
acl routed_urls url_regex "/etc/squid/routed_urls.txt"
#NEU: Setzt die Ausgangs-IP auf die.2 wenn die Domain auf der Liste steht
tcp_outgoing_address 192.168.175.2 routed_urls
#IF ${OUTGOING_ADDR}
tcp_outgoing_address ${OUTGOING_ADDR}
#ENDIF
Gehen Sie nun auf "Anwendungen -> Http-Proxy" und setzen dort die Ausgangaadresse auf 192.168.175.1.
Damit bewirken wir das alles was auf die URLs zutrifft mit 192.168.175.2 maskiert wird und alles Andere mit 192.168.175.2. Über die Sourcerouten steuern wir nun über welche Leitung es geht.
Routen: Legen Sie 2 Sourcerouten an
192.168.175.1/32 -> ppp0 -> 0.0.0.0/0
192.168.175.2/32 -> IP_VOM_ROUTER -> 0.0.0.0/0