Sieciowe systemy operacyjne – laboratorium Proxy HTTP
Celem ćwiczenia jest zdobycie umiejętności konfiguracji serwera Proxy HTTP (squid) szczególnie w
zakresie stosowania reguł dostępu do serwisów internetowych. Ćwiczenie realizujemy w SO Linux w
wersji Live DVD - Knoppix 6.x. Materiały dotyczące usługi Proxy HTTP i jej konfiguracji były podane na
wykładzie.
1.
Czynności przygotowawcze
Uruchamiamy usługę syslog. Błędy w czasie startu usługi będzie można odczytywać z pliku
/var/log/syslog.
sudo su
/etc/init.d/sysklogd start
#ewentualnie
service sysklogd restart
*Uwaga! W wersji Knoppix 6.4 i nowszych usługa syslog jest domyślnie uruchomiona, a komunikaty
pojawiają się na dwunastej konsoli (Ctrl-Alt-F12). Powrót do konsoli graficznej (Ctrl-Alt-F5).
Usuwamy wszystkie przykładowe konfiguracje z katalogu /etc/squid.
cd /etc/squid
rm –f *
2.
Serwer Proxy HTTP cache’ujący
Tworzymy główny plik konfiguracyjny serwera Proxy HTTP Squid:
vim /etc/squid/squid.conf
Minimalna zawartość pliku:
http_port 8080
cache_dir ufs /var/spool/squid 128 16 256
acl all src 0.0.0.0/0.0.0.0
acl siec src 10.1.0.0/255.255.0.0
http_access allow siec
http_access deny all
Uruchamiamy serwer usługi Proxy
/etc/init.d/squid start
Aby sprawdzić działanie serwera Proxy należy skonfigurować przeglądarkę. Dla przeglądarki Firefox
(Iceweasel) kolejno wybieramy z menu: Edit/Preferences/Advanced/Network/Settings, a następnie
ustawiamy opcje HTTP Proxy, Port i Use this Proxy Server for All protocols w sekcji Manual Proxy
configuration.
3.
Zadania
Zadania do samodzielnego wykonania:
1.
Zablokować dostęp do wybranych portali społecznościowych np. NK, FB.
2.
Zablokować dostęp dla wybranego kolegi np. sąsiad z prawej.
3.
Zablokować dostęp dla użytkowników określonych przeglądarek np. Konqueror.
4.
Zapewnić dostęp dla wszystkich do serwisów uczelnianych.
5.
Zablokować dostęp do prywatnej poczty w popularnych serwisach (Onet, WP, Interia, O2,
Gmail, Hotmail). Uwaga! Nie blokować dostępu do treści serwisów.
6.
Zablokować dostęp do wybranego fragmentu serwisu, np. blokada tylko WebGG bez
blokowania serwisu GG.
7.
Zablokować dostęp do adresów zawierających określone słowa w adresie (xxx, sex,
torrent).
Zadania dodatkowe:
1.
Wprowadzić uwierzytelnianie użytkowników serwera Proxy metodą login/hasło
(auth_param, acl proxy_auth).
2.
Ograniczyć szybkość pracy łącza jeżeli użytkownik próbuje ściągać duże pliki, np. do
10kb/s po przekroczeniu 500KB transferu. (delay_class, delay pools)
3.
Wymusić pojawianie się komunikatów o braku dostępu w języku polskim albo w języku
przeglądarki (error_default_language) . Zmienić wygląd strony z komunikatem o braku
dostępu.
4.
Skonfigurować logowanie dostępów do serwera Proxy w formacie Apache access.log
(access_log, emulate_httpd_log).
4.
Podpowiedzi
Warto pamiętać, że reguły http_acces są czytane w kolejności ich wymienienia w pliku squid.conf i
pierwszy pasujący do żądania acl decyduje o jego realizacja albo odrzuceniu.
Oryginalna strona z opisem konfiguracji squida:
http://www.squid-cache.org/Doc/config/
Podstawowe typy reguł ACL:
src
Adres źródłowy
dst
Adres docelowy
srcdomain
Źródłowy adres domenowy
dstdomain
Domena docelowa
dstdom_regex
Wyrażenie regularne w domenie docelowej
url_regex
Wyrażenie regularne w adresie URL
urlpath_regex
Wyrażenie regularne w ścieżce adresu
req_mime_type Wyrażenie regularne typu MIME żądania
(tylko na podstawie adresu)
rep_mime_type Wyrażenie regularne typu MIME odpowiedzi
browser
Wyrazenie regularne w podpisie przeglądarki USER-AGENT
port
Numer portu
proto
Nazwa protokołu
method
Metoda żądania GET, POST
proxy_auth
Żądanie autoryzacji