Good to Know Database

openSUSE 11.1: Proxy-Server mit Squid einrichten


Squid ist ein freier Proxy-Server welcher die Netzwerkprotokolle HTTP, HTTPS, FTP über HTTP und Gopher unterstützt. Die folgende Anleitung soll Ihnen zeigen, wie Sie unter openSUSE 11.1 einen Proxy-Server mit Squid3 einrichten.

Das Beispielsystem hat die beiden Netzerkschnittstellen 10.0.0.1/8 (eth0), welche über einen Router die Verbindung zum Internet herstellt, und 192.168.0.1/24 (eth1) welche die Verbindung zum internen Netzwerk ist. Die Firewall ist so konfiguriert, dass die Schnittstelle eth0 als Externe Zone (alle Ports geschlossen) und eth1 als Interne Zone (alle Ports offen) gelten. Überprüfen Sie bitte unbedingt ob die Namensauflösung und der Zugriff auf das WWW auf dem zukünfigen Proxy-Server funktionieren.

Mit dem folgenden Befehl installieren Sie zuerst das RPM-Paket von Squid3 aus dem openSUSE Repository.

opensuse111:~ # yast -i squid3

Nachdem Sie Squid3 installiert haben, könnten Sie Squid bereits mit der Standardkonfiguration betreiben. Es empfiehlt sich jedoch einen kurzen Blick in die Konfigurationsdatei zu werfen.

opensuse111:~ # vi /etc/squid/squid.conf

Wie Sie sehen, ist die Konfigurationsdatei sehr umfangreich aber gut dokumentiert. Ich will hier nur auf die wichtigsten Einstellungen kurz eingehen.

Die folgenden drei Zeilen legen fest, welche Adressbereiche als lokale Netzwerke angesehen werden sollen.

acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network

Wenn Sie nicht alle, für den privaten Gebrauch reservierten Adressbereiche, als lokale Netzwerke definieren wollen, kommentieren Sie diese Zeilen aus und erstellen eine neue Zeile, in welcher Sie nur den Adressbereich angeben welchen Sie auch verwenden.

#acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src 192.168.0.0/24

Gleich im Anschluss zu diesem Abschnitt können Sie festlegen, auf welche Ports Squid den Zugriff erlauben soll. Wollen Sie den Clients in Ihrem Netzwerk nur den Zugriff auf HTTP, HTTPS und FTP erlauben, müssen Sie wie im folgenden Listing die nicht gewünschten Ports deaktivieren.

acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
#acl Safe_ports port 70          # gopher
#acl Safe_ports port 210         # wais
#acl Safe_ports port 1025-65535  # unregistered ports
#acl Safe_ports port 280         # http-mgmt
#acl Safe_ports port 488         # gss-http
#acl Safe_ports port 591         # filemaker
#acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT

Durch die Option http_port können Sie den Port angeben, auf welchem Squid Anfragen von den Clients entgegennehmen soll. Standardmäßig lauscht Squid auf dem Port 3128 wobei viele Proxys den Port 8080 verwenden. Sollten Sie auch den Port 8080 verwenden wollen, ändern Sie die folgende Zeile entsprechend ab.

http_port 3128

Der Proxy-Cache wird normalerweise unter /var/cache/squid angelegt. Sollten Sie eine eigene Partition für den Cache verwenden wollen, ändern Sie den Pfad entsprechend ab. Die Werte nach dem Pfad geben die maximale Größe des Verzeichnisses in MB (100MB), die Anzahl der First-Level (16) und Second-Level (256) Unterverzeichnisse an.

cache_dir ufs /var/cache/squid 100 16 256

Die Optionen access_log, cache_log und cache_store_log geben die Logdateien an, in welche die Seitenaufrufe, die allgemeinen Cache-Meldungen und die Schreibzugriffe auf den Cache protokolliert werden. Standardmäßig sind die folgenden Werte gesetzt.

access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log

Nachdem Sie die nötigen Änderungen an der Konfigurationsdatei vorgenommen haben, erstellen Sie mit dem folgenden Befehl die Verzeichnisstruktur für den Squid-Cache.

opensuse111:~ # squid -z
2009/08/07 16:32:45| Creating Swap Directories
2009/08/07 16:32:45| /var/cache/squid exists
2009/08/07 16:32:45| Making directories in /var/cache/squid/00
2009/08/07 16:32:45| Making directories in /var/cache/squid/01
2009/08/07 16:32:45| Making directories in /var/cache/squid/02
2009/08/07 16:32:45| Making directories in /var/cache/squid/03
2009/08/07 16:32:45| Making directories in /var/cache/squid/04
2009/08/07 16:32:45| Making directories in /var/cache/squid/05
2009/08/07 16:32:45| Making directories in /var/cache/squid/06
2009/08/07 16:32:45| Making directories in /var/cache/squid/07
2009/08/07 16:32:45| Making directories in /var/cache/squid/08
2009/08/07 16:32:45| Making directories in /var/cache/squid/09
2009/08/07 16:32:45| Making directories in /var/cache/squid/0A
2009/08/07 16:32:45| Making directories in /var/cache/squid/0B
2009/08/07 16:32:45| Making directories in /var/cache/squid/0C
2009/08/07 16:32:45| Making directories in /var/cache/squid/0D
2009/08/07 16:32:45| Making directories in /var/cache/squid/0E
2009/08/07 16:32:45| Making directories in /var/cache/squid/0F

Einen ersten Testlauf mit Squid können Sie mit dem folgenden Befehl starten. Dabei wird Squid noch nicht als Daemon gestartet und durch die Option -d 1 werden Ihnen Debugmeldungen angezeigt welche Ihnen bei eventuellen Problemen weiterhelfen können.

opensuse111:~ # squid -d 1 -N -D
2009/08/07 16:33:37| Starting Squid Cache version 3.0.STABLE10 for x86_64-suse-linux-gnu...
2009/08/07 16:33:37| Process ID 13780
2009/08/07 16:33:37| With 4096 file descriptors available
2009/08/07 16:33:37| DNS Socket created at 0.0.0.0, port 57811, FD 4
2009/08/07 16:33:37| Adding domain home.lan from /etc/resolv.conf
2009/08/07 16:33:37| Adding nameserver 10.0.0.2 from /etc/resolv.conf
2009/08/07 16:33:37| Adding nameserver 192.168.0.1 from /etc/resolv.conf
2009/08/07 16:33:37| User-Agent logging is disabled.
2009/08/07 16:33:37| Referer logging is disabled.
2009/08/07 16:33:38| Unlinkd pipe opened on FD 9
2009/08/07 16:33:38| Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
2009/08/07 16:33:38| Swap maxSize 102400 KB, estimated 7876 objects
2009/08/07 16:33:38| Target number of buckets: 393
2009/08/07 16:33:38| Using 8192 Store buckets
2009/08/07 16:33:38| Max Mem  size: 8192 KB
2009/08/07 16:33:38| Max Swap size: 102400 KB
2009/08/07 16:33:38| Rebuilding storage in /var/cache/squid (DIRTY)
2009/08/07 16:33:38| Using Least Load store dir selection
2009/08/07 16:33:38| Set Current Directory to /var/cache/squid
2009/08/07 16:33:38| Loaded Icons.
2009/08/07 16:33:38| Accepting  HTTP connections at 0.0.0.0, port 3128, FD 10.
2009/08/07 16:33:38| Accepting ICP messages at 0.0.0.0, port 3130, FD 11.
2009/08/07 16:33:38| HTCP Disabled.
2009/08/07 16:33:38| Pinger socket opened on FD 13
2009/08/07 16:33:38| Ready to serve requests.
2009/08/07 16:33:39| Done scanning /var/cache/squid swaplog (0 entries)
2009/08/07 16:33:39| Finished rebuilding storage from disk.
2009/08/07 16:33:39|         0 Entries scanned
2009/08/07 16:33:39|         0 Invalid entries.
2009/08/07 16:33:39|         0 With invalid flags.
2009/08/07 16:33:39|         0 Objects loaded.
2009/08/07 16:33:39|         0 Objects expired.
2009/08/07 16:33:39|         0 Objects cancelled.
2009/08/07 16:33:39|         0 Duplicate URLs purged.
2009/08/07 16:33:39|         0 Swapfile clashes avoided.
2009/08/07 16:33:39|   Took 1.03 seconds (  0.00 objects/sec).
2009/08/07 16:33:39| Beginning Validation Procedure
2009/08/07 16:33:39|   Completed Validation Procedure
2009/08/07 16:33:39|   Validated 25 Entries
2009/08/07 16:33:39|   store_swap_size = 0
2009/08/07 16:33:39| storeLateRelease: released 0 objects

Sollten hier keine Fehlermeldungen angezeigt werden, können Sie Squid mit der Tastenkombination STRG+C beenden und anschließend als Daemon starten.

opensuse111:~ # service squid start

Damit Squid beim Start des Servers automatisch gestartet wird, müssen Sie Squid im Runlevel 3 und 5 aktivieren.

opensuse111:~ # chkconfig squid 35
opensuse111:~ # chkconfig --list squid
squid                     0:off  1:off  2:off  3:on   4:off  5:on   6:off

Jetzt müssen Sie auf Ihren Clients nur noch den Proxy-Server in den Netzwerk- beziehungsweise Interneteinstellungen eintragen.

Wenn Sie Probleme mit Squid haben, sollten Sie die Logdateien auf mögliche Fehlermeldungen überprüfen.

opensuse111:~ # tail -f /var/log/squid/access.log /var/log/squid/cache.log /var/log/squid/store.log


Dieser Eintrag wurde am 07.08.2009 erstellt und zuletzt am 27.02.2011 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_35_723.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer