6. Az Internet megosztása - Squid

    6.1. Lehetőségek

Kiszolgálónk egyik legfontosabb feladata az Internet kapcsolat biztosítása a kliens számítógépeknek. Alapvetően két megoldás létezik erre a feladatra: hálózati címfordítás és proxy szerver alkalmazása.
Az első megoldásban a kliens számítógép adatcsomagjait fogadja a szerver és a kliens IP címét megváltoztatja a sajátjára és úgy továbbítja az Internet felé. Automatikusan oda-vissza fordítja a csomagokat, lehetővé téve, hogy kapcsolatot nyissunk a helyi hálózatból a világhálóra. Ez a NAT (Network Address Translation), hálózati címfordítás. A Linux kernel (rendszermag) valósítja meg a NAT-ot. Beállítani egyszerű, ezt alkalmazva a kliensek minden korlátozástól mentes Internetet kapnak.
 
A másik módszernél a proxy szerver (gyorsítótár, webcache) kliensek által lekért tartalmat (weblapot) letölti az Internetről, a kliensnek átadja és tárolja. Ha a felhasználóink ugyanazt az oldalakat böngészik, a proxy szerver a második felhasználónak a tartalmat nem az Internetről, hanem a saját tárolójából adja vissza. Ezzel akár 20%-al is gyorsabbnak tűnhet a kapcsolat. Oktatási intézményben különösen fontos lehet a proxy-val megvalósítható funkciók:
 
•    korlátozhatjuk vele a nem kívánt internetes címek látogatását
•    korlátozhatjuk az Internet-hozzáférést felhasználói azonosítás vagy IP cím alapján
•    szűrhetünk vele internetes tartalmat (speciális szűrők közbeiktatásával)
•    felhasználhatjuk statisztika készítésre
•    reklám-jellegű tartalmak kikapcsolásával sávszélességet takaríthatunk meg
•    korlátozhatjuk a kliensek felé nyújtott sávszélességet
 
Sajnos a web proxy csak http, https és ftp protokollokat támogat, például egy külső mail szerverhez a klienseknek nem biztosít hozzáférést.
Szerverünkön a Squid proxy szervert fogjuk beüzemelni, a tanterem minden gépének ez a szolgáltatás fogja biztosítani az Internetet. Ahol feltétlen szükséges, ott majd NAT-ot is alkalmazunk.

    6.2. Néhány port megnyitása a kiszolgálón

A Squid beüzemelése előtt módosítsuk a telepítésnél beállított tűzfalszabályokat: Rendszer / Adminisztráció / Biztonsági szint és tűzfal (6.1. ábra). A program indulása előt meg kell adnunk a root jelszót.
 
sec
6.1. ábra

Az Egyéb portok résznél a Hozzáadás kapcsolóra kattintva a vegyük fel a következő négy portot: 8080:tcp, 53:udp, 53:tcp és 67:udp (6.2. ábra).
     
8080 53u 53 67u
6.2. ábra

A 8080-as tcp porton a squid proxy server fog figyelni, az 53-as tcp és udp portokon a dns-cache, a 67-es udp porton pedig a DHCP szerver. Az utóbbi két szolgáltatást később telepítjük.
 
Alkalmazva a módosított tűzfalbeállításokat, a megjelenő ablak figyelmeztet minket, hogy felülírjuk a beállításokat (6.3. ábra). Válasszuk az Igen-t, majd az OK-t.
Ezzel engedélyeztük, hogy ezeken a portokon a kliensek hozzáférjenek a kiszolgálóhoz.
 
figyelm
6.3. ábra

    6.3. A Squid első indítása


A Squid a világon a legnépszerűbb web-proxy program. Telepítéskor már felkerült a kiszolgálónkra, de alapértelmezés szerint ki van kapcsolva. A program konfigurációs állománya az /etc/squid/squid.conf. Ez egy szöveges állomány részletes angol nyelvű magyarázattal. Terjedelme több mint 4500 sor. Az /etc/squid könyvtárban a másolatát is megtaláljuk a squid.conf.default néven.
Indítsuk el a Terminal programot (Alkalmazások / Kellékek / Terminál) és kérjünk root jogosultságot a "su –" paranccsal:
 
[pferi@centos5 ~]$ su -
Jelszó:
[root@centos5 ~]#
 
A Midnight Commander segítségével másoljuk 
a server5.zip csomagban található squid.conf állományt az /etc/squid könyvtárba. (Úgy, mint az uj_felhasznalo.scp állománnyal tettük az 5.1. fejezetben). Ezzel felülírjuk az ott lévőt, de mivel van róla másolat, szükség esetén visszaállíthatjuk az eredetit, illetve tanulmányozhatjuk az abban lévő magyarázó szövegeket.
A server5.zip-ben található konfigurációs állomány feltételezi, hogy belső hálózatunk címe 192.168.55.0/255.255.255.0 Más IP beállítás esetén módosítsuk a következő sort:
 
acl mynetwork src 192.168.55.0/255.255.255.0
 
Adjuk ki a következő parancsot root-ként:
 
[root@server squid]# mcedit /etc/squid/nojelszo.txt
 
Gépeljük be azoknak a számítógépeknek az IP címeit, amelyekről az Internetet felhasználói név és jelszó megadása nélkül szeretnénk elérhetővé tenni (6.4. ábra)
 
