Squid-välityspalvelimen määrittäminen rajoitetulla pääsyllä ja asiakkaiden asettaminen käyttämään välityspalvelinta - osa 5


Linux Foundation -sertifioitu insinööri on ammattitaitoinen ammattilainen, jolla on asiantuntemusta asentaa, hallita ja ratkaista verkkopalveluja Linux-järjestelmissä, ja hän vastaa järjestelmän suunnittelusta, toteutuksesta ja jatkuvasta ylläpidosta. laaja arkkitehtuuri.

Esittelyssä Linux Foundation -sertifiointiohjelma.

Tämän sarjan osassa 1 näytimme kuinka asentaa välipalvelimen välimuistipalvelin squid Web-asiakkaille. Ole hyvä ja katso kyseinen viesti (alla oleva linkki) ennen kuin jatkat, jos et ole vielä asentanut kalmaria järjestelmääsi.

  1. Osa 1 - Asenna verkkopalvelut ja määritä automaattinen käynnistys käynnistettäessä

Tässä artikkelissa näytämme sinulle, miten Squid-välityspalvelin määritetään Internet-yhteyden myöntämiseksi tai rajoittamiseksi, ja kuinka määritetään http-asiakas tai verkkoselain käyttämään kyseistä välityspalvelinta.

Operating System :	Debian Wheezy 7.5
IP Address 	 :	192.168.0.15
Hostname	 :	dev2.gabrielcanepa.com.ar
Operating System :	Ubuntu 12.04
IP Address 	 :	192.168.0.104 
Hostname	 :	ubuntuOS.gabrielcanepa.com.ar
Operating System :	CentOS-7.0-1406
IP Address 	 :	192.168.0.17 
Hostname	 :	dev1.gabrielcanepa.com.ar

Muistetaan, että yksinkertaisesti sanottuna web-välityspalvelin on välittäjä yhden (tai useamman) asiakastietokoneen ja tietyn verkkoresurssin välillä, yleisin Internet-yhteys. Toisin sanoen välityspalvelin on kytketty toiselta puolelta suoraan Internetiin (tai reitittimeen, joka on kytketty Internetiin) ja toiselta puolelta asiakastietokoneiden verkkoon, jotka pääsevät Internetiin sen kautta.

Saatat ihmetellä, miksi haluaisin lisätä vielä yhden ohjelmiston verkkoinfrastruktuuriini?

1. Kalmari tallentaa edellisten pyyntöjen tiedostot tulevien siirtojen nopeuttamiseksi . Oletetaan esimerkiksi, että asiakas1 lataa CentOS-7.0-1406-x86_64-DVD.iso Internetistä. Kun asiakas2 pyytää pääsyä samaan tiedostoon, kalmari voi siirtää tiedoston välimuistista sen sijaan, että lataaisi sen uudelleen Internetistä. Kuten voit arvata, voit käyttää tätä ominaisuutta nopeuttaaksesi tiedonsiirtoa tietokoneiden verkossa, jotka vaativat usein jonkinlaisia päivityksiä.

2. ACL: t ( pääsynhallintaluettelot ) antavat meille mahdollisuuden rajoittaa pääsyä verkkosivustoille ja/tai valvoa pääsyä käyttäjäkohtaisesti. Voit rajoittaa pääsyä esimerkiksi viikonpäivän, kellonajan tai verkkotunnuksen perusteella.

3. Verkkosuodattimien ohittaminen on mahdollista käyttämällä verkkopalvelinta, jolle pyyntöjä tehdään ja joka palauttaa pyydetyn sisällön asiakkaalle sen sijaan, että asiakas pyytää sitä suoraan Internetiin.

Oletetaan esimerkiksi, että olet kirjautunut sisään asiakas1 -palveluun ja haluat käyttää www.facebook.com -yritystä yrityksesi reitittimen kautta. Koska yrityksesi käytännöt voivat estää sivuston, voit muodostaa yhteyden web-välityspalvelimeen ja pyytää sitä käyttämään sivustoa www.facebook.com . Etäsisältö palautetaan sitten sinulle uudelleen verkkopalvelimen kautta ohittamalla yrityksesi reitittimen estokäytännöt.

Kalmarin määrittäminen - perusteet

