Squid is een volledig uitgeruste caching proxy die populaire netwerkprotocollen ondersteunt, zoals HTTP, HTTPS, FTP en meer. Het kan worden gebruikt om de prestaties van de webserver te verbeteren door herhaalde verzoeken te cachen, webverkeer te filteren en toegang te krijgen tot geo-restricted content.
In deze tutorial wordt uitgelegd hoe u een Squid Proxy op Ubuntu 20.04 instelt en Firefox en Google Chrome webbrowsers configureert om het te gebruiken.
Installatie van Squid op Ubuntu #
Het squid-pakket is opgenomen in de standaard Ubuntu 20.04 repositories. Om het te installeren voert u de volgende commando’s uit als sudo gebruiker:
sudo apt update
sudo apt install squid
Als de installatie is voltooid, zal de Squid service automatisch starten. Om dit te controleren, controleer de status van de service:
sudo systemctl status squid
De uitvoer zal er ongeveer zo uitzien:
● squid.service - Squid Web Proxy Server Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-10-23 19:02:43 UTC; 14s ago Docs: man:squid(8)...
Configuratie van Squid #
De squid service kan worden geconfigureerd door het /etc/squid/squid.conf
bestand te bewerken. Het configuratiebestand bevat commentaar dat beschrijft wat elke configuratie-optie doet. U kunt uw configuratie-instellingen ook in aparte bestanden zetten, die in het hoofdconfiguratiebestand kunnen worden opgenomen met de “include” directive.
Voordat u wijzigingen aanbrengt, is het raadzaam een back-up te maken van het oorspronkelijke configuratiebestand:
sudo cp /etc/squid/squid.conf{,.orginal}
Om te beginnen met het configureren van uw squid instantie, opent u het bestand in uw teksteditor:
sudo nano /etc/squid/squid.conf
Handaard is squid ingesteld om te luisteren op poort 3128
op alle netwerk interfaces op de server.
Als u de poort wilt veranderen en een luisterinterface wilt instellen, zoek dan de regel op die begint met http_port
en specificeer het IP adres van de interface en de nieuwe poort. Als er geen interface wordt opgegeven, luistert Squid op alle interfaces.
# Squid normally listens to port 3128http_port IP_ADDR:PORT
Het draaien van Squid op alle interfaces en op de standaard poort zou voor de meeste gebruikers goed moeten zijn.
Squid staat u toe om te bepalen hoe de clients toegang kunnen krijgen tot de webbronnen met behulp van Access Control Lists (ACL’s). Standaard is toegang alleen toegestaan vanaf de localhost.
Als alle clients die de proxy gebruiken een statisch IP adres hebben, is de eenvoudigste optie om de toegang tot de proxy server te beperken het maken van een ACL die de toegestane IPs bevat. Anders kun je squid instellen om authenticatie te gebruiken.
In plaats van de IP adressen toe te voegen in het hoofd configuratie bestand, maak je een nieuw bestand aan dat de toegestane IP’s bevat:
192.168.33.1# All other allowed IPs
Als dat klaar is, open je het hoofdconfiguratiebestand en maak je een nieuwe ACL aan met de naam allowed_ips
(eerste gemarkeerde regel) en geef je toegang tot die ACL met de http_access
directive (tweede gemarkeerde regel):
# ...acl allowed_ips src "/etc/squid/allowed_ips.txt"# ...#http_access allow localnethttp_access allow localhosthttp_access allow allowed_ips# And finally deny all other access to this proxyhttp_access deny all
De volgorde van de http_access
regels is belangrijk. Zorg ervoor dat je de regel toevoegt vóór http_access deny all
.
De http_access
directive werkt op een vergelijkbare manier als de firewall regels. Squid leest de regels van boven naar beneden, en als een regel overeenkomt, worden de regels eronder niet verwerkt.
Wanneer je wijzigingen aanbrengt in het configuratie bestand, moet je de Squid service herstarten om de wijzigingen te effectueren:
sudo systemctl restart squid
Squid Authentication #
Als het beperken van toegang op basis van IP niet werkt voor jouw use case, kun je squid configureren om een back-end te gebruiken om gebruikers te authenticeren. Squid ondersteunt Samba, LDAP, en HTTP basic auth.
In deze handleiding zullen we basic auth gebruiken. Het is een eenvoudige authenticatie methode ingebouwd in het HTTP protocol.
Om een versleuteld wachtwoord te genereren, gebruik je het openssl
gereedschap. Het volgende commando voegt het USERNAME:PASSWORD
-paar toe aan het /etc/squid/htpasswd
-bestand:
printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd
Om bijvoorbeeld een gebruiker “josh” met wachtwoord “P@ssvv0rT
” aan te maken, zou u het volgende moeten uitvoeren:
printf "josh:$(openssl passwd -crypt 'P@ssvv0rd')\n" | sudo tee -a /etc/squid/htpasswd
josh:QMxVjdyPchJl6
De volgende stap is om de HTTP basis authenticatie in te schakelen en het bestand met de gebruikersgegevens op te nemen in het squid configuratie bestand.
Open de hoofdconfiguratie en voeg het volgende toe:
sudo nano /etc/squid/squid.conf
# ...auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswdauth_param basic realm proxyacl authenticated proxy_auth REQUIRED# ...#http_access allow localnethttp_access allow localhosthttp_access allow authenticated# And finally deny all other access to this proxyhttp_access deny all
De eerste drie gemarkeerde regels maken een nieuwe ACL aan met de naam authenticated
, en de laatste gemarkeerde regel staat toegang toe aan geauthenticeerde gebruikers.
Start de Squid service opnieuw:
sudo systemctl restart squid
Firewall configureren #
Om de Squid poorten te openen, schakel je het UFW
‘Squid’ profiel in:
sudo ufw allow 'Squid'
Als Squid op een andere, niet standaard poort draait, bijvoorbeeld 8888
kunt u verkeer op die poort toestaan met: sudo ufw allow 8888/tcp
.
Configureer je browser om proxy te gebruiken #
Nu je Squid hebt ingesteld, is de laatste stap het configureren van de browser van je voorkeur om het te gebruiken.
Firefox #
De stappen hieronder zijn hetzelfde voor Windows, macOS, en Linux.
-
Klik in de rechterbovenhoek op het hamburgerpictogram
☰
om het menu van Firefox te openen: -
Klik op de link
⚙ Preferences
. -
Scroll omlaag naar het gedeelte
Network Settings
en klik op de knopSettings...
. -
Er wordt een nieuw venster geopend.
- Selecteer het
Manual proxy configuration
keuzerondje. - Voer het IP-adres van uw Squid-server in het
HTTP Host
veld en3128
in hetPort
veld in. - Selecteer het
Use this proxy server for all protocols
selectievakje. - Klik op de
OK
knop om de instellingen op te slaan.
- Selecteer het
Op dit punt, is Firefox geconfigureerd en kunt u surfen op het internet via de Squid proxy. Om dit te verifiëren, opent u google.com
, typt u “what is my ip” en u zou het IP-adres van uw Squid-server moeten zien.
Om terug te gaan naar de standaardinstellingen, gaat u naar Network Settings
, selecteert u het Use system proxy settings
keuzerondje en slaat u de instellingen op.
Er zijn verschillende plugins die u ook kunnen helpen bij het configureren van de proxy-instellingen van Firefox, zoals FoxyProxy.
Google Chrome #
Google Chrome gebruikt de standaard systeem proxy-instellingen. In plaats van de proxy-instellingen van uw besturingssysteem te wijzigen, kunt u een addon gebruiken zoals SwitchyOmega of de webbrowser Chrome starten vanaf de opdrachtregel.
Om Chrome te starten met een nieuw profiel en verbinding te maken met de Squid-server, gebruikt u het volgende commando:
Linux :
/usr/bin/google-chrome \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="http://SQUID_IP:3128"
macOS :
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="http://SQUID_IP:3128"
Windows :
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^ --user-data-dir="%USERPROFILE%\proxy-profile" ^ --proxy-server="http://SQUID_IP:3128"
Het profiel wordt automatisch aangemaakt als het nog niet bestaat. Op deze manier kunt u meerdere instanties van Chrome tegelijkertijd uitvoeren.
Om te bevestigen dat de proxyserver goed werkt, opent u google.com
, en typt u “wat is mijn ip”. Het IP dat in uw browser wordt getoond zou het IP adres van uw server moeten zijn.
Conclusie #
Squid is een van de meest populaire proxy caching servers. Het verbetert de snelheid van de webserver en kan u helpen de toegang van gebruikers tot internet te beperken.
We hebben u laten zien hoe u Squid installeert en configureert op Ubuntu 20.04 en hoe u uw browser instelt om het te gebruiken.