Obsah
Proxy server
Ako caching proxy server, ktorý môže poskytnúť lepší výkon pre pripojenie cez HTTP, HTTPS a FTP protokoly sa najčastejšie používa Squid. Squid ukladá bežne prístupné stránky u seba tak, že pri opätovnej požiadavke o zobrazenie tej istej stránky sa nenačíta z internetu, ale z lokálneho cache. To môže zlepšiť výkon pripojenia o 10-20%.
Squid je kompatibilný s architektúrou Harvest Cache a používa Inter-Cache Protocol (ICP) pre prenos dát. Squid môže urýchliť komunikáciu z vnútornej siete do Internetu, alebo to môže byť zamestnaný pôsobiť ako front-end urýchľovač pre webový server, zlepšiť prístup na webové stránky na serveri.
Na čo je dobrý proxy server?
- Zrýchľuje pripojenie k Internetu pre vnútornú sieť
- Chráni vnútornú sieť pri surfovaní po Internete
- Vytvára detailné informácie o činnosti používateľa na internete
- Bráni nevhodnej aktivite užívateľov na internete
- Vynúti použitie iba oprávnenými používateľmi
- Filtruje citlivé informácie
- Zrýchľuje webový server
Nastavenie servera
Na inštaláciu Squid proxy servera použijeme notorický známu formulku:
sudo apt-get install squid
Keďže squid nie je štandardneintegrovaný do upstart preto na jeho ovládanie použijeme tri základné príkazy:
start squid stop squid restart squid
Dôležité súbory
Základné súbory používané Squid proxy serverom:
/etc/squid | konfiguračný adresár |
/etc/squid/squid.conf | hlavný konfiguračný súbor |
/usr/share/doc/squid | príklady a dokumentácia |
/usr/lib/squid | podporné súbory |
/usr/sbin/squid | squid daemon |
/var/log/squid | logovací adresár |
/var/spool/squid | cache adresár |
Základná konfigurácia servera
Štandardne po nainštalovaní proxy servera je povolený iba pre pripájanie sa z miesta localhost, teda vlastný počítač na ktorom beží, preto musíme zmeniť konfiguráciu proxy servera, aby bol prístupný aj na ostatných počítačoch.
V súbore /etc/squid/squid.conf
, niekde na riadku 677 nájdeme text
http_access allow localhost
a pod tento riadok dodáme riadok, ktorým povolíme proxy server pre zvyšných užívateľov:
http_access allow localnet
Toto nastavenie bude fungovať jedine v prípade, že máme v ACL nastavené tieto lokálne siete:
acl localnet src 10.0.0.0/8 acl localnet src 172.16.0.0/12 acl localnet src 192.168.0.0/16
Ak máte konfiguráciu dokončenú a uloženú, reštartujte Squid proxy server:
sudo restart squid
Ak vám to nefunguje, skontrolujte, či Vaša počítačová sieť je v zozname pre ACL.
Nastavenie klienta
Squid proxy server štandardne počúva na porte 3128 a samozrejme na IP adrese servera. Túto konfiguráciu môžete nastaviť buď priamo do internetového prehliadača v nastavení proxy serverov, alebo v prípade Linuxu uviesť ako systémovú premennu v jedno z následujúcich súborov:
/etc/environment /etc/bash.bashrc /etc/profile /etc/apt/apt.conf ~/bashrc ~/profile ~/bash_profile
Proxy server dopíšete ako príkaz v tvare:
export http_proxy="http://username:password@host:port/"
V tomto príkaze nemusíte uvádzať všetko, ale iba potrebné informácie. Napríklad:
export http_proxy="http://192.168.1.1:3128/"
Toto riešenie je asi najjednoduchšie, lebo ak je uvedené v jednom z prvých troch súborov platí pre celý systém a nemusí ho každý užívateľ zvlášť nastavovať v internetovom prehliadači.
Nastaviť proxy môžete aj priamo v systéme Ubuntu a to cez menu System > Preferences > Network Proxy.
Minimálne zabezpečenie
Squid proxy server podporuje obrovskú paletu autentifikačných nástrojov. Od použitia LDAP, Kerberos_(protokol) alebo interných užívateľov registrovaných v systéme (na danom serveri) až po špeciálnych užívateľov určených iba pre potreby proxy servera.
Ak potrebujete k svojmu serveru pristupovať cez meno a heslo, môžete použiť túto konfiguráciu.
Po jeho inštalácii editujte konfiguračný súbor /etc/squid3/squid.conf
a preveďte nálsedujúce zmeny.
auth_param digest program /usr/lib/squid3/digest_pw_auth -c /etc/squid3/passwords auth_param digest realm proxy acl authenticated proxy_auth REQUIRED http_access allow authenticated http_port 3128
Užívateľov môže pridávať príkazom dole. Kde namiesto user
zadáte meno nového užívateľa.
htdigest -c /etc/squid3/passwords proxy user
Úplná konfigurácia
Príklad úplnej konfigurácie je uvedený v následujúcom konfiguračnom súbore. Pomocou skriptu nosharps.sh boli odstránené všetky komentáre, teda riadky, ktoré začínajú znakom #
.
- squid.conf
auth_param digest program /usr/lib/squid3/digest_pw_auth -c /etc/squid3/passwords auth_param digest realm proxy acl manager proto cache_object acl localnet src 10.0.0.0/8 acl localnet src 192.168.0.0/16 acl localnet src 172.20.0.0/16 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 acl authenticated proxy_auth REQUIRED http_access allow authenticated http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localnet http_port 3128 coredump_dir /var/spool/squid3 refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|?) 0 0% 0 refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880 refresh_pattern . 0 20% 4320