CentOS 7/8-de Squid ulanyp, HTTP proksi nädip döretmeli


Web proksi birnäçe wagt bäri bar we ýer ýüzündäki millionlarça ulanyjy tarapyndan ulanylýar. Olaryň dürli maksatlary bar, iň meşhurlary onlaýn anonim bolmak, ýöne web proksi-lerinden peýdalanmagyň başga ýollary bar. Ine käbir pikirler:

  • Onlaýn anonimlik
  • Onlaýn howpsuzlygy gowulandyrmak
  • adingükleme wagtyny gowulandyrmak
  • Zyýanly traffigi blokirläň
  • Onlaýn işjeňligiňizi ýazyň
  • Sebitleýin çäklendirmeleri aýyrmak üçin
  • Käbir ýagdaýlarda geçirijilik giňligini azaldyp biler

Proksi serwer, müşderi bilen çeşmäniň talap edip biljek beýleki serwerleriniň arasynda araçy hökmünde ulanylýan kompýuterdir. Muňa ýönekeý mysal, müşderi onlaýn haýyşlar edeninde (mysal üçin web sahypasyny açmak isleýär), ilki bilen proksi serwerine birikýär.

Proksi serweri soňra ýerli disk keşini barlaýar we maglumatlary şol ýerden tapyp bolýan bolsa, maglumatlary müşderä gaýtaryp berer, keş bolmasa, proksi IP adresini ulanyp müşderiniň adyndan haýyş eder. müşderiler) we soňra maglumatlary müşderä gaýtaryp beriň. Proksi serweri täze maglumatlary keşlemäge synanyşar we geljekde şol bir serwere edilen haýyşlar üçin ulanar.

“Squid” meniň giň guramalarymy ulanýan web proksi. Köplenç keş keşi proksi we jogap wagtyny gowulaşdyrmak we geçirijilik giňligini azaltmak hökmünde ulanylýar.

Bu makalanyň maksady üçin, “Linode CentOS 7 VPS” -e “Squid” guraryn we ony HTTP proksi serweri hökmünde ulanaryn.

“CentOS 7/8” -de “Squid” -i nädip gurmaly

Başlamazdan ozal, “Squid” -iň iň pes talaplarynyň ýokdugyny bilmelisiňiz, ýöne proksi serwer arkaly internete girýän müşderilere baglylykda RAM ulanylyşynyň mukdary üýtgäp biler.

“Squid” esasy ammarda ýerleşýär we şonuň üçin gurnama ýönekeý we gönümel. Şeýle-de bolsa, ony gurmazdan ozal, paketleriňiziň işleýändigine göz ýetiriň.

# yum -y update

“Squid” gurup dowam etdiriň, aşakdaky buýruklary ulanyp, ulgam işine başlaň we işlediň.

# yum -y install squid
# systemctl start squid
# systemctl  enable squid

Bu pursatda, “Squid” web proksiňiz eýýäm işlemeli we hyzmatyň ýagdaýyny barlap bilersiňiz.

# systemctl status squid
 squid.service - Squid caching proxy
   Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-09-20 10:07:23 UTC; 5min ago
 Main PID: 2005 (squid)
   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

Sep 20 10:07:23 tecmint systemd[1]: Starting Squid caching proxy...
Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: will start 1 kids
Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: (squid-1) process 2007 started
Sep 20 10:07:23 tecmint systemd[1]: Started Squid caching proxy.

Ine, bilmeli möhüm faýl ýerleriňiz:

  • Squid konfigurasiýa faýly: /etc/squid/squid.conf
  • Squid giriş gündeligi: /var/log/squid/access.log
  • Squid Keş gündeligi: /var/log/squid/cache.log

Iň az squid.conf konfigurasiýa faýly (içindäki düşündirişsiz) şuňa meňzeýär:

acl localnet src 10.0.0.0/8	# RFC1918 possible internal network
acl localnet src 172.16.0.0/12	# RFC1918 possible internal network
acl localnet src 192.168.0.0/16	# RFC1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
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

Squid-i HTTP proksi hökmünde düzmek

Bu ýerde, tassyklamak üçin diňe müşderiniň IP adresini ulanyp, skidini HTTP proksi hökmünde nädip düzmelidigini görkezeris.

IP adresi täze proksi serweriňiz arkaly internete girmäge rugsat bermek isleseňiz, konfigurasiýa faýlynda täze ACL (giriş gözegçilik sanawy) setirini goşmaly bolarsyňyz.

