Hoe je Squid op Linux instelt en aanpast — Praktische ervaring
Het installeren van Squid is meestal niet het moeilijkste; het gaat erom alles goed te configureren, zodat het werkt zonder een totale hoofdpijn te veroorzaken. Soms lijkt het alsof Linux een miljoen manieren heeft om de installatie te verprutsen, of je krijgt te maken met vreemde machtigingen of conflicterende configuraties. Dit is dus een ietwat rommelige, praktijkgerichte handleiding om Squid aan de praat te krijgen, van de basisinstallatie tot het zorgen dat het goed samenwerkt met je servers en firewall. Verwacht dat je van een lege Linux-machine overgaat naar een systeem dat HTTP/HTTPS-verkeer kan proxyen, caching kan uitvoeren en zelfs gebruikers kan authenticeren. Of tenminste, dat is het plan.
Squid Proxy Server installeren op Linux
Kies je pakketbeheerder en installeer vanuit de repository.
Allereerst moet je Squid installeren. De commando’s zijn afhankelijk van je distributie – Linux kent nogal wat verschillende varianten. Voor de meeste enterprise- of RHEL-gebaseerde distributies (Oracle, Rocky, CentOS, Fedora, RHEL) zijn het:
# dnf install -y squid
Voor Debian- of Ubuntu-gebruikers geldt het volgende:
# apt-get install squid
Als je SUSE gebruikt (net als SLES), probeer dan het volgende:
# zypper install squid
Ben je van plan om gebruikersauthenticatie te implementeren? Dan heb je een extra pakket nodig. Voor RHEL/CentOS/Fedora is dat:
# dnf -y install httpd-tools
En voor Debian/Ubuntu geldt het volgende:
# sudo apt install apache2-utils
Vervolgens draait het erom dat Squid automatisch opstart en draait:
# systemctl enable squid # systemctl start squid # systemctl status squid
Bij sommige systemen mislukt dit soms meteen, of start de service vreemd genoeg pas na een herstart. Bij andere systemen werkt het gewoon zonder problemen. Typisch Linux, toch?
Wil je zien met welke opties Squid is gebouwd? Voer dan het volgende commando uit:
# squid -v
Dit geeft een hoop informatie weer, waaronder de versie, SSL-ondersteuning en of je de server met bepaalde functies hebt gebouwd. De uitvoer ziet er intimiderend uit, maar controleer gewoon of je server over de benodigde functionaliteiten beschikt, zoals SSL- of LDAP-ondersteuning.
De Squid-cachingproxyserver configureren
Maak een back-up van de standaardconfiguratie voordat je deze wijzigt.
De belangrijkste configuratie bevindt zich in /etc/squid/squid.conf. Omdat Linux het natuurlijk graag lastiger maakt, is het altijd raadzaam om eerst een kopie te maken en het origineel te beveiligen:
$ sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original $ sudo chmod a-w /etc/squid/squid.conf.original
Op deze manier kun je, als je aanpassingen uitlopen op een rommeltje, alles terugdraaien zonder wanhopig te worden.
Begin met het configureren van uw basisinstellingen.
Bewerk de configuratie (ja, met mcedit of nano — wat je maar wilt):
$ sudo mcedit /etc/squid/squid.conf
Definieer eerst welke clients verbinding mogen maken. Meestal is dat je lokale netwerk. Voeg deze regel ergens bovenaan toe:
acl localnet src 192.168.50.0/24
Zorg ervoor dat u andere ACL localnet- regels uitcommentarieert of verwijdert. Scroll naar beneden naar de toegangsregels en zoek naar:
http_access allow localnet
Deze regel geeft lokale clients toegang tot de proxy.
Stel de poort en de cachegrootte in.
Wijzig indien nodig de standaardpoort (die momenteel TCP/3128 is).Bijvoorbeeld naar 4555, pas het volgende aan:
http_port 4555
Dit helpt conflicten te voorkomen als je meerdere proxy’s gebruikt. Denk hierbij aan je firewall; je moet deze poort later toestaan.
Wilt u caching gebruiken? Voeg deze regel toe of wijzig deze om de cachegrootte en -structuur in te stellen:
cache_dir ufs /var/spool/squid 5120 32 256
Dit betekent 5 GB cachegeheugen, georganiseerd in mappen voor betere prestaties. Maak vervolgens die mappenstructuur aan:
$ sudo squid -z
Hiermee worden de cachemappen geïnitialiseerd. Soms treden er fouten op als de machtigingen of de schijfruimte niet correct zijn geconfigureerd. Let daarop.
Gebruikersauthenticatie instellen (optioneel, maar aanbevolen)
Als u gebruikersnamen en wachtwoorden wilt gebruiken om te bepalen wie uw proxy mag gebruiken, heeft u een wachtwoordbestand nodig. Maak dit bestand eerst aan:
$ sudo touch /etc/squid/passwd $ sudo chown squid /etc/squid/passwd
Voeg vervolgens gebruikers toe met:
$ sudo htpasswd -c /etc/squid/passwd username1
Laat de volgende keer -c weg om meer gebruikers toe te voegen.
Vertel Squid nu waar de inloggegevens zich bevinden door dit toe te voegen aan /etc/squid/squid.conf — meestal bovenaan of vlakbij het begin van het bestand:
# Enable basic auth auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd # Limit concurrent auth sessions auth_param basic children 5 # Realm shown on login prompts auth_param basic realm Squid Basic Authentication # Session time (here, 8 hours) auth_param basic credentialsttl 8 hours # Make auth case-insensitive auth_param basic casesensitive off acl auth_users proxy_auth REQUIRED http_access allow auth_users
Het pad naar basic_ncsa_auth varieert — voor Fedora of RHEL is het vaak /usr/lib64/squid/basic_ncsa_auth, voor Debian/Ubuntu is het meestal /usr/lib/squid/basic_ncsa_auth. Controleer dit goed als het problemen veroorzaakt.
Sites blokkeren en toegang controleren
Wil je Facebook of Twitter blokkeren? Maak dan een tekstbestand aan, bijvoorbeeld /etc/squid/blocked_sites, en vermeld de geblokkeerde sites regel voor regel:
facebook.com twitter.com instagram.com
Voeg dit vervolgens toe aan je configuratie:
acl blocked_sites dstdomain "/etc/squid/blocked_sites" http_access deny blocked_sites
Vergeet niet een syntaxcontrole uit te voeren voordat u opnieuw opstart of de configuratie aanpast:
$ sudo squid -k parse
Als alles in orde is, laad dan de configuratie opnieuw zonder de service te stoppen:
$ sudo squid -k reconfigure
Zorg ervoor dat uw firewall de proxypoort toestaat (in ons geval 4555).Voor firewalld is dat:
# firewall-cmd --zone=public --add-port=4555/tcp --permanent # firewall-cmd --reload
Als uw server zich achter een cloudprovider zoals AWS bevindt, vergeet dan niet om dezelfde poort te openen in uw beveiligingsgroepregels.
Testen en debuggen
Controleer of Squid correct luistert:
$ netstat -tulnp
Test met curl door je proxy op te geven — vervang het IP-adres en de poort:
$ curl -x http://:4555 -L http://google.com
Als er om authenticatie wordt gevraagd en u deze niet verstrekt, of als u de melding “verbinding geweigerd” krijgt, controleer dan uw firewall, ACL’s of of Squid correct werkt. Om logboeken in realtime te bekijken, voert u het volgende commando uit:
$ sudo tail -f /var/log/squid/access.log
Als je regels ziet met TCP_DENIED/403 of verbindingsfouten, duidt dit waarschijnlijk op een verkeerde ACL-configuratie of een firewallprobleem.
Zodra dat allemaal is ingesteld, configureert u uw browser of systeem om naar het IP-adres van uw Linux-server en de door u gekozen poort te verwijzen. Dit vindt u meestal onder netwerk- of proxy-instellingen. En als u in een beheerde omgeving werkt, vergeet dan niet om deze proxyconfiguraties waar nodig te verspreiden.
Samenvatting
Dit hele proces kan soms aanvoelen als het hoeden van katten, vooral wanneer machtigingen of firewallregels onverwachte fouten veroorzaken. Maar zodra Squid operationeel en geconfigureerd is, reageert het verrassend snel en kan het zelfs caching gebruiken om de boel te versnellen – of om ongewenste sites te filteren. Ik weet niet precies waarom, maar soms helpt het herstarten van de hele server om problemen op te lossen of vreemde storingen te verhelpen. Houd de logs goed in de gaten en aarzel niet om ACL’s of cachegroottes aan te passen als de caching niet helemaal goed werkt.
Samenvatting
- Installeer Squid met je pakketbeheerder.
- Maak een back-up van de Squid-configuratie en bewerk deze.
- Stel de toegestane IP-bereiken, poort en cachegrootte in.
- Schakel optioneel gebruikersauthenticatie in.
- Configureer indien nodig siteblokkering.
- Sta de proxypoort toe in de firewallregels.
- Test grondig met curl en logbestanden.
Laten we hopen dat dit helpt.
Squid kan soms wat lastig zijn, maar als het eenmaal goed werkt, is het een solide proxy-oplossing. Verwacht wel wat uitproberen, vooral met machtigingen en firewalls. Veel succes, en hopelijk brengt deze configuratie je dichter bij een soepel werkende proxy. Als dit al één configuratie of beveiligingsupdate aan de praat krijgt, is dat al winst.