Wéi Setup Squid Proxy Server op Ubuntu an Debian


Squid ass e populärste Caching a Forwarding HTTP Web Proxy Server benotzt meng breet Palette vu Firmen fir Websäiten vun engem Webserver ze cache fir Webservergeschwindegkeet ze verbesseren, d'Äntwertzäiten ze reduzéieren an d'Netzbandbreedung ze reduzéieren.

An dësem Artikel wäerte mir erkläre wéi Dir e Squid Proxy Server op Ubuntu an Debian Verdeelungen installéiere kënnt an et als HTTP Proxy Server benotzt.

Wéi installéiere ech Squid op Ubuntu

Ier mer ufänken, sollt Dir wëssen datt Squid Server keng Ufuerderungen huet, awer d'Quantitéit vun der RAM Notzung ka variéieren baséiert op de Clienten déi um Internet iwwer de Proxy Server surfen.

Squid Package ass verfügbar fir aus dem Basis Ubuntu Repository z'installéieren, awer ier dat vergewëssert Iech Är Packagen ze aktualiséieren andeems se lafen.

$ sudo apt update

Wann Är Packagen aktuell sinn, kënnt Dir weiderfuere fir Squid z'installéieren an ze starten an z'aktivéieren beim Systemstart mat de folgende Kommandoen.

$ sudo apt -y install squid
$ sudo systemctl start squid
$ sudo systemctl enable squid

Zu dësem Zäitpunkt sollt Äre Squid Web Proxy scho lafen an Dir kënnt de Status vum Service verifizéieren mat.

$ sudo systemctl status squid
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated)
   Active: active (running) since Tue 2018-12-04 06:42:43 UTC; 14min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 4 (limit: 1717)
   CGroup: /system.slice/squid.service
           ├─2761 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─2766 (squid-1) -YC -f /etc/squid/squid.conf
           ├─2768 (logfile-daemon) /var/log/squid/access.log
           └─2772 (pinger)

Dec 04 06:42:43 tecmint systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 04 06:42:43 tecmint squid[2708]:  * Starting Squid HTTP Proxy squid
Dec 04 06:42:43 tecmint squid[2708]:    ...done.
Dec 04 06:42:43 tecmint systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: will start 1 kids
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: (squid-1) process 2766 started

Folgend sinn déi e puer wichteg Squid Dateiplazen déi Dir sollt bewosst sinn:

  • Squid Konfiguratiounsdatei: /etc/squid/squid.conf
  • Squid Access Log: /var/log/squid/access.log
  • Squid Cache Log: /var/log/squid/cache.log

D'Standard Konfiguratiounsdatei enthält e puer Konfiguratiounsdirektiven déi musse konfiguréiert ginn fir d'Behuele vum Squid ze beaflossen.

Elo öffnen dës Datei fir z'änneren mam Vi Editor a maacht Ännerungen wéi hei ënnendrënner.

$ sudo vim /etc/squid/squid.conf

Elo kënnt Dir iwwer déi folgend Zeilen sichen an se änneren wéi gefrot, am Vi Editor kënnt Dir iwwer dës Zeilen sichen andeems Dir op den 'ESC' dréckt an den \/ Schlëssel schreift fir de spezifesche Linnen fir ze sichen.

  • http_port : Dëst ass den Default Port fir den HTTP Proxy Server, Par défaut ass et 3128, Dir kënnt en op all aner Port änneren, deen Dir wëllt, Dir kënnt och den \transparent derbäisetzen Tag um Enn vun der Linn wéi http_port 8888 transparent fir Squid Proxy ze maachen wéi en transparente Proxy ze handelen wann Dir wëllt.
  • http_access deny all : Dës Linn léisst keen Zougang zum HTTP Proxy Server, dofir musst Dir en op http_access änneren, erlaabt all Är Squid Proxy Server ze benotzen.
  • visible_hostname : Dës Direktiv gëtt benotzt fir de spezifesche Hostnumm op e Squid-Server ze setzen. Dir kënnt all Hostnumm dem Squid ginn.

Nodeems Dir uewen Ännerunge gemaach hutt, kënnt Dir de Squid Proxy Server mat dem Kommando nei starten.

$ sudo systemctl restart squid

Squid als HTTP Proxy op Ubuntu konfiguréieren

An dëser Squid Konfiguratioun Sektioun wäerte mir Iech erkläre wéi Dir Squid als HTTP Proxy konfiguréiert andeems Dir nëmmen d'Client IP Adress fir Authentifikatioun benotzt.

Wann Dir wëllt nëmmen eng IP Adress Zougang zum Internet duerch Ären neie Proxy Server ze erlaben, musst Dir nei acl (Zougangskontrolllëscht) an der Konfiguratiounsdatei definéieren.

$ sudo vim /etc/squid/squid.conf

D'ACL-Regel, déi Dir addéiere sollt, ass:

acl localnet src XX.XX.XX.XX

Wou XX.XX.XX.XX d'IP Adress vun der Clientmaschinn ass. Dësen ACL soll am Ufank vun der ACL Sektioun bäigefüügt ginn wéi am folgende Screenshot gewisen.

Et ass ëmmer eng gutt Praxis fir e Kommentar nieft dem ACL ze definéieren deen zum Beispill beschreiwen wien dës IP Adress benotzt.

acl localnet src 192.168.0.102  # Boss IP address

Dir musst Squid Service nei starten fir déi nei Ännerungen a Kraaft ze huelen.

$ sudo systemctl restart squid

Par défaut sinn nëmme gewësse Ports an der Squid Konfiguratioun erlaabt, wann Dir méi wëllt addéieren, definéiert se einfach an der Konfiguratiounsdatei wéi gewisen.

acl Safe_ports port XXX

Wou XXX d'Portnummer ass, déi Dir zouloosse wëllt. Nach eng Kéier ass et eng gutt Praxis fir e Kommentar nieft acl ze definéieren deen beschreiwen wat den Hafen benotzt gëtt.

Fir datt d'Ännerungen a Kraaft trieden, musst Dir nach eng Kéier Squid nei starten.

$ sudo systemctl restart squid

Fir d'Benotzer z'authentifizéieren ier Dir de Proxy benotzt, musst Dir d'Basis http Authentifikatioun an der Konfiguratiounsdatei aktivéieren, awer virdru musst Dir apache2-utils Package mat de folgende Kommando installéieren.

$ sudo apt install apache2-utils

Erstellt elo eng Datei mam Numm passwd déi spéider de Benotzernumm fir d'Authentifikatioun späichert. Squid leeft mam Benotzer \Proxy sou datt d'Datei vum Benotzer am Besëtz soll sinn.

$ sudo touch /etc/squid/passwd
$ sudo chown proxy: /etc/squid/passwd
$ ls -l /etc/squid/passwd

Elo wäerte mir en neie Benotzer mam Numm tecmint erstellen a säi Passwuert astellen.

$ sudo htpasswd /etc/squid/passwd tecmint

New password: 
Re-type new password: 
Adding password for user tecmint

Elo fir d'Basis http Authentifikatioun z'aktivéieren, öffnen d'Konfiguratiounsdatei.

$ sudo vim /etc/squid/squid.conf

No de Ports ACLs addéieren déi folgend Zeilen:

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

Späichert d'Datei a restart Squid sou datt déi nei Ännerungen a Kraaft triede kënnen:

$ sudo systemctl restart squid

Fir Zougang zu ongewollten Websäiten ze blockéieren, erstellt als éischt e Fichier mam Numm blacklisted_sites.acl déi d'schwaarzlëschte Siten dran späichert.

$ sudo touch /etc/squid/blacklisted_sites.acl

Füügt elo d'Websäiten un déi Dir den Zougang wëllt blockéieren, zum Beispill.

.badsite1.com
.badsite2.com

De Prozedure Punkt informéiert Squid fir all Referenzen op dës Säiten ze blockéieren, dorënner www.badsite1, subsite.badsite1.com etc.

Elo öffnen d'Squid Konfiguratiounsdatei.

$ sudo vim /etc/squid/squid.conf

Just no den uewe genannten ACLs addéieren déi folgend zwou Linnen:

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

Elo späichert d'Datei a restart Squid:

$ sudo systemctl restart squid

Fir eng Lëscht vu Schlësselwieder ze blockéieren, erstellt als éischt eng Datei mam Numm blockkeywords.lst deen d'Schwaarzlëschte Schlësselwieder dran späichert.

$ sudo touch /etc/squid/blockkeywords.lst

Füügt elo d'Schlësselwierder un déi Dir wëllt den Zougang blockéieren, zum Beispill.

facebook
instagram
gmail

Elo öffnen d'Squid Konfiguratiounsdatei a füügt déi folgend Regel un.

acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist

Elo späichert d'Datei a restart Squid:

$ sudo systemctl restart squid

Wann alles präzis konfiguréiert ass, kënnt Dir elo Äre lokalen Client Webbrowser oder d'Netz Astellunge vum Betribssystem konfiguréieren fir Ären nei konfiguréierten Squid HTTP Proxy ze benotzen.

Client konfiguréieren fir Squid Proxy ze benotzen

Elo fir ze testen ob Äre Proxy-Server funktionnéiert oder net, kënnt Dir Firefox opmaachen a gitt op Edit -> Preferences -> Advanced -> Network -> Settings a wielt Manuell Proxy Configuration a gitt Är Proxy Server IP Adress a Port fir benotzt ginn fir all Verbindung wéi et follegt.

Wann Dir all déi erfuerderlech Proxy Detailer ausfëllt, kënnt Dir um Internet surfen mat Ärem Squid Proxy Server, Dir kënnt datselwecht maachen an all anere Browser oder Programm Dir wëllt.

Fir sécherzestellen, datt Dir um Internet mat Ärem Proxy-Server surft, kënnt Dir besichen http://www.ipaddresslocation.org/, an der rietser ieweschter Ecke musst Dir déi selwecht IP Adress wéi Är Server IP Adress gesinn.

Fir méi zousätzlech Konfiguratiounsastellungen, kënnt Dir déi offiziell Squiddokumentatioun kucken. Wann Dir Froen oder Kommentarer hutt, füügt se w.e.g. an de Kommentarsektioun hei drënner.