Učebnica

per aspera ad astra

Nástroje používateľa

Nástoje správy stránok


linux:proxy

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?

  1. Zrýchľuje pripojenie k Internetu pre vnútornú sieť
  2. Chráni vnútornú sieť pri surfovaní po Internete
  3. Vytvára detailné informácie o činnosti používateľa na internete
  4. Bráni nevhodnej aktivite užívateľov na internete
  5. Vynúti použitie iba oprávnenými používateľmi
  6. Filtruje citlivé informácie
  7. 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
linux/proxy.txt · Posledná úprava: 2024/02/16 17:38 od 127.0.0.1