[[oktatas:linux:tűzfal|< Tűzfal]]
====== Squid ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2011, 2013, 2022
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== Bevezetés =====
A Squid tartalomszűrő és cache (tároló) szerver, vagy egyszerűen csak proxy szerverként emlegetjük.
A HTTP proxy szerverek között talán a legnépszerűbbnek mondható.
A Squid egyébként a [[wp>http://hu.wikipedia.org/wiki/Kalm%C3%A1rok|kalmárt]] (mint állat) jelent.
===== Beszerzés =====
Debian GNU/Linux alatt:
apt install squid
Webhely:
* http://www.squid-cache.org
===== Telepítés után =====
Telepítés után kapunk egy könyvtárat a beállításokhoz:
/etc/squid/
/etc/squid/
|-conf.d
|-errorpage.css
`-squid.conf
A fő beállítófájl az /etc/squid/squid.conf állomány.
Saját beállításokat tehetünk még a /etc/squid/conf.d/ könyvtárba.
Az állomány neve tetszőleges, de .conf kiterjesztés szükséges.
===== Beállítások =====
A Squid milyen porton várja a kéréseket:
http_port 3128
Hozzáférési neveket, majd azokhoz tartozó szabályokat kell meghatározni.
A neveket az "acl" szóval vezetjük be. Ha van például egy IP címünk:
acl localnet src 1.2.3.4
De megadhatunk tartományt is:
acl localnet src 1.2.3.0/24
Határozzunk meg, hozzá egy szabályt:
http_access allow localnet
Ez utóbbi szabályt tegyük a http_access allow localhost sor után.
A kliens IP címe alapértelmezésként tovíbbítódik a webszerver felé.
forwarded_for on
Ezt kikapcsolhatja ha off-ra állítja:
forwarded_for off
Más konfigurációs fájlok befoglalása:
include /etc/squid/masik.conf
De egész könyvtárat is befoglalhatunk, abban minden .conf fájllal:
include /etc/squid/conf.d/*.conf
===== Konfiguráció tesztelése =====
squid -k parse
Esetleg szűrjünk az error szót tartalmazó sorokra:
squid -k parse | grep 'error'
Vagy más kifejezésekre:
squid -k parse | egrep 'egyik|masik'
===== Konfiguráció újratöltése =====
/usr/sbin/squid -k reconfigure
Vagy:
/etc/init.d/squid reload
Vagy:
kill -HUP $(cat /var/run/squid.pid)
A következő, ami nem szokott működni:
systemctl reload squid
===== Cache tiltása =====
Állítsuk be:
cache deny all
===== URL-k fájlban =====
A következő beállításokat készítjük el:
* Létrehozunk block néven egy hivatkozást.
* Utána tiltunk mindent ami a hivatkozásban szerepel.
* Ami nem volt tiltva azt engedjük
Az /etc/squid/squid.conf fájlban:
acl block url_regex -i "/etc/squid/forbidden"
http_access deny block
http_access allow all
===== Beállításminták =====
# Feketelistás webhelyek, amit nem szeretnénk engedni:
acl blacklisted_sites dstdomain wer.csunya.hu
acl blacklisted_sites dstdomain social.csunya.hu
acl blacklisted_sites dstdomain stats.update.csunya.hu
http_access deny blacklisted_sites
# Nem tárolandó webhely
acl cache_bypass_domains dstdomain mindiguj.hu
no_cache deny cache_bypass_domains
always_direct allow cache_bypass_domains
==== Minimális Squid cache nélkül ====
cache deny all
http_port 3128
include /etc/squid/conf.d/*
acl block url_regex -i "/etc/squid/forbidden"
http_access deny block
http_access allow all