Kaip sukurti HTTP tarpinį serverį naudojant „Squid“ „CentOS 7/8“.
Žiniatinklio tarpiniai serveriai egzistuoja jau gana seniai ir juos naudoja milijonai vartotojų visame pasaulyje. Jie skirti įvairiems tikslams, populiariausias yra anonimiškumas internete, tačiau yra ir kitų būdų, kaip galite pasinaudoti žiniatinklio tarpiniais serveriais. Štai keletas idėjų:
- Anonimiškumas internete
- Pagerinkite saugumą internete
- Pagerinkite įkrovimo laiką
- Blokuoti kenkėjišką srautą
- Užregistruokite savo veiklą internete
- Norėdami apeiti regioninius apribojimus
- Kai kuriais atvejais gali sumažinti pralaidumo naudojimą
Kaip veikia tarpinis serveris
Tarpinis serveris yra kompiuteris, kuris naudojamas kaip tarpininkas tarp kliento ir kitų serverių, iš kurių klientas gali prašyti išteklių. Paprastas pavyzdys, kai klientas pateikia užklausas internetu (pavyzdžiui, nori atidaryti tinklalapį), jis pirmiausia prisijungia prie tarpinio serverio.
Tada įgaliotasis serveris patikrina savo vietinio disko talpyklą ir, jei ten galima rasti duomenis, jis grąžins duomenis klientui, o jei nebus išsaugotas talpykloje, pateiks užklausą kliento vardu naudodamas tarpinio serverio IP adresą (skirtingą nuo klientams) ir grąžinti duomenis klientui. Tarpinis serveris bandys išsaugoti naujus duomenis talpykloje ir naudos juos būsimoms užklausoms, pateiktoms tam pačiam serveriui.
Kas yra Squid Proxy
Squid yra žiniatinklio tarpinis serveris, kuris naudojo įvairias mano organizacijas. Jis dažnai naudojamas kaip talpyklos tarpinis serveris ir pagerina atsako laiką bei sumažina pralaidumo naudojimą.
Šiame straipsnyje aš įdiegsiu Squid Linode CentOS 7 VPS ir naudosiu jį kaip HTTP tarpinį serverį.
Kaip įdiegti „Squid“ „CentOS 7/8“.
Prieš pradėdami, turėtumėte žinoti, kad Squid nekelia jokių minimalių reikalavimų, tačiau RAM naudojimo kiekis gali skirtis priklausomai nuo klientų, naršančių internete per tarpinį serverį.
Squid yra įtrauktas į bazinę saugyklą, todėl diegimas yra paprastas ir nesudėtingas. Tačiau prieš diegdami įsitikinkite, kad jūsų paketai yra atnaujinti.
yum -y update
Tęskite įdiegdami squid, paleiskite ir įjunkite jį paleidžiant sistemą naudodami šias komandas.
yum -y install squid
systemctl start squid
systemctl enable squid
Šiuo metu jūsų Squid žiniatinklio tarpinis serveris jau turėtų veikti ir jūs galite patikrinti paslaugos būseną naudodami.
systemctl status squid
Pavyzdžio išvestis
● 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.
Štai keletas svarbių failų vietų, kurias turėtumėte žinoti:
- Squid konfigūracijos failas: /etc/squid/squid.conf
- Squid Access žurnalas: /var/log/squid/access.log
- Squid talpyklos žurnalas: /var/log/squid/cache.log
Mažiausias squid.conf
konfigūracijos failas (be komentarų) atrodo taip:
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 konfigūravimas kaip HTTP tarpinis serveris
Čia parodysime, kaip sukonfigūruoti kalmarus kaip HTTP tarpinį serverį, naudojant tik kliento IP adresą autentifikavimui.
Pridėkite Squid ACL
Jei norite leisti IP adresui pasiekti žiniatinklį per naują tarpinį serverį, konfigūracijos faile turėsite pridėti naują ACL (prieigos kontrolės sąrašas) eilutę. .
vim /etc/squid/squid.conf
Eilute, kurią turėtumėte pridėti, yra:
acl localnet src XX.XX.XX.XX
Kur XX.XX.XX.XX yra tikrasis kliento IP adresas, kurį norite pridėti. Eilutę reikia pridėti failo, kuriame yra apibrėžtos ACL, pradžioje. Gera praktika yra pridėti komentarą prie ACL, kuriame bus aprašyta, kas naudoja šį IP adresą.
Svarbu pažymėti, kad jei Squid yra už jūsų vietinio tinklo ribų, turėtumėte pridėti viešąjį kliento IP adresą.
Turėsite iš naujo paleisti Squid, kad nauji pakeitimai įsigaliotų.
systemctl restart squid
Atidarykite „Squid“ tarpinio serverio prievadus
Kaip galbūt matėte konfigūracijos faile, tik tam tikri prievadai leidžiami prisijungti. Galite pridėti daugiau redaguodami konfigūracijos failą.
acl Safe_ports port XXX
Kur XXX yra tikrasis prievadas, kurį norite įkelti. Vėlgi, pravartu šalia palikti komentarą, kuriame būtų aprašyta, kam prievadas bus naudojamas.
Kad pakeitimai įsigaliotų, turėsite dar kartą iš naujo paleisti squid.
systemctl restart squid
Squid Proxy kliento autentifikavimas
Greičiausiai norėsite, kad naudotojai patvirtintų tapatybę prieš naudodami tarpinį serverį. Tuo tikslu galite įjungti pagrindinį HTTP autentifikavimą. Tai lengva ir greita konfigūruoti.
Pirmiausia turėsite įdiegti httpd-tools.
yum -y install httpd-tools
Dabar sukurkime failą, kuriame vėliau bus saugomas autentifikavimo vartotojo vardas. Squid veikia su naudotoju "squid", todėl failas turėtų priklausyti tam vartotojui.
touch /etc/squid/passwd
chown squid: /etc/squid/passwd
Dabar sukursime naują naudotoją pavadinimu „proxyclient“ ir nustatysime jo slaptažodį.
htpasswd /etc/squid/passwd proxyclient
New password:
Re-type new password:
Adding password for user proxyclient
Dabar, norėdami sukonfigūruoti autentifikavimą, atidarykite konfigūracijos failą.
vim /etc/squid/squid.conf
Po prievadų ACL pridėkite šias eilutes:
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
Išsaugokite failą ir iš naujo paleiskite squid, kad nauji pakeitimai įsigaliotų:
systemctl restart squid
Blokuoti svetaines Squid Proxy
Galiausiai sukursime paskutinį ACL, kuris padės užblokuoti nepageidaujamas svetaines. Pirmiausia sukurkite failą, kuriame bus saugomos juodojo sąrašo svetainės.
touch /etc/squid/blacklisted_sites.acl
Galite pridėti keletą domenų, kuriuos norite blokuoti. Pavyzdžiui:
.badsite1.com
.badsite2.com
Tęsiamas taškas nurodo squid blokuoti visas nuorodas į tas svetaines, įskaitant www.badsite1, subsite.badsite1.com ir tt.
Dabar atidarykite Squid konfigūracijos failą.
vim /etc/squid/squid.conf
Iškart po prievadų ACL pridėkite šias dvi eilutes:
acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls
Dabar išsaugokite failą ir iš naujo paleiskite squid:
systemctl restart squid
Kai viskas bus tinkamai sukonfigūruota, dabar galite sukonfigūruoti vietinio kliento naršyklę arba operacinės sistemos tinklo nustatymus, kad galėtumėte naudoti squid HTTP tarpinį serverį.
Išvada
Šiame vadove sužinojote, kaip savarankiškai įdiegti, apsaugoti ir konfigūruoti Squid HTTP Proxy serverį. Turėdami ką tik gautą informaciją, dabar galite pridėti pagrindinį įeinančio ir išeinančio srauto per Squid filtravimą.
Jei norite nuveikti dar daugiau, netgi galite sukonfigūruoti kalmarus, kad blokuotų kai kurias svetaines darbo valandomis, kad išvengtumėte blaškymosi. Jei turite klausimų ar komentarų, pateikite juos komentarų skiltyje žemiau.