Squid-web-välityspalvelimen pääsynvalvontamalli koostuu kahdesta eri osasta:

  1. ACL-elementit ovat ohjeellisia rivejä, jotka alkavat sanalla "acl " ja edustavat testityyppejä, jotka suoritetaan mitä tahansa pyyntötapahtumaa vastaan.
  2. käyttöoikeusluettelosäännöt koostuvat salli tai estä -toiminnosta, jota seuraa useita ACL-elementtejä, ja niitä käytetään osoittamaan mikä toiminto tai rajoitusta on sovellettava tiettyyn pyyntöön. Ne tarkistetaan järjestyksessä, ja luettelohaku päättyy heti, kun yksi sääntöistä on ottelu. Jos säännössä on useita ACL-elementtejä, se toteutetaan loogisena JA-operaationa (säännön kaikkien ACL-elementtien on oltava osumat, jotta sääntö olisi ottelu).

Squidin päämääritystiedosto on /etc/squid/squid.conf , joka on ~ 5000 riviä pitkä, koska se sisältää sekä määritysdirektiivejä että dokumentaatiota. Tästä syystä luomme uuden squid.conf -tiedoston, joka sisältää vain rivit, jotka sisältävät kokoonpanodirektiivit mukavuutemme vuoksi, jättämällä tyhjät tai kommentoidut rivit pois. Tätä varten käytämme seuraavia komentoja.

# mv /etc/squid/squid.conf /etc/squid/squid.conf.bkp

Ja sitten,

# grep -Eiv '(^#|^$)' /etc/squid/squid.conf.bkp

OR

# grep -ve ^# -ve ^$ /etc/squid/squid.conf.bkp > /etc/squid/squid.conf

Avaa nyt äskettäin luotu squid.conf -tiedosto ja etsi (tai lisää) seuraavat ACL -elementit ja käyttöluettelot.

acl localhost src 127.0.0.1/32
acl localnet src 192.168.0.0/24

Kaksi yllä olevaa riviä edustavat perusesimerkkiä ACL -elementtien käytöstä.

  1. Ensimmäinen sana acl ilmaisee, että tämä on ACL-elementtirivirivi.
  2. Toinen sana, paikallinen isäntä tai paikallinen verkko , antaa direktiiville nimen.
  3. Kolmas sana, tässä tapauksessa src , on ACL-elementtityyppi, jota käytetään edustamaan asiakkaan IP-osoitetta tai vastaavasti osoitealuetta. Voit määrittää yhden isännän IP: n (tai isäntänimen, jos sinulla on jonkinlainen DNS-tarkkuus käytössä) tai verkko-osoitteen mukaan.
  4. Neljäs parametri on suodatusargumentti, joka syötetään direktiiviin.

Kaksi alla olevaa riviä ovat käyttöoikeusluettelon sääntöjä ja edustavat nimenomaista aiemmin mainittujen ACL -direktiivien täytäntöönpanoa. Muutamalla sanalla ne ilmaisevat, että http-käyttöoikeus tulisi myöntää, jos pyyntö tulee paikallisverkosta ( localnet ) tai localhostilta . Mikä on sallittu lähiverkko tai paikalliset isäntäosoitteet? Vastaus on: ne, jotka on määritetty localhost- ja localnet-direktiiveissä.

http_access allow localnet
http_access allow localhost

Tässä vaiheessa voit käynnistää Squid uudelleen voidaksesi tehdä odottavia muutoksia.

# service squid restart 		[Upstart / sysvinit-based distributions]
# systemctl restart squid.service 	[systemd-based distributions]

ja määritä sitten lähiverkon asiakasselain (tapauksessamme 192.168.0.104 ) käyttämään Internetiä välityspalvelimen kautta seuraavasti.

1. Siirry Muokkaa -valikkoon ja valitse Asetukset -vaihtoehto.

2. Napsauta Lisäasetukset , sitten Verkko -välilehteä ja lopuksi Asetukset ...

3. Tarkista Manuaalinen välityspalvelimen määritys ja kirjoita välityspalvelimen IP-osoite ja portti , johon se etsii yhteyksiä.

Huomaa, että oletusarvoisesti Squid kuuntelee porttia 3128 , mutta voit ohittaa tämän toiminnan muokkaamalla käyttöoikeusluettelon sääntöä, joka alkaa nimellä http_port ( oletusarvoisesti se lukee http_port 3128 ).

4. Ota muutokset käyttöön napsauttamalla OK ja olet valmis.

Voit nyt tarkistaa, että paikallisverkkoasiakas käyttää Internetiä välityspalvelimen kautta seuraavasti.

1. Avaa asiakkaassasi pääte ja kirjoita

# ip address show eth0 | grep -Ei '(inet.*eth0)'