# vim /etc/squid/squid.conf

Goşmaly setiriňiz:

acl localnet src XX.XX.XX.XX

Bu ýerde XX.XX.XX.XX goşmak isleýän müşderiňiziň hakyky IP adresi. ACL-ler kesgitlenen faýlyň başynda setir goşulmaly. ACL-iň gapdalynda bu IP adresi kimiň ulanýandygyny düşündirjek teswir goşmak gowy tejribe.

“Squid” ýerli ulgamyňyzyň daşynda ýerleşýän bolsa, müşderiniň umumy IP adresini goşmalydygyny bellemelidiris.

Täze üýtgeşmeleriň güýje girmegi üçin Squid-i täzeden açmaly bolarsyňyz.

# systemctl  restart squid

Sazlama faýlynda görşüňiz ýaly, birikmek üçin diňe käbir portlara rugsat berilýär. Sazlama faýlyny redaktirläp has köp goşup bilersiňiz.

acl Safe_ports port XXX

XXX ýüklemek isleýän hakyky portuňyz. Againene-de portuň näme üçin ulanyljakdygyny suratlandyrýan gapdalynda teswir goýmak gowy pikir.

Üýtgeşmeleriň güýje girmegi üçin skidini ýene bir gezek täzeden açmaly bolarsyňyz.

# systemctl  restart squid

Proksi ulanmazdan ozal ulanyjylaryňyzyň hakykylygyny tassyklamagyny islärsiňiz. Şol maksat bilen, esasy HTTP tassyklamasyny açyp bilersiňiz. Sazlamak aňsat we çalt.

Ilki bilen, httpd-gurallary gurnalar.

# yum -y install httpd-tools

Indi tassyklamak üçin ulanyjy adyny saklaýan bir faýl döredeliň. “Squid” ulanyjy\“squid” bilen işleýär, şonuň üçin faýl şol ulanyja degişli bolmaly.

# touch /etc/squid/passwd
# chown squid: /etc/squid/passwd

Indi\proksient atly täze ulanyjy dörederis we parolyny gurarys.

# htpasswd /etc/squid/passwd proxyclient

New password:
Re-type new password:
Adding password for user proxyclient

Hakyky tanamak üçin konfigurasiýa faýly açyň.

# vim /etc/squid/squid.conf

Portlardan soň ACL-ler aşakdaky setirleri goşýarlar:

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

Täze üýtgeşmeleriň güýje girmegi üçin faýly ýazdyryň we squid-i täzeden açyň:

# systemctl restart squid

Ahyrynda, islenmeýän web sahypalaryny blokirlemäge kömek etjek iň soňky ACL dörederis. Ilki bilen gara sanawdaky sahypalary saklaýan faýly dörediň.

# touch /etc/squid/blacklisted_sites.acl

Blokirlemek isleýän käbir domenleriňizi goşup bilersiňiz. Mysal üçin:

.badsite1.com
.badsite2.com

Dowam edýän nokat, www.badsite1, subsite.badsite1.com we ş.m. ýaly sahypalara salgylanmalaryň hemmesini blokirlemegi aýdýar.

Indi “Squid” -iň konfigurasiýa faýlyny açyň.

# vim /etc/squid/squid.conf

Portlardan soň ACL-ler aşakdaky iki setiri goşýarlar:

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

Indi faýly ýazdyryň we squid-i täzeden açyň:

# systemctl restart squid

Everythinghli zat dogry düzülensoň, indi ýerli müşderi brauzeriňizi ýa-da operasiýa ulgamynyň set sazlamalaryny, HTTP proksi-ni ulanmak üçin düzüp bilersiňiz.

Bu gollanmada, “Squid HTTP Proxy” serwerini özbaşdak gurmagy, goramagy we sazlamagy öwrendiňiz. Justaňy alan maglumatlaryňyz bilen, indi “Squid” -iň üsti bilen gelýän we çykýan traffik üçin esasy süzgüç goşup bilersiňiz.

Goşmaça bir kilometre barmak isleseňiz, ünsüňizi sowmak üçin iş wagty käbir web sahypalaryny blokirlemek üçin skid düzüp bilersiňiz. Soraglaryňyz ýa-da teswirleriňiz bar bolsa, aşakdaky teswir bölüminde goýmagyňyzy haýyş edýäris.