Squid (serwer proxy)

Materiały edukacyjne z informatyki

Instalacja

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

Konfiguracja

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].

Na skróty
Kontakt