Tämä komento näyttää asiakkaasi nykyisen IP-osoitteen ( 192.168.0.104 seuraavassa kuvassa).

2. Avaa asiakkaassasi mikä tahansa verkkosivusto verkkoselaimella ( linux-console.net tässä tapauksessa).

3. Suorita palvelimessa.

# tail -f /var/log/squid/access.log

ja saat reaaliaikaisen näkymän Squid -palvelun kautta toimitettavista pyynnöistä.

Asiakkaan pääsyn rajoittaminen

Oletetaan nyt, että haluat nimenomaisesti estää pääsyn kyseiselle asiakkaan IP-osoitteelle samalla, kun säilytät pääsyn muulle paikalliselle verkolle.

1. Määritä uusi ACL -direktiivi seuraavasti (olen nimennyt sen ubuntuOS , mutta voit nimetä sen mitä haluat).

acl ubuntuOS src 192.168.0.104

2. Lisää ACL -direktiivi jo olemassa olevaan localnet access -luetteloon, mutta merkitse se huutomerkillä. Tämä tarkoittaa, että Salli Internet-yhteys asiakkaille, jotka vastaavat localnet ACL -direktiiviä lukuun ottamatta sitä, joka vastaa ubuntuOS-direktiiviä .

http_access allow localnet !ubuntuOS

3. Nyt meidän on käynnistettävä Squid uudelleen muutosten soveltamiseksi. Sitten, jos yritämme selata mitä tahansa sivustoa, huomaat, että pääsy evätään nyt.

Kalmarin määrittäminen - hienosäätö

Rajoitamme Squidiin pääsyn toimialueittain käytämme dstdomain -avainsanaa ACL -direktiivissä seuraavasti.

acl forbidden dstdomain "/etc/squid/forbidden_domains"

Missä kielletyt_verkkotunnukset on pelkkä tekstitiedosto, joka sisältää verkkotunnukset, joihin haluamme estää pääsyn.

Lopuksi meidän on annettava pääsy Squidiin pyynnöille, jotka eivät vastaa yllä olevaa direktiiviä.

http_access allow localnet !forbidden

Tai ehkä haluamme sallia pääsyn näille sivustoille vain tiettyyn aikaan päivästä ( 10: 00-11: 00 ) vain maanantaina (M) , keskiviikko (L) ja perjantai (F) .

acl someDays time MWF 10:00-11:00
http_access allow forbidden someDays
http_access deny forbidden

Muussa tapauksessa pääsy kyseisiin verkkotunnuksiin estetään.

Kalmari tukee useita todennusmekanismeja (Basic, NTLM, Digest, SPNEGO ja Oauth) ja auttajia (SQL-tietokanta, LDAP, NIS, NCSA, muutamia mainitakseni). Tässä opetusohjelmassa käytämme perustodennusta NCSA : n kanssa.

Lisää seuraavat rivit tiedostoon /etc/squid/squid.conf .

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic credentialsttl 30 minutes
auth_param basic casesensitive on
auth_param basic realm Squid proxy-caching web server for Tecmint's LFCE series
acl ncsa proxy_auth REQUIRED
http_access allow ncsa

Huomaa: CentOS 7: ssä NCSA-laajennus kalmareille löytyy/usr/lib64/squid/basic_nsca_auth, joten vaihda vastaavasti yllä olevalla rivillä.

Muutama selvennys:

  1. Meidän on kerrottava Squidille, mitä todennuksen apuohjelmaa käytetään auth_param -direktiivin kanssa määrittämällä ohjelman nimi (todennäköisesti /usr/lib/squid/ncsa_auth tai/usr/lib64/squid/basic_nsca_auth) sekä tarvittaessa komentorivivalinnat (/etc/squid/passwd tässä tapauksessa).
  2. /etc/squid/passwd -tiedosto luodaan htpasswd -työkalun avulla, jolla hallitaan perustodennusta tiedostojen kautta. Sen avulla voimme lisätä luettelon käyttäjänimistä (ja niitä vastaavista salasanoista), jotka saavat käyttää Squidiä.
  3. credentialsttl 30 minuuttia edellyttää käyttäjänimesi ja salasanasi syöttämistä 30 minuutin välein (voit määrittää tämän aikavälein myös tunneilla).
  4. kirjainkoko tarkoittaa, että käyttäjänimissä ja salasanoissa kirjainkoko on merkitsevä.
  5. valtakunta edustaa todennusikkunan tekstiä, jota käytetään kalmareiden todentamiseen.
  6. Lopuksi pääsy myönnetään vain, kun välityspalvelimen todennus ( vaaditaan välityspalvelimen_auth vaaditaan ) onnistuu.

