Squid 3 in parent-child configuration
Posted on : 07-12-2008 | By : daniele | In : Advanced, Experience, Linux, Uncategorized
Tags: How-To, Proxy, Squid, Symantec
0
Installiamo Squid
Per completezza dell’installazione, mostreremo come compilare Squid, evitando di utilizzare i pacchetti. E’ importante partire da qui anche perchè è stata da me verificato un bug in Squid 3.0 STABLE8 nella successiva integrazione con Symantec. Trovate documentazione al riguardo a questo link. A tale scopo viene consigliata la compilazione del sorgente di Squid 3.0 STABLE1.
Innanzitutto scarichiamo la versione di Squid. Dovremo compilare il proxy sia sulla macchina in DMZ, sia su quella nella zona di collegamento, raggiungibile dai clients, e che abbiamo deciso di chiamare WKG (che sta per workgroup). Quindi le istruzioni di installazione che leggerete da qui in poi, non dovete fare altro che ripeterle per entrambi i nodi.
Di seguito trovate i parametri utilizzati da me per il ./configure.
--enable-gnuregex \
--enable-icmp \
--enable-delay-pools \
--enable-esi \
--enable-icap-client \
--enable-useragent-log \
--enable-referer-log \
--enable-arp-acl \
--enable-ssl \
--enable-cache-digests \
--enable-linux-netfilter \
--enable-linux-tproxy \
--disable-internal-dns \
--enable-default-hostsfile=/etc/hosts \
--with-gnu-ld \
--with-pthreads \
--with-aio \
--with-large-files \
--with-default-user=squid \
--enable-auth="basic digest negotiate ntlm" \
--enable-basic-auth-helpers="DB LDAP PAM SASL SMB" \
--enable-ntlm-auth-helpers="fakeauth SMB" \
--enable-negotiate-auth-helpers="squid_kerb_auth" \
--enable-digest-auth-helpers="ldap password" \
--enable-external-acl-helpers="ip_user ldap_group session unix_group"
Il consiglio è comunque quello di lanciare un
che trovate all’interno del sorgente, in modo anche da comprendere cosa fanno i relativi parametri elencati (mai lavorare al buio!!!) e decidere le eventuali customizzazioni.
Una volta lanciato il configure, continuate alla classica maniera:
# make install
Squid risulterà correttamente installato nella directory /opt/squid-3.0-STABLE1.
Prima di startare il proxy server, è necessario effettuare la customizzazione dell’ambiente:
Utente e gruppo
E’ importante che il proxy non lavori da root. A questo proposito creiamo l’utente e il gruppo relativo:
# useradd -g squid -d /opt/squid-3.0-STABLE1/var squid
Init Script
Ci sono molteplici script classici di start e stop per Squid. Il consiglio è di farvelo da soli, seguendo i vostri standard, la vostra distribuzione e le vostre preferenze. Per comodità, comq, ne allego uno su queste pagine. E’ stato scritto per piattaforme Linux Red Hat Enterprise 4 e successive e funziona correttamente.
Abilitatelo nella cartella /etc/init.d (magari chiamandolo solo “squid”) e inseritelo nei corretti runlevels della vostra ditro, con i comandi messi a disposizione (chkconfig per le distro RedHat-based, update-rc.d per quelle Debian-based).
Se userete lo script messo a disposizione è molto utile creare un file squid all’interno della directory /etc/sysconfig della vostra distro RedHat. Nel file scrivete questo:
# -D disables initial dns checks. If you most likely will not to
# have an internet connection when you start squid, uncomment this
SQUID_OPTS="-D"
# Time to wait for Squid to shut down when asked. Should not be
# necessary most of the time.
SQUID_SHUTDOWN_TIMEOUT=100
Anche qui il consiglio è di verificare la correttezza dell’attivazione di questi parametri per il vostro ambiente specifico.
Standardizzazione delle path
Quando si compila un software in una predefinita directory (cosa sempre preferibile), invece di installarlo con i pacchetti o compilarlo senza il –prefix, l’errore che fanno in molti è di non standardizzare le path nella nomenclatura linux. E’ un errore di pigrizia che spesso crea problemi a chi avrà a che fare con l’architettura dopo di noi. Quindi il consiglio è di creare una serie di link simbolici per semplificare la gestione di Squid dalla macchina. Potete cavarvela facendo qualcosa del genere:
# ln –s /opt/squid-3.0-STABLE1/var/cache /var/spool/squid
# ln –s /opt/squid-3.0-STABLE1/etc /etc/squid
Inoltre è assolutamente comodo inserire un link simbolico dell’eseguibile all’interno di una path linux.
Startup
Ok il più del lavoro è fatto. Controllate la correttezza dei permessi sulla directory compilata (soprattutto accertatevi che le directory abbiano permessi di esecuzione) e poi inizializzate la cache.
E quindi startate il prodotto:
oppure in RedHat
Per qualsiasi informazione o problematica nello startup dell’oggetto è bene sempre verificare i logs, rintracciabili in /var/log/squid (ovviamente se avete seguito il mio consiglio e avete normalizzato le path!).










