Squid3: autenticazione su active directory con security group
Squid3: active directory authentication with security group
Oggi mi è stato chiesto di implementare un proxy squid che permettersse di abilitare la navigazione solo agli utenti appartenenti ad un gruppo AD definito, rendendo quindi molto dinamica e semplice la gestione della navigazione anche a chi non è pratico di linux.
Questa volta ho deciso di utilizzare Squid3 e di conseguenza la configurazione è leggermente diversa da quella che uso di solito.
Per prima cosa andiamo a definire l’autenticazione degli utenti su AD.
Per questo abbiamo bisogno di un utente AD con il quale eseguire la query.
Nel mio caso ho deciso di create un utente ad hoc in modo da essere svicolato da futuri cambi password dell’administrator, inoltre non rischio compromissioni di password sensibili.
In /etc/squid/squid.conf inseriamo le seguenti voci:
auth_param basic program /usr/sbin/squid_ldap_auth -v 3 -P -R -u cn -s sub -b "dc=domain,dc=loc" -D "cn=squid auth,cn=Users,dc=domain,dc=loc" -w password -f "(&(sAMAccountName=%s))" -h SRVDC01
auth_param basic children 5 auth_param basic realm Autenticazione Proxy Internet auth_param basic credentialsttl 2 hours
acl localnet proxy_auth REQUIRED src 10.0.0.0/16 http_access allow localnet
Così facendo quando un utente imposta il proxy e prova a collegarsi si vedrà apparire una finestra per l’inserimento delle credenziali.
Siamo quindi arrivati a metà del lavoro, perché così facendo tutti gli utenti di dominio possono navigare.
Dobbiamo quindi definire una ACL “dinamica” che contenga solo gli utenti di un gruppo AD che andremo a gestire direttamente dai nostri DC.
In /etc/squid/squid.conf inseriamo le seguenti voci:
external_acl_type InetGroup %LOGIN /usr/sbin/squid_ldap_group -R -b "dc=domain,dc=loc" -D "cn=squid auth,cn=Users,dc=domain,dc=loc" -w password -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,cn=Users,dc=domain,dc=loc))" -h SRVDC01
acl InetAccess external InetGroup UtentiInternet
http_access deny !InetAccess
Gli utenti del gruppo UtentiInternet saranno quindi gli unici a poter navigare dopo aver immesso le loro credenziali.
Soluzione errore Input/Output error su WebDAV
Di recente ho iniziato ad utilizzare un account box.net su un server linux che gestisco per posizionare i file di backup che ovviamente non dovrebbero risiedere sullo stesso server dove sono generati.
Dopo aver creato l’account ho creato uno script veramente basilare che in automatica esegue il mount del repository remoto su una directory locale:
#! /bin/sh #
# Gracefully exit if the package has been removed. test -x $DAEMON || exit 0
case "$1" in
start)
echo -n "Mount box.net remote account to /backup/"
mount -t davfs https://www.box.net/dav /backup/
;;
stop)
echo -n "umount box.net remote account to /backup/"
umount /backup
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
exit 1
;;
esac
exit 0
A questo punto ogni volta che provavo a scrivere dati su quella cartelle ottenevo il seguente errore:
cp: cannot create regular file `test.txt': Input/output error
Per risolvere il problema basta editare il file /etc/davfs2/davfs2.conf ed inserire la seguente riga
use_locks 0
SSH refused connect from
E’ possibile che a volte tentando di collegarsi in SSH verso un host linux la sessione vada in timeout e sul log di sistema sia registrato il seguente messaggio:
sshd[3264]: refused connect from ::ffff:x.x.x.x (x.x.x.x)
In tal caso potete verificare se all’interno del file /etc/hosts.deny è presente l’IP dell’host da cui tentate di collegarvi.
Una volta aperto il file dovreste quindi trovare un’entry di questo tipo:
ALL: x.x.x.x
Rimuovetela e riavviate il demone SSH.






Ultimi commenti