Luo tiedosto ja lisää käyttäjän gacanepa tunnistetiedot suorittamalla seuraava komento (jätä -c -merkki pois, jos tiedosto on jo olemassa).

# htpasswd -c /etc/squid/passwd gacanepa

Avaa verkkoselain asiakaskoneessa ja yritä selata mihin tahansa tiettyyn sivustoon.

Jos todennus onnistuu, pyydetylle resurssille myönnetään pääsy. Muussa tapauksessa pääsy evätään.

Välimuistin käyttäminen tiedonsiirron nopeuttamiseksi

Yksi Squidin erottavista piirteistä on mahdollisuus tallentaa välimuistiin Internetiltä pyydetyt resurssit levylle nopeuttaakseen kyseisten objektien tulevia pyyntöjä joko samalta asiakkaalta tai muilta.

Lisää seuraavat ohjeet squid.conf -tiedostoon.

cache_dir ufs /var/cache/squid 1000 16 256
maximum_object_size 100 MB
refresh_pattern .*\.(mp4|iso) 2880

Muutama selostus edellä mainituista direktiiveistä.

  1. ufs on Squid-tallennustila.
  2. /var/cache/squid on ylätason hakemisto, johon välimuistitiedostot tallennetaan. Tämän hakemiston on oltava olemassa, ja Squid on kirjoitettava (Squid EI luo tätä hakemistoa sinulle).
  3. 1000 on tämän hakemiston alla käytettävä määrä (megatavuina).
  4. 16 on 1. tason alihakemistojen lukumäärä, kun taas 256 on /var/spool/squid .
  5. maximum_object_size -direktiivi määrittää välimuistissa olevien sallittujen objektien enimmäiskoon.
  6. refresh_pattern kertoo Squidille kuinka käsitellä tiettyjä tiedostotyyppejä ( .mp4 ja .iso tässä tapauksessa) ja kuinka kauan sen pitäisi tallenna pyydetyt objektit välimuistiin (2880 minuuttia = 2 päivää).

Ensimmäinen ja toinen 2880 ovat vastaavasti alarajat ja ylärajat sille, kuinka kauan objekteja ilman nimenomaista vanhentumisaikaa pidetään viimeaikaisina, ja välimuisti palvelee niitä, kun taas 0% on esineiden iän prosenttiosuus (aika viimeisestä muokkauksesta), jonka mukaan kutakin objektia, jolla ei ole nimenomaista vanhentumisaikaa, pidetään äskettäisenä.

Ensimmäinen asiakas ( IP 192.168.0.104 ) lataa 71 Mt.mp4 -tiedoston 2 minuutissa ja 52 sekunnissa.

Toinen asiakas ( IP 192.168.0.17 ) lataa saman tiedoston 1,4 sekunnissa!

Tämä johtuu siitä, että tiedosto toimitettiin Squid-välimuistista (merkitty TCP_HIT/200 ) toisessa tapauksessa, toisin kuin ensimmäinen, kun se ladattiin suoraan Internetissä (edustaja TCP_MISS/200 ).

Avainsanat HIT ja MISS sekä 200 http -vastakoodi osoittavat, että tiedosto on toimitettu onnistuneesti molempina aikoina, mutta välimuisti oli HIT ja Missed. Kun välimuisti ei jostain syystä pysty tarjoamaan pyyntöä, Squid yrittää palvella sitä Internetistä.

Johtopäätös

Tässä artikkelissa olemme keskustelleet kalmari-web-välimuistipalvelimen määrittämisestä. Voit käyttää välityspalvelinta suodattamaan sisältöä valitulla ehdolla ja vähentämään viivettä (koska samanlaisia saapuvia pyyntöjä tarjotaan välimuistista, joka on lähempänä asiakasta kuin sisältöä tosiasiallisesti palveleva verkkopalvelin, mikä johtaa nopeammin tiedonsiirrot) ja verkkoliikenne (vähentää käytetyn kaistanleveyden määrää, mikä säästää rahaa, jos maksat liikenteestä).

Voit pyytää lisätietoja Squid-verkkosivustolta (muista tarkistaa myös wiki), mutta älä epäröi ottaa yhteyttä meihin, jos sinulla on kysyttävää tai kommentteja. Meillä on enemmän kuin ilo kuulla sinusta!


Kaikki oikeudet pidätetään. © Linux-Console.net • 2019-2024