So erstellen Sie einen HTTP-Proxy mit Squid unter CentOS 7/8
- Online-Anonymität
- Verbessern Sie die Online-Sicherheit
- Ladezeiten verbessern
- Blockieren Sie böswilligen Datenverkehr
- Protokollieren Sie Ihre Online-Aktivität
- Regionale Beschränkungen umgehen
- In einigen Fällen kann die Bandbreitennutzung reduziert werden
So funktioniert der Proxyserver
Der Proxyserver ist ein Computer, der als Vermittler zwischen dem Client und anderen Servern verwendet wird, von denen der Client Ressourcen anfordern kann. Ein einfaches Beispiel hierfür ist, dass ein Client, wenn er Online-Anfragen stellt (z. B. eine Webseite öffnen möchte), zuerst eine Verbindung zum Proxyserver herstellt.
Der Proxyserver überprüft dann seinen lokalen Festplatten-Cache. Wenn die Daten dort gefunden werden, gibt er die Daten an den Client zurück. Wenn sie nicht zwischengespeichert werden, sendet er die Anforderung im Namen des Clients unter Verwendung der Proxy-IP-Adresse (anders als die Clients) und geben Sie die Daten an den Client zurück. Der Proxyserver versucht, die neuen Daten zwischenzuspeichern und verwendet sie für zukünftige Anforderungen an denselben Server.
Was ist Squid Proxy?
Tintenfisch ist ein Web-Proxy, der meine breite Palette von Organisationen verwendet hat. Es wird häufig als Caching-Proxy verwendet, um die Antwortzeiten zu verbessern und die Bandbreitennutzung zu reduzieren.
Für den Zweck dieses Artikels werde ich installieren Tintenfisch auf einen Linode CentOS 7 VPS und verwenden Sie es als HTTP-Proxyserver.
So installieren Sie Squid unter CentOS 7/8
Bevor wir anfangen, sollten Sie das wissen Tintenfisch, hat keine Mindestanforderungen, aber die Menge der RAM-Nutzung kann abhängig von den Clients variieren, die über den Proxyserver im Internet surfen.
Tintenfisch ist im Basis-Repository enthalten und somit ist die Installation einfach und unkompliziert. Stellen Sie jedoch vor der Installation sicher, dass Ihre Pakete auf dem neuesten Stand sind, indem Sie sie ausführen.
# yum -y update
Fahren Sie mit der Installation von squid fort, starten Sie es und aktivieren Sie es beim Systemstart mit den folgenden Befehlen.
# yum -y install squid # systemctl start squid # systemctl enable squid
Zu diesem Zeitpunkt sollte Ihr Squid-Webproxy bereits ausgeführt werden, und Sie können den Status des Dienstes mit überprüfen.
# systemctl status squid
Beispielausgabe
● squid.service - Squid caching proxy Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-09-20 10:07:23 UTC; 5min ago Main PID: 2005 (squid) CGroup: /system.slice/squid.service ├─2005 /usr/sbin/squid -f /etc/squid/squid.conf ├─2007 (squid-1) -f /etc/squid/squid.conf └─2008 (logfile-daemon) /var/log/squid/access.log Sep 20 10:07:23 tecmint systemd[1]: Starting Squid caching proxy... Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: will start 1 kids Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: (squid-1) process 2007 started Sep 20 10:07:23 tecmint systemd[1]: Started Squid caching proxy.
Hier sind einige wichtige Dateispeicherorte, die Sie beachten sollten:
- Squid-Konfigurationsdatei: /etc/squid/squid.conf
- Squid Access-Protokoll: /var/log/squid/access.log
- Squid Cache-Protokoll: /var/log/squid/cache.log
Ein Minimum squid.conf
Die Konfigurationsdatei (ohne Kommentare) sieht folgendermaßen aus:
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 fc00::/7 # RFC 4193 local private network range acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines 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 http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost manager http_access deny manager http_access allow localnet http_access allow localhost http_access deny all http_port 3128 coredump_dir /var/spool/squid refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|?) 0 0% 0 refresh_pattern . 0 20% 4320
Squid als HTTP-Proxy konfigurieren
Hier zeigen wir Ihnen, wie Sie squid als HTTP-Proxy konfigurieren und nur die Client-IP-Adresse für die Authentifizierung verwenden.
Fügen Sie Squid-ACLs hinzu
Wenn Sie zulassen möchten, dass die IP-Adresse über Ihren neuen Proxyserver auf das Web zugreift, müssen Sie eine neue hinzufügen ACL ((Zugriffskontrollliste) Zeile in der Konfigurationsdatei.
# vim /etc/squid/squid.conf
Die Zeile, die Sie hinzufügen sollten, lautet:
acl localnet src XX.XX.XX.XX
Wo XX.XX.XX.XX ist die tatsächliche Client-IP-Adresse, die Sie hinzufügen möchten. Die Zeile sollte am Anfang der Datei hinzugefügt werden, in der die ACLs definiert sind. Es wird empfohlen, neben ACL einen Kommentar hinzuzufügen, der beschreibt, wer diese IP-Adresse verwendet.
Es ist wichtig zu beachten, dass Sie die öffentliche IP-Adresse des Clients hinzufügen sollten, wenn sich Squid außerhalb Ihres lokalen Netzwerks befindet.
Sie müssen Squid neu starten, damit die neuen Änderungen wirksam werden.
# systemctl restart squid
Öffnen Sie Squid Proxy Ports
Wie Sie möglicherweise in der Konfigurationsdatei gesehen haben, sind nur bestimmte Ports für die Verbindung zulässig. Sie können weitere hinzufügen, indem Sie die Konfigurationsdatei bearbeiten.
acl Safe_ports port XXX
Wo XXX ist der tatsächliche Port, den Sie laden möchten. Auch hier ist es eine gute Idee, einen Kommentar daneben zu hinterlassen, der beschreibt, wofür der Port verwendet wird.
Damit die Änderungen wirksam werden, müssen Sie squid erneut starten.
# systemctl restart squid
Squid Proxy Client-Authentifizierung
Sie möchten höchstwahrscheinlich, dass sich Ihre Benutzer authentifizieren, bevor Sie den Proxy verwenden. Zu diesem Zweck können Sie die grundlegende HTTP-Authentifizierung aktivieren. Die Konfiguration ist einfach und schnell.
Zuerst müssen Sie httpd-tools Eingerichtet.
# yum -y install httpd-tools
Erstellen wir nun eine Datei, in der später der Benutzername für die Authentifizierung gespeichert wird. Tintenfisch läuft mit Benutzer “Tintenfisch” Daher sollte die Datei diesem Benutzer gehören.
# touch /etc/squid/passwd # chown squid: /etc/squid/passwd
Jetzt erstellen wir einen neuen Benutzer namens “Proxyclient” und richten Sie das Passwort ein.
# htpasswd /etc/squid/passwd proxyclient New password: Re-type new password: Adding password for user proxyclient
Um nun die Authentifizierung zu konfigurieren, öffnen Sie die Konfigurationsdatei.
# vim /etc/squid/squid.conf
Nach den Ports fügen ACLs die folgenden Zeilen hinzu:
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd auth_param basic children 5 auth_param basic realm Squid Basic Authentication auth_param basic credentialsttl 2 hours acl auth_users proxy_auth REQUIRED http_access allow auth_users
Speichern Sie die Datei und starten Sie squid neu, damit die neuen Änderungen wirksam werden:
# systemctl restart squid
Blockieren Sie Websites auf Squid Proxy
Schließlich werden wir einen letzten erstellen ACL Das hilft uns, unerwünschte Websites zu blockieren. Erstellen Sie zunächst die Datei, in der die Websites auf der schwarzen Liste gespeichert werden.
# touch /etc/squid/blacklisted_sites.acl
Sie können einige Domains hinzufügen, die Sie blockieren möchten. Beispielsweise:
.badsite1.com .badsite2.com
Der fortlaufende Punkt weist Squid an, alle Verweise auf diese Sites einschließlich zu blockieren www.badsite1, subsite.badsite1.com, etc.
Öffnen Sie nun die Konfigurationsdatei von Squid.
# vim /etc/squid/squid.conf
Fügen Sie unmittelbar nach den Ports-ACLs die folgenden zwei Zeilen hinzu:
acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl" http_access deny bad_urls
Speichern Sie nun die Datei und starten Sie squid neu:
# systemctl restart squid
Sobald alles richtig konfiguriert ist, können Sie jetzt die Netzwerkeinstellungen Ihres lokalen Client-Browsers oder Betriebssystems für die Verwendung Ihres Squid-HTTP-Proxys konfigurieren.
Fazit
In diesem Tutorial haben Sie gelernt, wie Sie einen Squid HTTP-Proxyserver selbst installieren, sichern und konfigurieren. Mit den Informationen, die Sie gerade erhalten haben, können Sie jetzt einige grundlegende Filter für eingehenden und ausgehenden Datenverkehr über Squid hinzufügen.
Wenn Sie noch einen Schritt weiter gehen möchten, können Sie Squid sogar so konfigurieren, dass einige Websites während der Arbeitszeit blockiert werden, um Ablenkungen zu vermeiden. Wenn Sie Fragen oder Kommentare haben, posten Sie diese bitte im Kommentarbereich unten.