Der integrierte Squid-Proxy der Securepoint V2007nx Software kennt normaler Weise nur Benutzer, die Internetzugriff haben. Darüber hinaus gibt es nur noch die Möglichkeit bestimmte Seiten für diese Benutzer zu sperren oder zu erlauben. Es kann jedoch sinnvoll sein unterschiedliche Gruppen von Benutzern einzurichten und diesen unterschiedliche Internetseiten zu erlauben.
Ich benötige z.B. immer wieder eine Gruppe von Benutzern die alle und eine die nur bestimmte Webseiten aufrufen darf. Zusätzlich sollen alle auf bestimmte Webseiten ohne Benutzerauthentifizierung zugreifen können und bestimmte Webseiten sollen generell gesperrt werden. Da man diese speziellen Berechtigungen leider nicht über den Securepoint Security Manager einstellen kann, muss man die Änderungen über das CLI (Command line interface) direkt auf der Firewall konfigurieren.
Die Securepoint V2007nx Software speichert die gesamte Konfiguration in sogenannten Templates in einer SQLite-Datenbank. Beim Booten werden aus den Templates die eigentlichen Konfigurationsdateien erstellt. Deshalb ist es nicht sinnvoll direkt die Konfigurationsdateien anzupassen. Beim nächsten Neustart würden diese Änderungen ansonsten wieder überschrieben. Es ist stattdessen notwendig, die Templates zu ändern.
Die Templates können nicht angepasst sondern nur komplett überschrieben werden. Deshalb sollte man sich zuerst das alte Template anzeigen lassen, um dies mit Copy & Paste in einen Editor seiner Wahl zu kopieren. Danach kann man es anpassen und hinterher mit der geänderten Version das alte Template ersetzten.
Mit show extc_template /etc/squid/squid.conf
kann man das Template für die zentrale Konfigurationsdatei von Squid anzeigen. Nachdem man es geändert hat kann man es mit change extc_template /etc/squid/squid.conf
ersetzen.
Für meine Zwecke habe ich das Template wie folgt angepasst (die roten Zeilen habe ich geändert bzw. eingefügt):
#$Id: squid.conf 4902 2007-09-19 11:32:23Z basti $ http_port 127.0.0.1:49221 transparent # Kaskadierung #IF ${ENABLE_FORWARD}=1 cache_peer ${FORWARD_PROXY_IP} parent ${FORWARD_PROXY_PORT} 0 default no-query #ENDIF icp_port 0 acl QUERY urlpath_regex cgi-bin \? acl all src 0.0.0.0/0.0.0.0 no_cache deny all cache_mem 16 MB cache_swap_low 70 cache_swap_high 75 maximum_object_size 4096 KB ipcache_size 1024 ipcache_low 70 ipcache_high 75 fqdncache_size 1024 #cache_dir ufs /var/spool/squid 1000 16 256 cache_dir null /dev/null #cache_access_log /var/log/squid/access.log cache_access_log /dev/null #cache_log /var/log/squid/cache.log cache_log /dev/null #cache_store_log /var/log/squid/store.log cache_store_log /dev/null emulate_httpd_log off mime_table /etc/squid/mime.conf log_mime_hdrs off pid_filename /var/run/squid.pid debug_options ALL,1 log_fqdn off ftp_user anonymous@foo unlinkd_program /usr/libexec/unlinkd # Authentisierung mit lokaler Datenbank #IF ${ENABLE_AUTH_LOCAL}=1 auth_param basic program /usr/libexec/ncsa_auth /etc/squid/squid_user.dat #ENDIF # Authentisierung mit Radius #IF ${ENABLE_AUTH_RADIUS}=1 auth_param basic program /usr/bin/squid_radius_auth -f /etc/squid_radius_auth.conf #ENDIF # Authentisierung mit LDAP oder AD #IF ${ENABLE_AUTH_LDAP}=1 auth_param basic program /usr/libexec/squid_spldap_auth -h ${GLOB_LDAP_URI} -d ${GLOB_AD_DOMAIN} #ENDIF auth_param basic realm Securepoint Firewall auth_param basic children 32 auth_param basic credentialsttl 2 hours refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 quick_abort_min 16 KB quick_abort_max 16 KB quick_abort_pct 95 negative_ttl 5 minutes positive_dns_ttl 6 hours negative_dns_ttl 5 minutes range_offset_limit 0 KB connect_timeout 120 seconds read_timeout 15 minutes request_timeout 30 seconds client_lifetime 1 day half_closed_clients on pconn_timeout 120 seconds shutdown_lifetime 30 seconds # Authentisierunf erforderlich #IF ${ENABLE_AUTH_LOCAL}=1 acl authentication proxy_auth REQUIRED #ENDIF #IF ${ENABLE_AUTH_RADIUS}=1 acl authentication proxy_auth REQUIRED #ENDIF #IF ${ENABLE_AUTH_LDAP}=1 acl authentication proxy_auth REQUIRED #ENDIF # Webseiten filtern acl porn url_regex "/etc/squid/denied.txt" acl noporn url_regex "/etc/squid/nodenied.txt" acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl SSL_ports port 443 acl Safe_ports port 20 21 80 81 443 1025-65535 acl CONNECT method CONNECT acl usergroup1 proxy_auth other acl usergroup2 proxy_auth "/etc/squid/unpriviligiert.txt" acl usergroup3 proxy_auth "/etc/squid/priviligiert.txt" # Download Grösse beschränken #IF ${ENABLE_SIZE_LIMIT}=1 reply_body_max_size ${REPLY_BODY_MAX_SIZE} allow all #ELSE reply_body_max_size 0 allow all #ENDIF # Kaskadierung #IF ${ENABLE_FORWARD}=1 never_direct allow all #ENDIF http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports # Zugriff erlaubt mit oder ohne Authentisierung #IF ${ENABLE_EXCEPTION_URL_LIST}=1 acl alle dstdomain .ohl.de .ups.com .ups.de .dpd.net .dpd.de http_access allow alle all #ENDIF # http_access allow noporn authentication #IF ${ENABLE_BANNED_URL_LIST}=1 http_access allow noporn authentication usergroup1 http_access deny porn authentication usergroup2 http_access allow authentication usergroup3 #ENDIF #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 icp_access deny all miss_access allow all ident_lookup_access deny all cache_mgr admin@somewhere cache_effective_user nobody cache_effective_group nogroup visible_hostname localhost unique_hostname localhost logfile_rotate 0 tcp_recv_bufsize 0 bytes memory_pools off forwarded_for off log_icp_queries off icp_hit_stale off minimum_direct_hops 4 cachemgr_passwd disable all store_avg_object_size 13 KB store_objects_per_bucket 50 client_db off query_icmp off test_reachability off buffered_logs off reload_into_ims off error_directory /etc/squid/errors maximum_single_addr_tries 3 uri_whitespace deny prefer_direct on strip_query_terms on **
Durch die Änderungen in der Konfiguration von Squid gibt es die drei Benutzergruppen usergroup1, usergroup2 und usergroup3. Die Benutzer der usergroup3 stehen in der Datei „/etc/squid/priviligiert.txt“ und dürfen alle Intenetseiten aufrufen. Die Benutzer der usergroup2 sind in der Datei „/etc/squid/unpriviligiert.txt“ zu finden und dürfen nur die Internetseiten der No-Blocking-Liste aufrufen, die man über den Securepoint Security Manager einstellen kann. Alle anderen Benutzer sind in der usergroup1 und dürfen nur die Internetadressen aufrufen, die unter den Domänen „.ohl.de .ups.com .ups.de .dpd.net .dpd.de“ zu finden sind.
Danach habe ich noch die beiden von mir eingebauten Konfigurationsdateien mit add extc_template http_proxy /etc/squid/unpriviligiert.txt
bzw. add extc_template http_proxy /etc/squid/priviligiert.txt
als Template angelegt. Sie sollten die Namen der jeweiligen Proxy-Benutzer enthalten. Wenn die Benutzer kristian, michael und oliver alle Webseiten anschauen dürfen sollte das Template /etc/squid/priviligiert.txt wie folgt aussehen:
kristian michael oliver **
Wenn des weiteren die Benutzer tester und heinrich nur die eingeschränkten Webseiten anschauen dürfen sollte das Template /etc/squid/unpriviligiert.txt wie folgt aussehen:
tester heinrich **
Zum Schluss müssen die Benutzer über den Securepoint Security Manager noch angelegt, der Gruppe HTTP-Proxy-Benutzer zugeordnet und der HTTP-Proxy neu gestartet werden. Danach sollten die unterschiedlichen Rechte für die Proxy-Benutzer funktionieren.
Schreibe einen Kommentar