Materiały edukacyjne z informatyki
Squid ma bardzo wiele zastosowań, my użyjemy go w roli serwera proxy, który wykorzystując cache przyśpiesza pobieranie danych z internetu. Instalujemy odpowiedni pakiet: sudo apt-get install squid3
Przed utworzeniem pliku konfiguracyjnego warto zmienić nazwę oryginalnego pliku, który zawiera opis wszystkich opcji, natomiast właściwy plik utworzyć od początku:
sudo mv /etc/squid3/squid.conf /etc/squid3/squid.conf.org
sudo touch /etc/squid3/squid.conf
Do utworzonego pliku (squid.conf) wpisujemy:
acl all src acl manager proto cache_object acl localhost src 127.0.0.1/32 ::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 acl localnet src 192.168.19.0/24 #Opis sieci LAN acl LAN src 192.168.19.0/24 #Opis sieci LAN acl safeports port 21 70 80 210 280 443 488 563 591 631 777 873 901 81 3128 1025-65535 acl sslports port 443 563 81 873 2087 10000 acl purge method PURGE acl connect method CONNECT follow_x_forwarded_for allow localhost http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !safeports http_access deny CONNECT !sslports http_access allow localhost http_access allow localnet http_access allow LAN http_access deny all icp_access allow localnet icp_access deny all # Normalny proxy # http_port 3128 # Transparent proxy http_port 3128 intercept # Rozmiar cache'u cache_mem 256 MB # rozmiar dodatkowej(!) pamięci dla squida maximum_object_size_in_memory 512 KB memory_replacement_policy heap GDSF cache_replacement_policy heap LFUDA cache_dir aufs /srv/cache 8000 14 256 maximum_object_size 16 MB cache_swap_low 93 cache_swap_high 97 # Logi access_log /var/log/squid3/access.log cache_log /var/log/squid3/cache.log cache_store_log none logfile_rotate 5 log_icp_queries off # TIMEOUTS forward_timeout 240 second connect_timeout 30 second peer_connect_timeout 5 second read_timeout 600 second request_timeout 60 second shutdown_lifetime 10 second
Bliżej przyjrzeć się trzeba opcji cache_dir. Dwie pierwsze ustawienia to ścieżka do katalogu cache i rozmiar tego katalogu w MB. Najlepsze efekty można osiągnąć umieszczając ten katalog na drugim dysku, na specjalnie wydzielonej partycji. W takim wypadku trzeba później do pliku /etc/fstab dopisać polecenie zamontowania tej partycji, np. w lokalizacji /home/cache. Prostszym, ale zadowalającym rozwiązaniem jest utworzenie katalogu cache na tym samym dysku co system, najlepiej na wydzielonej parycji, np.: /srv, którą utworzono podczas instalacji. Można również utworzyć cache w katalogu /home, np.:
sudo mkdir /home/cache sudo chmod 777 /home/cache # uprawnienia do zapisu sudo chown proxy:proxy /home/cache # ustawienia właściciela i grupy
Niezależnie od przyjętej lokalizacji, pamiętać trzeba, żeby squid miał do niej pełne uprawnienia (uprawnienia 777 w powyższym przykładzie są nawet nadmiarowe). Katalog cache trzeba następnie zainicjować: sudo squid3 -z
.
Domyślnie squid nasłuchuje na porcie 3128, jeżeli więc chcemy przetestować działanie usługi w skrypcie firewalla musi znaleźć się linia:
iptables -A INPUT -i $INTIF -p tcp --dport 3128 -j ACCEPT
Wtedy można ręcznie wpisać do przeglądarki na maszynie z LANu adres serwera proxy, czyli w naszym przypadku 192.168.19.1 i sprawdzić, czy można przeglądać internet. Jeżeli wszystko działa i mamy zamiar zainstalować Dansguardiana, wpis w firewalla można zakomentować i cały ruch przekierować do niego (zob. następny artykuł).
Zarządzanie usługą: sudo service squid3 start [restart/stop]
.