Good to Know Database

CentOS 5: 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 CentOS 5 einen Proxy-Server mit Squid 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.10.1/24 (eth1) welche die Verbindung zum internen Netzwerk ist. Die Firewall ist so konfiguriert, dass alle Ports der Schnittstelle eth0 geschlossen sind und auf der Schnittstelle eth1 der TCP-Port 3128 für Squid geöffnet ist. Ü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 das RPM-Paket von Squid aus dem CentOS-Repository.

[root@centos5 ~]# yum install squid

Nachdem Sie Squid installiert haben, müssen Sie einige Änderungen an der Konfigurationsdatei /etc/squid/squid.conf vornehmen.

[root@centos5 ~]# 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.

Der folgende Abschnitt in der Konfigurationsdatei legt fest, 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

Die Standardkonfiguration des installierten RPM-Paketes erlaubt nur den Zugriff von localhost (127.0.0.1) auf den Proxy. Damit auch Ihre Clients im Netzwerk den Proxy verwenden können, müssen Sie den folgenden Abschnitt anpassen.

# Example rule allowing access from your local networks. Adapt
# to list your (internal) IP networks from where browsing should
# be allowed
#acl our_networks src 192.168.1.0/24 192.168.2.0/24
#http_access allow our_networks

Definieren Sie wie folgt Ihren Adressbereich in der Zugriffskontrollliste (Access Control Lists, kurz ACL) our_networks und erlauben dieser durch die zweite Zeile den Zugriff.

acl our_networks src 192.168.10.0/24
http_access allow our_networks

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. Vergessen Sie jedoch nicht den gewählten Port in Ihrer Firewall zu öffnen.

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/spool/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

Damit bei einer Fehlermeldung der Hostname des Proxys angezeigt wird, geben Sie diesen durch die Option visible_hostname an.

visible_hostname centos5.home.lan

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

[root@centos5 ~]# squid -z
2009/10/01 20:27:20| Creating Swap Directories

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.

[root@centos5 ~]# squid -d 1 -N -D
2009/10/01 20:27:34| Starting Squid Cache version 2.6.STABLE21 for i686-redhat-linux-gnu...
2009/10/01 20:27:34| Process ID 3127
2009/10/01 20:27:34| With 1024 file descriptors available
2009/10/01 20:27:34| Using epoll for the IO loop
2009/10/01 20:27:34| DNS Socket created at 0.0.0.0, port 47515, FD 6
2009/10/01 20:27:34| Adding domain home.lan from /etc/resolv.conf
2009/10/01 20:27:34| Adding nameserver 10.0.0.2 from /etc/resolv.conf
2009/10/01 20:27:34| Adding nameserver 192.168.10.1 from /etc/resolv.conf
2009/10/01 20:27:34| User-Agent logging is disabled.
2009/10/01 20:27:34| Referer logging is disabled.
2009/10/01 20:27:34| Unlinkd pipe opened on FD 11
2009/10/01 20:27:34| Swap maxSize 102400 + 8192 KB, estimated 0 objects
2009/10/01 20:27:34| Target number of buckets: 425
2009/10/01 20:27:34| Using 8192 Store buckets
2009/10/01 20:27:34| Max Mem  size: 8192 KB
2009/10/01 20:27:34| Max Swap size: 102400 KB
2009/10/01 20:27:34| Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
2009/10/01 20:27:34| Rebuilding storage in /var/spool/squid (DIRTY)
2009/10/01 20:27:34| Using Least Load store dir selection
2009/10/01 20:27:34| Set Current Directory to /var/spool/squid
2009/10/01 20:27:34| Loaded Icons.
2009/10/01 20:27:34| Accepting proxy HTTP connections at 0.0.0.0, port 3128, FD 12.
2009/10/01 20:27:34| Accepting ICP messages at 0.0.0.0, port 3130, FD 13.
2009/10/01 20:27:34| WCCP Disabled.
2009/10/01 20:27:34| Ready to serve requests.
2009/10/01 20:27:35| Done scanning /var/spool/squid (0 entries)
2009/10/01 20:27:35| Finished rebuilding storage from disk.
2009/10/01 20:27:35|         0 Entries scanned
2009/10/01 20:27:35|         0 Invalid entries.
2009/10/01 20:27:35|         0 With invalid flags.
2009/10/01 20:27:35|         0 Objects loaded.
2009/10/01 20:27:35|         0 Objects expired.
2009/10/01 20:27:35|         0 Objects cancelled.
2009/10/01 20:27:35|         0 Duplicate URLs purged.
2009/10/01 20:27:35|         0 Swapfile clashes avoided.
2009/10/01 20:27:35|   Took 0.7 seconds (   0.0 objects/sec).
2009/10/01 20:27:35| Beginning Validation Procedure
2009/10/01 20:27:35|   Completed Validation Procedure
2009/10/01 20:27:35|   Validated 0 Entries
2009/10/01 20:27:35|   store_swap_size = 0k
2009/10/01 20:27:35| 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.

[root@centos5 ~]# service squid start

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

[root@centos5 ~]# chkconfig --level 35 squid on

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.

[root@centos5 ~]# tail -f /var/log/squid/access.log /var/log/squid/cache.log /var/log/squid/store.log


Dieser Eintrag wurde am 19.10.2009 erstellt.

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

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer