Proxy-Server: Funktionsweise, Vorteile und Squid-Konfiguration

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 7,93 KB

Funktionsweise von Proxy-Servern

Ein Proxy-Server dient der Zentralisierung des Datenverkehrs zwischen dem Internet und einem lokalen Netzwerk. Dadurch benötigt jeder Computer in Ihrem lokalen Netzwerk keinen direkten Internetanschluss. Er kontrolliert den Zugriff aus dem Internet auf das lokale Netzwerk.

Wie funktioniert ein Proxy?

Der Proxy fungiert als Vermittler für Ein- und Ausgangsanfragen. Wenn ein Computer im lokalen Netzwerk eine Webanfrage stellt, fängt der Proxy diese ab und verarbeitet sie. Auf diese Weise verbirgt er die eigentliche IP-Adresse des anfragenden Rechners; die Anfrage erscheint mit der IP-Adresse des Proxys.

Der Proxy-Cache-Server

Ein Proxy-Cache-Server ist eine Maschine zwischen dem Benutzer und einem anderen Netzwerk (meist dem Internet), die als Trennung der beiden Netze dient. Er nutzt einen Cache-Bereich, um den Zugriff auf Webseiten zu beschleunigen oder um den Zugriff auf Inhalte zu beschränken.

Was ist der Cache?

Der Cache ist ein Bereich im RAM-Speicher, der Kopien von Daten speichert, auf die wahrscheinlich mehrfach zugegriffen wird. Dadurch wird der Zugriff auf diese Daten minimiert, da der Zugriff auf RAM schneller ist als der Zugriff auf ein Peripheriegerät wie die Festplatte.

Vorteile und Funktionen eines Proxy-Cache-Servers

Die Hauptfunktionen eines Proxy-Cache-Servers sind:

  • Ermöglicht Web-Zugriff auf privaten Rechnern (mit privater IP-Adresse), die nicht direkt mit dem Internet verbunden sind.
  • Steuerung des Web-Zugriffs durch Anwendung von Vorschriften oder Normen (z. B. abhängig von der angefragten Seite oder der Tageszeit).
  • Protokollierung des Web-Verkehrs aus dem LAN nach außen.
  • Überwachung der zugegriffenen Web-Inhalte und der heruntergeladenen Dateien auf mögliche Angriffe durch Viren, Würmer, Trojanische Pferde etc.
  • Kontrolle der lokalen Netzwerksicherheit gegen potenzielle Angriffe und Eindringversuche.
  • Funktion als Cache für Webseiten: Gespeicherte Seiten werden direkt an den Benutzer gesendet, ohne erneuten Zugriff auf das Internet.

Konkrete Vorteile

Die Nutzung eines Proxy-Cache-Servers bietet folgende Vorteile:

  • Schnellere Navigation: Wird die Webseite aus dem Server-Cache bedient, erfolgt die Antwort sofort.
  • Effizientere Nutzung der Internetverbindung: Ist die Seite im Cache, wird die externe Leitung nicht beansprucht, was Bandbreite spart.
  • Firewall-Funktion: Der Proxy ist die Schnittstelle zur Außenwelt und kann als Firewall fungieren, um die Sicherheit zu erhöhen.
  • Filterung: Es können nur bestimmte Dienste (z. B. HTTP oder FTP) zugelassen werden, für die der Proxy konfiguriert ist.

Ablauf der Nutzung

Der Web-Browser (Client) fordert eine HTML-Seite (oder eine andere Datei) von einem Webserver an. Da der Browser so konfiguriert ist, dass er das Internet über den Proxy nutzt, erfolgt die Anfrage tatsächlich durch den Proxy-Cache-Server.

Der Proxy-Cache-Server empfängt die Anforderung und prüft den Cache (auf der Festplatte des Proxy-Servers), ob die Seite gespeichert ist.

Ist dies der erste Zugriff, wird die Seite nicht im Cache gefunden. Der Proxy-Server leitet die Anfrage an den Web-Server weiter, der die Seite zurücksendet. Der Proxy cacht die Seite und sendet sie an den anfragenden Web-Browser.

SQUID Proxy Server

