Flickr Photo

			Nicola Pavan posted a photo:				Nicola Pavan posted a photo:				Nicola Pavan posted a photo:				Nicola Pavan posted a photo:				Nicola Pavan posted a photo:				Nicola Pavan posted a photo:

Categorie

Calendario

giugno: 2012
L M M G V S D
« mag    
 123
45678910
11121314151617
18192021222324
252627282930  

About me

Un sito per condividere quello che imparo e confrontarmi con chi ne ha voglia!

Linux

Squid3: autenticazione su active directory con security group

Squid3: active directory ntlm authentication with security group 2008 R2

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.