Proxy-Benutzer mit unterschiedlichen Rechten bei einer Securepoint V2007nx

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.

Backup-Software für Linux

Für das kopieren, synchronisieren und sichern von Dateien gibt es unter Linux wie gewohnt eine riesige Auswahl an Kommandozeilentools, die kaum Wünsche offen lassen. Die bekanntesten sind GNU cpio (copy in/out) und GNU tar (tape archiver). Diese beiden Programm stammen ursprünglich aus der System V bzw. BSD-Ecke und existieren schon ca. 20 Jahre. Sie sind inzwischen absolut ausgereift und zuverlässig.

Wenn man jedoch viele Linux-Server betreibt benötigt man eine Backup-Lösung, die mehrere Server sichert und eine leistungsfähige Volume-Verwaltung mitbringt. Für solche Anforderungen eignen sich die beiden Programme amanda (Advanced Maryland Automatic Network Disk Archiver) und bacula (Wortspiel aus Backup und Dracula / Der Slogan des Programms lautet deshalb auch: „It comes by night and sucks the vital essence from your computers“).

Amanda
Amanda wurde ursprünglich von James da Silva an der University of Maryland’s entwickelt und wird inzwischen von einem ganzen Team weiterentwickelt. Es ist inzwischen auch schon über 10 Jahre alt und sehr ausgereift. Deshalb ist es auch bei jeder Linux-Distribution und den meisten UNIX-Derivaten im Lieferumfang enthalten und kann relativ leicht über die Softwareverwaltung installiert werden. Allerdings ist es recht umfangreich und auf Anhieb nicht leicht zu durchschauen. Leider gibt es auch noch keine GUI. Alles muss per Kommandozeile oder Konfigurationsdatei eingestellt werden.

Bei Amanda gibt es einen Bandrechner, an dem sich das Laufwerk befindet, und auf dem der Server installiert wird, während die zu sichernden Rechnern mit dem Client auszustatten sind. Eine zentrale Konfiguration für den Server gibt vor, welche Dateien von welchen Rechnern und mit welcher Priorität zu sichern sind, wie viele Bänder insgesamt vorhanden und in einem Zyklus sind, usw. Während der Sicherung speichert Amanda alle Informationen zu den gesicherten Dateien in einer Datenbank. Amanda sagt einem also bei einer Rücksicherung welche Bänder einzulegen sind, wenn man angibt welche Dateien von welchem Datum man von welchem Rechner haben möchte.

Bacula
Bacula ist das umfangreichste, kostenlose Backup-Programm, dass es im Augenblick für Linux gibt. Es ist noch umfangreicher als Amanda jedoch in einigen Bereichen noch nicht so ausgereift. Die Entwicklung wurde im Jahr 2000 begonnen und die erste stabile Version wurde erst im Jahr 2006 fertig gestellt. Die zweite stabile Version wurde 2007 fertig gestellt und lässt kaum noch Wünsche offen. Das Programm ist aber leider noch nicht bei allen Linux-Distributionen im Lieferumfang enthalten, da es noch so neu ist. Man kann auf der Webseite der Entwickler neben den Sourcen aber auch viele fertige Pakete für verschiedene Linux-Distributionen finden.

Die Bacula-Software besteht aus drei Programmen, die auch für Windows verfügbar sind: einem Client / File Daemon (dem Computer mit den Dateien, die gesichert werden sollen), einem Storage Daemon (dem Computer mit den Medien, auf die gesichert werden soll) und dem Backup-Servers / Director (dem Computer, der den Backup-Vorgang steuert). Die Konfiguration dieser drei Programme erfolgt jeweils in einer Konfigurationsdatei. Der Backup-Server kann danach über ein CLI (Command Line Interface) gesteuert werden. Es gibt aber inzwischen auch GUI-Software, welche die Bedienung der CLI erleichtert. Unter Linux kann man mithilfe des Programms bat (Bacula Admin Tool) die gebräuchlichsten Verwaltungsaufgaben per GUI erledigen.

Bacula Admin Tool 2.4.0

Für Windows gibt es die bwx-console, die zumindest eine Rücksicherung per GUI ermöglicht. Darüber hinaus kann Bacula mit SQlite-, MySQL- oder PostgreSQL-Datenbanken umgehen, alle Komponenten kommunizieren über TSL-verschlüsselte Verbindungen und sogar die gesicherten Daten lassen sich durch Verschlüsselung vor neugierigen Blicken verbergen.

Fazit
Sobald man viele Linux-Server sichert sollte man sich Bacula und Amanda näher anschauen. Beide lassen sich in größeren Umgebungen sehr gut einsetzten. Amanda besticht durch seine Stabilität und große Verbreitung. Insbesondere die fehlende GUI erschwert aber den Zugang für unerfahrene Admins. Bacula ist umfangreicher und flexibler als Amanda. Insbesondere der große Funktionsumfang und die GUI werden dafür sorgen, dass Bacula zukünftig öfter eingesetzt wird. Es wird sicherlich bald in allen Linux-Distributionen zu finden sein.

Canonical entwickelt Ubuntu Version für Mini-Notebooks

Canonical hat auf der Computex eine spezielle Ubuntu Version für kleine Notebooks und Internetgeräte vorgestellt. Damit wird es endlich möglich sein den Asus Mini-Notebook Eee PC komfortabel mit Ubuntu zu betreiben. Genauere Informationen sind bei Heise Online zu lesen.