Squid - Proxy Server

Squid je funkciami nabitý webový sprostredkovateľský (proxy) server s vyrovnávacou pamäťou, ktorý poskytuje službu sprostredkovania služieb (proxy) a službu dočasného ukladania súborov do vyrovnávacej pamäte (cache) pre protokoly Hyper Text Transport Protocol (HTTP), File Transfer Protocol (FTP) a iné populárne sieťové protokoly. Squid vie služby poskytovať aj prostredníctvom šifrovaného spojenia cez Secure Sockets Layer (SSL) a može dočasne ukladať aj Domain Name Server (DNS) záznamy a vykonávať tzv. transparentné ukladanie do vyrovnávacej pamäte. Squid tiež podporuje najrôznejšie protokoly pre riadenie ukladania do vyrovnávacej pamäte ako napríklad Internet Cache Protocol (ICP),  Hyper Text Caching Protocol (HTCP), Cache Array Routing Protocol (CARP) a Web Cache Coordination Protocol (WCCP).

Sprostredkovateľský server Squid s vyrovnávacou pamäťou je excelentné riešenie pri potrebe nasadenia najrôznejších typov sprostredkujúcich serverov a serverov s vyrovnávacou pamäťou, ktoré sa hodí pre menšie kancelárie ale aj komplikované siete veľkých podnikov, pretože poskytuje granulárny mechanizmus riadenia pristupu a monitorovanie kritických parametrov cez Simple Network Management Protocol (SNMP). Pri výbere počítačového systému, ktorý má slúžiť pre účely servera Squid je dôležité vybrať systém s veľkou kapacitou fyzickej pamäte (RAM), pretože Squid udrživa vyrovnávaciu pamäť vo fyzickej pamäti, aby zvýšil výkon.

Inštalácia

Ak chceme nainštalovať server Squid, v príkazovom riadku zadáme:

sudo apt-get install squid

Konfigurácia

Squid sa konfiguruje pomocou direktív, ktoré sa nachádzajú v konfiguračnom súbore /etc/squid/squid.conf. Nasledujúce príklady ilustrujú ako jednotlivé direktívy môžu ovplyvniť správanie servera Squid. Viac informácií o konfigurácii servera Squid sa nachádza na stránke Squid Website.

[Tip]

Pred úpravou akéhokoľvek konfiguračného súboru by ste si mali vytvoriť kópiu originálneho súboru a nastaviť ho iba na čítanie, aby ste mohli nastavenia porovnať s pôvodnými hodnotami a v prípade potreby ich vrátiť späť.

Vytvorte kópiu súboru /etc/squid/squid.conf a nastavte ju iba na čítanie zadaním nasledujúcich príkazov:

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
sudo chmod a-w /etc/squid/squid.conf.original
  • Ak chceme nastaviť Squid server tak, aby načúval na TCP porte 8888 miesto predvoleného TCP portu 3128, zmeníme direktívu http_port:

    http_port 8888
    
  • Zmenou direktívy visible_hostname priradíme serveru Squid určitý názov stanice. Tento názov sa nemusí nevyhnutne zhodovať s menom počítača. V tomto príklade sme nastavili weezie

    visible_hostname weezie
    
  • Použitím funkcie servera Squid na riadenie prístupu, môžeme nastaviť sprostredkovanie internetových služieb serverom Squid tak, aby boli dostupné iba používateľom s určitou IP adresou. Môžeme si to ukázať na príklade používateľov z podsiete 192.168.42.0/24:

    Nasledujúci riadok pridáme na koniec časti označenej ako ACL v súbore /etc/squid/squid.conf:

    acl styridsatdvojkova_siet src 192.168.42.0/24
    

    Potom pridáme nasledujúci riadok na začiatok časti označenej ako http_access v súbore /etc/squid/squid.conf:

    http_access allow styridsatdvojkova_siet
    
  • Použitím výnimočných funkcií servera Squid na riadenie prístupu môžeme nastaviť sprostredkovanie internetových služieb serverom Squid tak, aby boli dostupné iba počas pracovnej doby. Ukážeme si to na zamestnancoch, ktorí sú v práci od  7:00 do 15:00PM, v pracovných dňoch týždňa, ktorých počítače patria do podsiete 10.1.42.0/42:

    Nasledujúce riadky pridáme na koniec časti označenej ako ACL v súbore /etc/squid/squid.conf:

    acl podsiet_firmy src 10.1.42.0/24
    acl pracovny_cas time M T W T F 9:00-17:00

    Potom pridáme nasledujúci riadok na začiatok časti označenej ako http_access v súbore /etc/squid/squid.conf:

    http_access allow podsiet_firmy pracovny_cas
    
[Note]

Po vykonaní zmien v súbore  /etc/squid/squid.conf, uložte súbor a reštartujte serverovú aplikáciu squid, aby sa prejavili vykonané zmeny. Urobíte to zadaním nasledujúceho príkazu:

sudo /etc/init.d/squid restart