Webproxy's bestaan al geruime tijd en worden door miljoenen gebruikers over de hele wereld gebruikt. Ze hebben een breed scala aan doeleinden, waarvan de meest populaire online anonimiteit is, maar er zijn andere manieren waarop u kunt profiteren van webproxy's. Hier zijn enkele ideeën:
De proxyserver is een computer die wordt gebruikt als tussenpersoon tussen de client en andere servers waarvan de client bronnen kan opvragen. Een eenvoudig voorbeeld hiervan is dat wanneer een klant online verzoeken doet (bijvoorbeeld een webpagina wil openen), hij eerst verbinding maakt met de proxyserver.
De proxyserver controleert vervolgens de lokale schijfcache en als de gegevens daar kunnen worden gevonden, zal deze de gegevens terugsturen naar de client, als ze niet in de cache zijn opgeslagen, het zal het verzoek namens de klant doen met behulp van het proxy-IP-adres (anders dan de klanten) en vervolgens de gegevens terugsturen naar de klant. De proxyserver zal proberen de nieuwe gegevens in de cache op te slaan en deze te gebruiken voor toekomstige verzoeken aan dezelfde server.
Inktvis is een webproxy die mijn brede scala aan organisaties heeft gebruikt. Het wordt vaak gebruikt als een caching-proxy en verbetert de responstijden en vermindert het bandbreedtegebruik.
Voor de toepassing van dit artikel zal ik installeren Inktvis op een Linode CentOS 7 VPS en gebruik het als een HTTP-proxyserver.
Voordat we beginnen, moet je weten dat Inktvis, heeft geen minimumvereisten, maar de hoeveelheid RAM-gebruik kan variëren, afhankelijk van de clients die op internet surfen via de proxyserver.
Inktvis is opgenomen in de basisrepository en dus is de installatie eenvoudig en ongecompliceerd. Voordat u het installeert, moet u er echter voor zorgen dat uw pakketten up-to-date zijn door het uit te voeren.
# yum -y update.
Ga verder door squid te installeren, start en schakel het in bij het opstarten van het systeem met behulp van de volgende opdrachten.
# yum -y installeer inktvis. # systemctl start inktvis. # systemctl activeer inktvis.
Op dit moment zou uw Squid-webproxy al moeten werken en kunt u de status van de service verifiëren met.
# systemctl status inktvis.
● squid.service - Squid caching proxy Geladen: geladen (/usr/lib/systemd/system/squid.service; ingeschakeld; vooraf ingestelde leverancier: uitgeschakeld) Actief: actief (lopen) sinds do 2018-09-20 10:07:23 UTC; 5min geleden Hoofd-PID: 2005 (inktvis) CGroup: /system.slice/squid.service ├─2005 /usr/sbin/squid -f /etc/squid/squid.conf ├─2007 (squid-1) -f /etc/squid/squid.conf └─2008 (logfile-daemon) /var/log/squid/access.log 20 september 10:07:23 tecmint systemd[1]: Squid-caching starten volmacht... 20 sep 10:07:23 tecmint squid [2005]: Inktvis Ouder: zal 1 kinderen starten. 20 sep 10:07:23 tecmint squid [2005]: Squid Parent: (squid-1) proces 2007 gestart. 20 sep 10:07:23 tecmint systemd[1]: Squid caching proxy gestart.
Hier zijn enkele belangrijke bestandslocaties waarvan u op de hoogte moet zijn:
Een minimum inktvis.conf
configuratiebestand (zonder opmerkingen erin) ziet er als volgt uit:
acl localnet src 10.0.0.0/8 # RFC1918 mogelijk intern netwerk. acl localnet src 172.16.0.0/12 # RFC1918 mogelijk intern netwerk. acl localnet src 192.168.0.0/16 # RFC1918 mogelijk intern netwerk. acl localnet src fc00::/7 # RFC 4193 lokaal particulier netwerkbereik. acl localnet src fe80::/10 # RFC 4291 link-local (direct aangesloten) machines. acl SSL_ports poort 443. acl Safe_ports poort 80 # http. acl Safe_ports poort 21 # ftp. acl Safe_ports poort 443 # https. acl Safe_ports poort 70 # gopher. acl Safe_ports poort 210 # wais. acl Safe_ports poort 1025-65535 # niet-geregistreerde poorten. acl Safe_ports poort 280 # http-mgmt. acl Safe_ports poort 488 # gss-http. acl Safe_ports poort 591 # filemaker. acl Safe_ports poort 777 # multiling http. acl CONNECT-methode CONNECT. http_access weigeren !Safe_ports. http_access weigeren CONNECT !SSL_ports. http_access staat localhost manager toe. http_access weigeren manager. http_access staat lokaalnet toe. http_access staat localhost toe. http_access alles weigeren. http_poort 3128. coredump_dir /var/spool/inktvis. refresh_pattern ^ftp: 1440 20% 10080. refresh_pattern ^gopher: 1440 0% 1440. refresh_pattern -i (/cgi-bin/|\?) 0 0% 0. refresh_pattern. 0 20% 4320.
Hier laten we u zien hoe u squid kunt configureren als een HTTP-proxy met alleen het IP-adres van de client voor authenticatie.
Als u het IP-adres toegang tot internet wilt geven via uw nieuwe proxyserver, moet u een nieuwe ACL (toegangscontrole lijst) regel in het configuratiebestand.
# vim /etc/squid/squid.conf.
De regel die u moet toevoegen is:
acl localnet src XX.XX.XX.XX.
Waar XX.XX.XX.XX is het daadwerkelijke client-IP-adres dat u wilt toevoegen. De regel moet worden toegevoegd aan het begin van het bestand waarin de ACL's zijn gedefinieerd. Het is een goede gewoonte om naast ACL een opmerking toe te voegen waarin wordt beschreven wie dit IP-adres gebruikt.
Het is belangrijk op te merken dat als Squid zich buiten uw lokale netwerk bevindt, u het openbare IP-adres van de client moet toevoegen.
U moet Squid opnieuw opstarten zodat de nieuwe wijzigingen van kracht kunnen worden.
# systemctl herstart squid.
Zoals je misschien hebt gezien in het configuratiebestand, zijn alleen bepaalde poorten toegestaan om verbinding te maken. U kunt meer toevoegen door het configuratiebestand te bewerken.
acl Safe_ports poort XXX.
Waar XXX is de daadwerkelijke poort die u wilt laden. Nogmaals, het is een goed idee om een opmerking achter te laten die beschrijft waarvoor de poort zal worden gebruikt.
Om de wijzigingen door te voeren, moet u squid opnieuw opstarten.
# systemctl herstart squid.
U wilt waarschijnlijk dat uw gebruikers zich verifiëren voordat ze de proxy gebruiken. Voor dat doel kunt u basis-HTTP-authenticatie inschakelen. Het is gemakkelijk en snel te configureren.
Eerst heb je nodig: httpd-tools geïnstalleerd.
# yum -y installeer httpd-tools.
Laten we nu een bestand maken dat later de gebruikersnaam voor de authenticatie zal opslaan. Inktvis loopt met gebruiker "inktvis" dus het bestand moet eigendom zijn van die gebruiker.
# raak /etc/squid/passwd aan. # chown squid: /etc/squid/passwd.
Nu gaan we een nieuwe gebruiker aanmaken met de naam "proxycliënt" en stel het wachtwoord in.
# htpasswd /etc/squid/passwd proxyclient Nieuw wachtwoord: Typ nieuw wachtwoord opnieuw: Wachtwoord toevoegen voor gebruiker proxyclient.
Om nu de authenticatie te configureren, opent u het configuratiebestand.
# vim /etc/squid/squid.conf.
Voeg na de poorten ACL's de volgende regels toe:
auth_param basisprogramma /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd. auth_param basiskinderen 5. auth_param basisrijk Squid Basisverificatie. auth_param basisreferentiesttl 2 uur. acl auth_users proxy_auth VERPLICHT. http_access auth_users toestaan.
Sla het bestand op en start squid opnieuw zodat de nieuwe wijzigingen van kracht kunnen worden:
# systemctl herstart squid.
Ten slotte zullen we nog een laatste maken ACL waarmee we ongewenste websites kunnen blokkeren. Maak eerst het bestand waarin de sites op de zwarte lijst worden opgeslagen.
# raak /etc/squid/blacklisted_sites.acl aan.
U kunt enkele domeinen toevoegen die u wilt blokkeren. Bijvoorbeeld:
.badsite1.com. .badsite2.com.
De volgende stip vertelt squid om alle verwijzingen naar die sites te blokkeren, inclusief: www.badsite1, subsite.badsite1.com, enz.
Open nu het configuratiebestand van Squid.
# vim /etc/squid/squid.conf.
Net na de poorten ACL's voegen de volgende twee regels toe:
acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl" http_access weigeren bad_urls.
Sla nu het bestand op en start squid opnieuw:
# systemctl herstart squid.
Nadat alles correct is geconfigureerd, kunt u nu uw lokale clientbrowser of de netwerkinstellingen van het besturingssysteem configureren om uw squid HTTP-proxy te gebruiken.
In deze tutorial heb je geleerd hoe je zelf een Squid HTTP Proxy-server installeert, beveiligt en configureert. Met de informatie die je zojuist hebt gekregen, kun je nu wat basisfiltering toevoegen voor inkomend en uitgaand verkeer via Squid.
Als je een stap verder wilt gaan, kun je squid zelfs configureren om sommige websites tijdens werkuren te blokkeren om afleiding te voorkomen. Als je vragen of opmerkingen hebt, plaats ze dan in het commentaargedeelte hieronder.