Installation: sudo apt-get install squid

Wichtige Verzeichnisse (Directories)

  • /usr/sbin/: Enthält ausführbare Dateien.
  • /var/run/squid.pid: Datei mit der Prozess-ID (PID) des Squid-Prozesses.
  • /var/log/squid/: Verzeichnis für die Log-Dateien von Squid.
  • /var/spool/squid/: Verzeichnis für den Cache-Speicher.
  • /etc/squid/squid.conf: Die Squid-Konfigurationsdatei.
  • /usr/lib/squid/: Zubehör, Authentifizierung etc.
  • /usr/share/doc/squid/: Squid-Dokumentation.

Squid-Konfiguration in /etc/squid/squid.conf

  • cache_effective_user squid / cache_effective_group squid: Legt Benutzer und Gruppe für Squid fest.
  • http_port 8080: Squid-Abhörport.
  • cache_mem 8 MB: Einstellung der Größe des Arbeitsspeichers für Cache-Blöcke.
  • cache_dir ufs /var/spool/squid 500 16 256: Einstellung von Ort und Größe des Festplatten-Caches.
  • visible_hostname: Name, unter dem der Cache bekannt gegeben wird.

ACL-Parameter (Access Control Lists)

ACLs dienen dazu, den Proxy-Cache-Server zu schützen:

  • Schutz vor externen Verbindungen, um eine Überlastung durch fremde Clients zu vermeiden.
  • Absicherung der Kunden durch Blockieren des Zugriffs auf gefährliche Ports (Firewall-Funktion).
  • Einrichtung einer Cache-Hierarchie.
  • Konfiguration des Netzes als Ganzes oder für einzelne Maschinen.

ACL-Syntax Beispiele:

acl [nombre_lista] src [componentes_lista]

acl [nombre_lista] time marco_horario

acl [nombre_lista] srcdomain / dstdomain Domain

acl [nombre_lista] url_regex Muster

acl [nombre_lista] maxconn begrenzen

  • nombre_lista: Der zugewiesene Name der ACL.
  • src: Bezieht sich auf den Ursprung, d. h. die IP-Adresse eines Clients.
  • [componentes_lista]: Kann Netzwerk-IP-Adressen mit Netzmaske oder Dateien enthalten, die die IP-Adressen auflisten.
  • time: Erlaubt oder verweigert Verbindungen innerhalb eines Zeitfensters (marco_horario).
  • srcdomain / dstdomain: Zugriffsrechte für Quell- und Ziel-Web-Domains.
  • url_regex: Ermöglicht die Definition von ACLs basierend auf Mustern in der URL. Mit -i wird die Groß-/Kleinschreibung ignoriert (ignorecase).
  • maxconn: Legt die maximale Anzahl von Verbindungen pro IP fest.

Log-Dateien

Squid erzeugt folgende Protokolldateien:

  • cache_access_log /squid/cache/logs/access.log: Speichert Anfragen an den Proxy-Server; dient zur Analyse und Statistik.
  • cache_store_log /squid/cache/logs/store.log: Speichert Informationen zur Cache-Verwaltung (Ein- und Ausgänge der Objekte).
  • cache_log /squid/cache/logs/cache.log: Speichert allgemeine Betriebsinformationen, Fehler etc. des Caches.

Befehle:

  • /usr/sbin/squid -z (Initialisierung des Caches)
  • /etc/init.d/squid start (Starten des Dienstes)
  • ps aux | grep squid (Überprüfung des laufenden Prozesses)

Transparenter Proxy

Ein transparenter Proxy nutzt Software zur Paketfilterung des Input/Output-Verkehrs zwischen LAN und Internet, wobei seine Existenz für den Client verborgen bleibt. Intern erfolgt eine Umleitung der Anfragen des lokalen Netzes durch die Änderung der Verbindungsadressen (mittels NAT).

Vorteile des transparenten Proxys

  1. Benutzer werden gezwungen, den Proxy zu nutzen, ohne dass sie sich dessen bewusst sind.
  2. Die Konfiguration für jeden einzelnen Web-Browser entfällt.

Verwandte Einträge: