- #1
R
RavensMetaller
Guest
Hallöchen zusammen,
KerstenG ist ja so wild auf meine Proxy-Server-Dokumentation, das ich Euch diese nicht länger vorenthalten möchte. Entstanden ist das ganze aus einem Thread in der Linux-Rubrik des Wintotal-Forums.
Diese Dokumentation richtet sich an alle, die unter Windows UND unter Linux gerne mal einen vernünftigen Proxyserver aufsetzten wollen.
Was ist ein Proxyserver ? Ein Proxyserver dient dazu, häufig besuchte Webseiten zwischenzuspeichern um so den entstehenden Traffic zu reduzieren.
Fangen wir an...
Wir brauchen:
- Ein funktionierendes Windows (sollte mindestens Windows NT sein, da es unter den 16Bit-ern(98/ME) zu Problemen kommt)
- Wahlweise eine Linux-Distribution Eurer Wahl (SuSE, Debian, LFS, Mandrake, Fedora...)
- Die portierten Squid-Dateien (wenn der Server unter Windows laufen soll)
- Etwa eine halbe Stunde Zeit
Als erstes laden wir den Windows-Port des Squiddies herrunter. Damit wir nachher nicht allzu viel konfigurieren müssen, entpacken wir diesen nach C:\squid.
Zum Editieren der Konfigurations-Datei empfiehlt sich ein verbünftiger Editor (also kein Notepad).
Ich persönlich verwende Ultraedit... Dazu wechseln wir in das Verzeichnis C:\squid\etc. Dort befinden sich zwei Dateien - einmal die squid.conf.default und einmal die mime.conf.default. Bei beiden Dateien entfernen wir das .default, so das daraus die squid.conf und die mime.conf entsteht. Nun öffnen wir die squid.conf und suchen folgende Zeile:
# http_port 3128
Diese ändern wir in:
http_port 3128
Hierzu möchte ich anmerken, das der Standardport 3128 ist, aber im Prinzip auch andere Ports kein Problem darstellen. Häufge Beispiele sind Port 8080 oder sogar 80 (welcher aber im Zusammenspiel mit einem Webserver zu Probleme führt).
Je nach Zugriffsanzahlen des späteren Proxyservers kann man optional auch den Speicherverbrauch etwas erhöhen. Dazu suchen wir folgende Zeile:
# cache_mem 8 MB
und ändern diese in
cache_mem 64 MB
Die Cache-Größe spielt bei einem Proxy-Server natürlich eine entscheidende Rolle. Wir suchen folgende Zeile:
# cache_dir ufs c:/squid/var/cache 100 16 256
und ändern diese ab in
cache_dir ufs c:/squid/var/cache 250 16 256
Dadurch erhält squid die Möglichkeit unter C:\squid\var\cache 250MB an Daten zwischenzulagern.
Die anderen beiden Werte geben Auskunft über die Beschaffenheit des Caches. 16 Cache-Verzeichnisse der ersten Ebene und 256 Verzeichnisse der zweiten Ebene. Hier können die Standardwerte übernommen werden. WICHTIG: unter Windows darf das Dateisystem (ufs) NICHT geändert werden!
Da wir die Aktionen unseres Proxy-Servers auch überwachen möchten, müssen wir die Logdateien aktivieren.
Dazu ändern wir 3 Zeilen von
# cache_access_log c:/squid/var/logs/access.log
# cache_log c:/squid/var/logs/cache.log
# cache_store_log c:/squid/var/logs/store.log
in
cache_access_log c:/squid/var/logs/access.log
cache_log c:/squid/var/logs/cache.log
cache_store_log c:/squid/var/logs/store.log
Der Speicherort der Logdateien kann natürlich Euren Bedürfnissen entsprechend angepasst werden.
Die Mime-Types sollen ebenfalls aktiviert werden, damit zum Beisiel PHP-Dateien nicht downgeloaded, sondern angeschaut werden.
Wir ändern
# mime_table c:/squid/etc/mime.conf
in
mime_table c:/squid/etc/mime.conf
Aktives FTP ist out, darum ändern wir die entsprechende Zeile ab:
Vorher:
# ftp_passive on
Nachher:
ftp_passive on
Falls im eigenen Netzwerk kein DNS-Server zur Verfügung steht, müssen wir Squid sagen, wo er die Namensauflösung erledigen kann:
Wir suchen folgende Zeile
# Example: dns_nameservers 10.0.0.1 192.172.0.4
und ändern diese ab
dns_nameservers <die ip adresse eines DNS-Server> <noch eine ip adresse>
In meinem Beispiel:
dns_nameservers 192.168.0.1 145.253.2.11 145.253.2.75 145.253.2.203
Eine Liste frei Verfügbarer DNS-Server erhaltet ihr HIER.
Damit wir aber überhaupt in den Genuss unseres Proxy-Servers kommen können, müssen wir die ACL's bearbeiten.
Dazu suchen wir folgende Zeile:
acl all src 0.0.0.0/0.0.0.0
und fügen direkt darunter folgendes ein:
acl lokal src 192.168.0.0/255.255.255.0
Diese Netzwerk-Maske muss natürlich den Gegebenheiten in Eurem Netzwerk entsprechen.
Nun muss diese ACL aktiviert werden. Dazu diese Zeichenfolge suchen:
# http_access deny all
Direkt darunter fügen wir folgendes ein:
http_access allow lokal
Dadurch werden alle Rechner mit der IP 192.168.0.xxx autorisiert den Squid überhaupt nutzen zu können.
Die Reihenfolge der ACL's spielt dabei eine Rolle. Wir können über http_access deny all den Zugriff für ALLE verbieten und danach über http_access allow lokal für die lokalen Rechner aktivieren. Dazu muss http_access allow lokal allerdings NACH http_access deny all in der Konfigurationsdatei stehen. Mit anderen Worten... Erst einmal alles verbieten und dann einzelne Rechner/Segmente erlauben.
Damit Squid überhaupt starten kann, müssen wir ihm natürlich noch unserer eigenen FQDN-Namen angeben. Dazu suchen wir nach visible_hostname und fügen entsprechend unseren Hostnamen ein:
visible_hostname asterix.intern.gallien.de
Zum Schluss muss der Cache noch initialisiert werden. Dies geschieht über die Kommandozeile.
Dazu wechseln wir in das Verzeichniss C:\squid\sbin und geben folgendes ein:
squid -z
Folgende Ausgabe müsste nun erscheinen:
Nun sind wir soweit, das wir den Squid in Betrieb nehmen können.
Dazu tragen wir den Hostnamen oder die IP-Adresse unseres Proxy-Servers in den Interneteigenschaften ein. Das ganze ist zu finden unter Systemsteuerung - Internetoptionen und dort unter Verbindungen - LAN-Einstellungen Hier das Ergebnis:
Der Squid kann nun testweise gestartet werden.
Dazu gehen wir wieder in die Kommandozeile und geben im Verzeichnis C:\squid\sbin ein:
squid
Wenn keine Fehlermeldung erscheint, dann läuft Squid und sollte betriebsbereit sein.
Das überprüfen wir, indem wir den Internetexplorer öffnen und eine Webseite unserer Wahl eingeben:
Um festzustellen, ob Squid nun tatsächlich die Seiten angefordert hat, werfen wir einen Blick in die Logfiles, welche unter C:\squid\var\logs zu finden sind:
Wir öffnen die Datei C:\squid\var\logs\access.log
Zur Erklärung:
192.168.0.5 TCP_MISS/200 3273 GET http://www.wintotal.de/wintotal.css - DIRECT/213.133.111.171 text/css
Die IP 192.168.0.5 hat die Datei http://www.wintotal.de/wintotal.css angefordert.
Squid konnte diese Datei jedoch nicht aus dem Cache bedienen (wie auch, Squid ist ja noch jungfräulich gewesen) Daher hat Squid diese Datei heruntergeladen (DIRECT)
Surfen wir wiederholt auf diese Webseite, ändert sich der Eintrag:
192.168.0.5 TCP_IMS_HIT/304 221 GET http://www.wintotal.de/wintotal.css - NONE/- text/css
Die IP 192.168.0.5 hat die Datei http://www.wintotal.de/wintotal.css angefordert.
Squid konnte die Datei aus dem Cache bedienen (TCP_IMS_HIT) und hat diese aus dem Cache an den Browser gesendet.
Damit Squid auch als Dienst unter Windows NT/2000/XP läuft, könnt ihr unter Windows XP das Kommandozeilen-Tools sc einsetzen, um einen Dienst zu erstellen.
Unter NT oder Windows 2000 müsst ihr leider auf das Resourcekit-Tool srvany.exe zurückgreifen.
Die Konfiguration unter Linux läuft analog dazu, auch unterscheidet sich die Konfigurationsdatei nicht wesentlich.
(Lediglich die Verzeichnisse werden hier anders dargestellt)
So, das wars ;-)
Weiter Konfigurationsmöglichkeiten:
In Verbidnung mit SquidGuard eignet sich Squid hervorragend zur Inhaltskontrolle besuchter Webseiten. Ebenso ist es möglich, den Zugriff auf bestimmte Webseiten zu verbieten oder anhand gewisser Keywords zu blockieren.
Abschliessend noch zwei Links:
Squid für Windows
Squid für Linux
Noch eine Anmerkung: Das hier ist eine recht spezielle Dokumentation und eigentlich mehr aus einem Gespräch entstanden. Aber vielleich hat ja der eine oder andere Lust, sich das ganze mal auf dem eigenen Rechner zu installieren.
Anregungen und Kritik wie immer bitte über das Forum.
Gruß
Sven
P.S.: Kersten: Die Firewall-Doku dauert noch a bisle
KerstenG ist ja so wild auf meine Proxy-Server-Dokumentation, das ich Euch diese nicht länger vorenthalten möchte. Entstanden ist das ganze aus einem Thread in der Linux-Rubrik des Wintotal-Forums.
Diese Dokumentation richtet sich an alle, die unter Windows UND unter Linux gerne mal einen vernünftigen Proxyserver aufsetzten wollen.
Was ist ein Proxyserver ? Ein Proxyserver dient dazu, häufig besuchte Webseiten zwischenzuspeichern um so den entstehenden Traffic zu reduzieren.
Fangen wir an...
Wir brauchen:
- Ein funktionierendes Windows (sollte mindestens Windows NT sein, da es unter den 16Bit-ern(98/ME) zu Problemen kommt)
- Wahlweise eine Linux-Distribution Eurer Wahl (SuSE, Debian, LFS, Mandrake, Fedora...)
- Die portierten Squid-Dateien (wenn der Server unter Windows laufen soll)
- Etwa eine halbe Stunde Zeit
Als erstes laden wir den Windows-Port des Squiddies herrunter. Damit wir nachher nicht allzu viel konfigurieren müssen, entpacken wir diesen nach C:\squid.
Zum Editieren der Konfigurations-Datei empfiehlt sich ein verbünftiger Editor (also kein Notepad).
Ich persönlich verwende Ultraedit... Dazu wechseln wir in das Verzeichnis C:\squid\etc. Dort befinden sich zwei Dateien - einmal die squid.conf.default und einmal die mime.conf.default. Bei beiden Dateien entfernen wir das .default, so das daraus die squid.conf und die mime.conf entsteht. Nun öffnen wir die squid.conf und suchen folgende Zeile:
# http_port 3128
Diese ändern wir in:
http_port 3128
Hierzu möchte ich anmerken, das der Standardport 3128 ist, aber im Prinzip auch andere Ports kein Problem darstellen. Häufge Beispiele sind Port 8080 oder sogar 80 (welcher aber im Zusammenspiel mit einem Webserver zu Probleme führt).
Je nach Zugriffsanzahlen des späteren Proxyservers kann man optional auch den Speicherverbrauch etwas erhöhen. Dazu suchen wir folgende Zeile:
# cache_mem 8 MB
und ändern diese in
cache_mem 64 MB
Die Cache-Größe spielt bei einem Proxy-Server natürlich eine entscheidende Rolle. Wir suchen folgende Zeile:
# cache_dir ufs c:/squid/var/cache 100 16 256
und ändern diese ab in
cache_dir ufs c:/squid/var/cache 250 16 256
Dadurch erhält squid die Möglichkeit unter C:\squid\var\cache 250MB an Daten zwischenzulagern.
Die anderen beiden Werte geben Auskunft über die Beschaffenheit des Caches. 16 Cache-Verzeichnisse der ersten Ebene und 256 Verzeichnisse der zweiten Ebene. Hier können die Standardwerte übernommen werden. WICHTIG: unter Windows darf das Dateisystem (ufs) NICHT geändert werden!
Da wir die Aktionen unseres Proxy-Servers auch überwachen möchten, müssen wir die Logdateien aktivieren.
Dazu ändern wir 3 Zeilen von
# cache_access_log c:/squid/var/logs/access.log
# cache_log c:/squid/var/logs/cache.log
# cache_store_log c:/squid/var/logs/store.log
in
cache_access_log c:/squid/var/logs/access.log
cache_log c:/squid/var/logs/cache.log
cache_store_log c:/squid/var/logs/store.log
Der Speicherort der Logdateien kann natürlich Euren Bedürfnissen entsprechend angepasst werden.
Die Mime-Types sollen ebenfalls aktiviert werden, damit zum Beisiel PHP-Dateien nicht downgeloaded, sondern angeschaut werden.
Wir ändern
# mime_table c:/squid/etc/mime.conf
in
mime_table c:/squid/etc/mime.conf
Aktives FTP ist out, darum ändern wir die entsprechende Zeile ab:
Vorher:
# ftp_passive on
Nachher:
ftp_passive on
Falls im eigenen Netzwerk kein DNS-Server zur Verfügung steht, müssen wir Squid sagen, wo er die Namensauflösung erledigen kann:
Wir suchen folgende Zeile
# Example: dns_nameservers 10.0.0.1 192.172.0.4
und ändern diese ab
dns_nameservers <die ip adresse eines DNS-Server> <noch eine ip adresse>
In meinem Beispiel:
dns_nameservers 192.168.0.1 145.253.2.11 145.253.2.75 145.253.2.203
Eine Liste frei Verfügbarer DNS-Server erhaltet ihr HIER.
Damit wir aber überhaupt in den Genuss unseres Proxy-Servers kommen können, müssen wir die ACL's bearbeiten.
Dazu suchen wir folgende Zeile:
acl all src 0.0.0.0/0.0.0.0
und fügen direkt darunter folgendes ein:
acl lokal src 192.168.0.0/255.255.255.0
Diese Netzwerk-Maske muss natürlich den Gegebenheiten in Eurem Netzwerk entsprechen.
Nun muss diese ACL aktiviert werden. Dazu diese Zeichenfolge suchen:
# http_access deny all
Direkt darunter fügen wir folgendes ein:
http_access allow lokal
Dadurch werden alle Rechner mit der IP 192.168.0.xxx autorisiert den Squid überhaupt nutzen zu können.
Die Reihenfolge der ACL's spielt dabei eine Rolle. Wir können über http_access deny all den Zugriff für ALLE verbieten und danach über http_access allow lokal für die lokalen Rechner aktivieren. Dazu muss http_access allow lokal allerdings NACH http_access deny all in der Konfigurationsdatei stehen. Mit anderen Worten... Erst einmal alles verbieten und dann einzelne Rechner/Segmente erlauben.
Damit Squid überhaupt starten kann, müssen wir ihm natürlich noch unserer eigenen FQDN-Namen angeben. Dazu suchen wir nach visible_hostname und fügen entsprechend unseren Hostnamen ein:
visible_hostname asterix.intern.gallien.de
Zum Schluss muss der Cache noch initialisiert werden. Dies geschieht über die Kommandozeile.
Dazu wechseln wir in das Verzeichniss C:\squid\sbin und geben folgendes ein:
squid -z
Folgende Ausgabe müsste nun erscheinen:
Nun sind wir soweit, das wir den Squid in Betrieb nehmen können.
Dazu tragen wir den Hostnamen oder die IP-Adresse unseres Proxy-Servers in den Interneteigenschaften ein. Das ganze ist zu finden unter Systemsteuerung - Internetoptionen und dort unter Verbindungen - LAN-Einstellungen Hier das Ergebnis:
Der Squid kann nun testweise gestartet werden.
Dazu gehen wir wieder in die Kommandozeile und geben im Verzeichnis C:\squid\sbin ein:
squid
Wenn keine Fehlermeldung erscheint, dann läuft Squid und sollte betriebsbereit sein.
Das überprüfen wir, indem wir den Internetexplorer öffnen und eine Webseite unserer Wahl eingeben:
Um festzustellen, ob Squid nun tatsächlich die Seiten angefordert hat, werfen wir einen Blick in die Logfiles, welche unter C:\squid\var\logs zu finden sind:
Wir öffnen die Datei C:\squid\var\logs\access.log
Zur Erklärung:
192.168.0.5 TCP_MISS/200 3273 GET http://www.wintotal.de/wintotal.css - DIRECT/213.133.111.171 text/css
Die IP 192.168.0.5 hat die Datei http://www.wintotal.de/wintotal.css angefordert.
Squid konnte diese Datei jedoch nicht aus dem Cache bedienen (wie auch, Squid ist ja noch jungfräulich gewesen) Daher hat Squid diese Datei heruntergeladen (DIRECT)
Surfen wir wiederholt auf diese Webseite, ändert sich der Eintrag:
192.168.0.5 TCP_IMS_HIT/304 221 GET http://www.wintotal.de/wintotal.css - NONE/- text/css
Die IP 192.168.0.5 hat die Datei http://www.wintotal.de/wintotal.css angefordert.
Squid konnte die Datei aus dem Cache bedienen (TCP_IMS_HIT) und hat diese aus dem Cache an den Browser gesendet.
Damit Squid auch als Dienst unter Windows NT/2000/XP läuft, könnt ihr unter Windows XP das Kommandozeilen-Tools sc einsetzen, um einen Dienst zu erstellen.
Unter NT oder Windows 2000 müsst ihr leider auf das Resourcekit-Tool srvany.exe zurückgreifen.
Die Konfiguration unter Linux läuft analog dazu, auch unterscheidet sich die Konfigurationsdatei nicht wesentlich.
(Lediglich die Verzeichnisse werden hier anders dargestellt)
So, das wars ;-)
Weiter Konfigurationsmöglichkeiten:
In Verbidnung mit SquidGuard eignet sich Squid hervorragend zur Inhaltskontrolle besuchter Webseiten. Ebenso ist es möglich, den Zugriff auf bestimmte Webseiten zu verbieten oder anhand gewisser Keywords zu blockieren.
Abschliessend noch zwei Links:
Squid für Windows
Squid für Linux
Noch eine Anmerkung: Das hier ist eine recht spezielle Dokumentation und eigentlich mehr aus einem Gespräch entstanden. Aber vielleich hat ja der eine oder andere Lust, sich das ganze mal auf dem eigenen Rechner zu installieren.
Anregungen und Kritik wie immer bitte über das Forum.
Gruß
Sven
P.S.: Kersten: Die Firewall-Doku dauert noch a bisle