mcju
6.4. ábra
 
Az F2 funkcióbillentyűvel mentsük az állományt és az Esc kétszeri leütésével lépjünk ki az mcedit programból.

Minden más, a listában fel nem sorolt IP címről az Internet csak felhasználói név és jelszó megadásával lesz hozzáférhető.
 
Az átmásolt squid.conf néhány sorát tekintsük át részletesen:

 
access_log /var/log/squid/access.log squid
 
Beállítja az Internet-használat naplózását és meghatározza a naplóállomány helyét. Hívjuk fel arra a felhasználók figyelmélt, hogy a kiszolgáló az Internet-használat esetén naplózza és tárolja a felhasználói nevet, a látogatott weboldal címét, a látogatás időpontját.
 

http_port 192.168.55.1:8080
 
Meghatározza, hogy a squid milyen IP-n és porton válaszoljon.
 
cache_dir diskd /var/spool/squid 22000 32 256
 
Megadja, hogy hol legyen a cache könyvtár, méretét Megabájtban, hány könyvtárat és azon beül alkönyvtárat tartalmazzon.
 
maximum_object_size 32000 KB
 
Mekkora maximális méretű állományokat tárol a squid a cache-ben. Az alapértelmezés 4 Megabájt, érdemes nagyobbra állítani.
A konfigurációs állomány több olyan részletet is tartalmaz, amelyek nem aktívak. Ezek a későbbi módosításokat könnyítik meg.
 
A következő paranccsal indítsuk el a squid-et:

 
[root@server /]# service squid start
 
A 6.5. ábrán láthatjuk, hogy első indításkor a squid inicializálja a webcache tárhelyet.
 
sqi
6.5. ábra
 
Állítsuk be, hogy a squid automatikusan induljon:

 
[root@server /]# chkconfig --levels 235 squid on
 
 
    6.4. A squid.conf állomány

 
access_log /var/log/squid/access.log squid
error_directory /usr/share/squid/errors/Hungarian
http_port 192.168.55.1:8080
icp_port 3130
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 32 MB
cache_dir diskd /var/spool/squid 22000 32 256
cache_store_log none
debug_options ALL,1
maximum_object_size 32000 KB
#
# Squid Guard
#redirect_program /usr/bin/squidguard -c /etc/squid/squidguard.conf

auth_param basic program /usr/lib/squid/pam_auth
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

authenticate_ip_ttl 60 seconds
half_closed_clients off
acl terem1 src 192.168.55.30-192.168.55.50
acl terem2 src 192.168.55.100-192.168.55.120

# IPk rol nem ker jelszot
acl nopass src "/etc/squid/nojelszo.txt"
http_access allow nopass

# Mindenki masnak jelszo
acl password proxy_auth REQUIRED
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl mynetwork src 192.168.55.0/255.255.255.0
acl SSL_ports port 443 563
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 1863        # mess
acl Safe_ports port 443 563     # https, snews
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

#
Tilthatjuk a szaktantermeket:
#http_access deny terem1
#http_access deny terem2

http_access allow manager localhost

http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
### http_access allow mynetwork
http_access allow password
http_access deny all
#
# ----- A nopass IP-knek nagyobb sav
#delay_pools 2
#delay_class 1 2
#delay_parameters 1 -1/-1 19800/19800
#delay_access 1 allow nopass
#delay_access 1 deny all
# ----- Mindenki masnak
#delay_class 2 2
#delay_parameters 2 -1/-1 12000/12000
#delay_access 2 deny nopass
#delay_access 2 allow mynetwork
#delay_access 2 deny all
#
icp_access allow all
miss_access allow all
visible_hostname server centos5
memory_pools off
  

    6.5. A kliensek beállítása

A kliens számítógépen a böngészőprogram beállításainál meg kel adni a proxy szerver IP címét és portszámot. Internet Explorer használata esetén válasszuk az Eszközök / Internetbeállítások… / Kapcsolatok / LAN-beállítások ablakot. Itt állítsuk be azt az IP címet, amit a szervernek adtunk (pl.: 192.168.55.1) és a port mezőbe írjunk 8080-at. (6.6. ábra)
 
ie1
6.6. ábra
 
A Speciális… kapcsolóra kattintva állítsuk be, hogy minden protokollhoz ezt a kiszolgálót használja és magához a kiszolgálóhoz ne legyen proxyhasználat. (6.7. ábra)

 
ie2u
6.7. ábra
 
Mozilla Firefox böngésző használata esetén a proxy server beállítását a Haladó / Hálózat / Kapcsolat beállításai ablakban találjuk (6.8. ábra).

 
mau
6.8. ábra
 
A webhely jelszavak mentését kapcsoljuk ki Mozilla Firefox-ban (6.9. ábra)
 
mj
6.9. ábra
 
Ellenőrizzük az Internet hozzáférést egy munkaállomáson. A 192.168.55.101, 192.168.55.172 és a 192.168.55.182 IP címet beállítva a munkaállomás IP címének, azonosítás nélkül elérhető az Internet. Más IP címrű kliensekről a felhasználó név és jelsző megadása után (6.10. ábra) megjelenik a kért weboldal.

 
aztu
6.10. ábra