Hoe u de "Squid Proxy" -server instelt op Ubuntu en Debian
Squid is een meest populaire HTTP-webproxyserver voor caching en forwarding die door mijn brede scala aan bedrijven wordt gebruikt om webpagina's van een webserver te cachen om de snelheid van de webserver te verbeteren, de responstijden te verkorten en het bandbreedtegebruik van het netwerk te verminderen.
Lees ook: een HTTP-proxy maken met Squid op CentOS 7
In dit artikel leggen we uit hoe u een squid-proxyserver op Ubuntu- en Debian-distributies kunt installeren en deze als HTTP-proxyserver kunt gebruiken.
Hoe Squid op Ubuntu te installeren
Voordat we beginnen, moet u weten dat de Squid-server geen vereisten heeft, maar de hoeveelheid RAM-gebruik kan verschillen, afhankelijk van de clients die via de proxyserver op internet surfen.
Het Squid-pakket kan worden geïnstalleerd vanuit de basis-Ubuntu-repository, maar zorg ervoor dat u eerst uw pakketten bijwerkt door deze uit te voeren.
sudo apt update
Zodra uw pakketten up-to-date zijn, kunt u doorgaan met het installeren van squid en het starten en inschakelen bij het opstarten van het systeem met behulp van de volgende opdrachten.
sudo apt -y install squid
sudo systemctl start squid
sudo systemctl enable squid
Op dit punt zou uw Squid-webproxy al actief moeten zijn en kunt u de status van de service verifiëren met.
sudo systemctl status squid
Voorbeelduitvoer
● 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
Hieronder volgen enkele belangrijke locaties voor inktvisbestanden waar u rekening mee moet houden:
- Inktvisconfiguratiebestand: /etc/squid/squid.conf
- Inktvistoegangslogboek: /var/log/squid/access.log
- Squid Cache-logboek: /var/log/squid/cache.log
Het standaardconfiguratiebestand bevat enkele configuratie-instructies die moeten worden geconfigureerd om het gedrag van de Squid te beïnvloeden.
Open nu dit bestand om het te bewerken met de Vi-editor en breng wijzigingen aan zoals hieronder weergegeven.
sudo vim /etc/squid/squid.conf
Nu kunt u zoeken naar de volgende regels en deze naar wens wijzigen. In de Vi-editor kunt u naar die regels zoeken door op 'ESC' te drukken en “/ te typen ' sleutel tot het schrijven van de specifieke regels waarnaar moet worden gezocht.
- http_port: dit is de standaardpoort voor de HTTP-proxyserver. Standaard is dit 3128. U kunt deze naar elke gewenste poort wijzigen. U kunt ook de “transparent ” tag aan het einde van de regel, zoals http_port 8888 transparant om de Squid-proxy als een transparante proxy te laten fungeren als je dat wilt.
- http_access deny all: deze regel geeft niemand toegang tot de HTTP-proxyserver. Daarom moet u deze wijzigen in http_access allow all om uw Squid-proxyserver te kunnen gebruiken .
- visible_hostname: deze richtlijn wordt gebruikt om de specifieke hostnaam in te stellen op een squid-server. Je kunt elke hostnaam aan squid geven.
Nadat u bovenstaande wijzigingen heeft aangebracht, kunt u de Squid-proxyserver opnieuw opstarten met behulp van de opdracht.
sudo systemctl restart squid
Squid configureren als een HTTP-proxy op Ubuntu
In dit configuratiegedeelte voor squid leggen we uit hoe u squid kunt configureren als een HTTP-proxy, waarbij u alleen het client-IP-adres gebruikt voor authenticatie.
Voeg Squid ACL's toe
Als u slechts één IP-adres toegang wilt geven tot internet via uw nieuwe proxyserver, moet u een nieuwe acl (toegangscontrolelijst) definiëren in het configuratiebestand.
sudo vim /etc/squid/squid.conf
De acl regel die u moet toevoegen is:
acl localnet src XX.XX.XX.XX
Waarbij XX.XX.XX.XX
het IP-adres van de clientcomputer is. Deze acl moet worden toegevoegd aan het begin van de ACL-sectie, zoals weergegeven in de volgende schermafbeelding.
Het is altijd een goede gewoonte om naast ACL een opmerking te plaatsen, waarin bijvoorbeeld wordt beschreven wie dit IP-adres gebruikt.
acl localnet src 192.168.0.102 # Boss IP address
U moet de Squid-service opnieuw starten om de nieuwe wijzigingen door te voeren.
sudo systemctl restart squid
Open poorten in Squid Proxy
Standaard zijn alleen bepaalde poorten toegestaan in de squid-configuratie. Als u er meer wilt toevoegen, definieert u deze gewoon in het configuratiebestand, zoals weergegeven.
acl Safe_ports port XXX
Waarbij XXX
het poortnummer is dat u wilt toestaan. Ook hier is het een goede gewoonte om een opmerking naast acl te definiëren die beschrijft waarvoor de port gebruikt gaat worden.
Om de wijzigingen door te voeren, moet je Squid opnieuw opstarten.
sudo systemctl restart squid
Squid Proxy Client-authenticatie
Om gebruikers in staat te stellen zich te authenticeren voordat ze de proxy gebruiken, moet u basis-http-authenticatie inschakelen in het configuratiebestand, maar daarvoor moet u het apache2-utils pakket installeren met de volgende opdracht.
sudo apt install apache2-utils
Maak nu een bestand met de naam “passwd” waarin later de gebruikersnaam voor de authenticatie wordt opgeslagen. Squid wordt uitgevoerd met gebruiker “proxy”, dus het bestand moet eigendom zijn van die gebruiker.
sudo touch /etc/squid/passwd
sudo chown proxy: /etc/squid/passwd
ls -l /etc/squid/passwd
Nu zullen we een nieuwe gebruiker aanmaken met de naam “tecmint” en het wachtwoord instellen.
sudo htpasswd /etc/squid/passwd tecmint
New password:
Re-type new password:
Adding password for user tecmint
Om de basis-http-authenticatie in te schakelen, opent u nu het configuratiebestand.
sudo vim /etc/squid/squid.conf
Voeg na de poorten ACL's de volgende regels toe:
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
Sla het bestand op en start squid opnieuw op, zodat de nieuwe wijzigingen van kracht kunnen worden:
sudo systemctl restart squid
Blokkeer websites op Squid Proxy
Om de toegang tot ongewenste websites te blokkeren, maakt u eerst een bestand met de naam “blacklisted_sites.acl” waarin de sites op de zwarte lijst worden opgeslagen.
sudo touch /etc/squid/blacklisted_sites.acl
Voeg nu bijvoorbeeld de websites toe waarvan u de toegang wilt blokkeren.
.badsite1.com
.badsite2.com
De volgende stip informeert squid om alle verwijzingen naar die sites te blokkeren, inclusief www.badsite1, subsite.badsite1.com enz.
Open nu het configuratiebestand van Squid.
sudo vim /etc/squid/squid.conf
Voeg net na de bovenstaande ACL's de volgende twee regels toe:
acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls
Sla nu het bestand op en start squid opnieuw:
sudo systemctl restart squid
Blokkeer specifiek trefwoord met Squid
Om een lijst met trefwoorden te blokkeren, maakt u eerst een bestand met de naam “blockkeywords.lst” waarin de trefwoorden op de zwarte lijst worden opgeslagen.
sudo touch /etc/squid/blockkeywords.lst
Voeg nu bijvoorbeeld de trefwoorden toe waarvan u de toegang wilt blokkeren.
facebook
instagram
gmail
Open nu het configuratiebestand van Squid en voeg de volgende regel toe.
acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist
Sla nu het bestand op en start squid opnieuw:
sudo systemctl restart squid
Zodra alles nauwkeurig is geconfigureerd, kunt u nu de netwerkinstellingen van uw lokale clientwebbrowser of besturingssysteem configureren om uw nieuw geconfigureerde squid HTTP-proxy te gebruiken.
Configureer de client om Squid Proxy te gebruiken
Om nu te testen of uw proxyserver werkt of niet, kunt u Firefox openen en naar Bewerken –> Voorkeuren –> Geavanceerd –> Netwerk –> Instellingen gaan en “Handmatige proxyconfiguratie ” en voer als volgt het IP-adres en de poort van uw proxyserver in die voor alle verbindingen moeten worden gebruikt.
Zodra u alle vereiste proxygegevens heeft ingevuld, kunt u op internet surfen met uw Squid-proxyserver. U kunt hetzelfde doen in elke gewenste browser of programma.
Om er zeker van te zijn dat u met uw proxyserver op internet surft, kunt u naar http://www.ipaddresslocation.org/ gaan, in de rechterbovenhoek moet u hetzelfde IP-adres zien als uw server IP adres.
Voor meer aanvullende configuratie-instellingen kunt u de officiële inktvisdocumentatie raadplegen. Als u vragen of opmerkingen heeft, kunt u deze toevoegen in het opmerkingengedeelte hieronder.