Squid Proxy installeren en configureren op Ubuntu 20.04

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 updatesudo 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.

/etc/squid/squid.conf
# 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:

/etc/squid/allowed_ips.txt
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):

/etc/squid/squid.conf
# ...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
/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.

  1. Klik in de rechterbovenhoek op het hamburgerpictogram om het menu van Firefox te openen:

  2. Klik op de link ⚙ Preferences.

  3. Scroll omlaag naar het gedeelte Network Settings en klik op de knop Settings....

  4. 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 en 3128 in het Port veld in.
    • Selecteer het Use this proxy server for all protocols selectievakje.
    • Klik op de OK knop om de instellingen op te slaan.
    Firefox Squid Proxy

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.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *