Avviso : IPCOP non riceve più aggiornamenti dal 2015 ed il sito ufficiale è stato chiuso. Potete eventualmente effettuare il download da http://ipcop.sourceforge.net o rivolgervi ad un altro prodotto, come ad esempio PFsense, IPFire od altri.
problema aggiornamento AdvProxy: articolo aggiornato il 6 ottobre
Quante volte avreste voluto evitare di dare la password di amministrazione del firewall IPCop ad altri e non avete potuto farne a meno perché IPCop non prevede una gestione utenti?
Personalmente è successo un sacco di volte, oggi è stata però l’ultima volta. Mi sono deciso a trovare un modo per creare una interfaccia limitata, ad esempio solo spegnimento e gestione dei filtri URL, così da non rischiare dando la password di amministrazione a qualcuno che potrebbe combinare qualche guaio.
In sovrappiù, con questo metodo si possono creare tutti gli utenti di amministrazione che servono così da rendere compliant IPCop alla normativa sulla privacy ed ai provvedimenti del Garante in tema di Amministratori di sistema.
Come fare? Non esistono addon specifici, ma è bastato spulciare un po su Apache per trovare una soluzione. Ecco quindi come fare per creare un utente di amministrazione di IPCop specificando a quali pagine dell’interfaccia web di gestione possa accedere.
Per prima cosa va creato un nuovo utente. Non si tratta di un utente di sistema ma di un utente del “sito web” di IPCop tramite il quale si effettua l’amministrazione.
I nomi degli utenti e la password crittografata si trovano nel file /var/ipcop/auth/users. Se lo aprite troverete una cosa simile a questa:
admin:$apr1$7aDR1/..$Aa0R7T/DAjrr.fd |
Per aggiungere un nuovo utente è sufficiente digitare il seguente comando:
htpasswd -m /var/ipcop/auth/users nuovo_utente |
sostituendo ovviamente nuovo_utente con lo username da creare.
A questo punto l’utente è stato creato, ma ancora non potrà fare nulla. Sarà necessario assegnargli i diritti di accesso alle pagine web di amministrazione che vogliamo possa gestire.
Per fare questo dovremo modificare a mano il file di configurazione di Apache. Fate una copia di riserva della configurazione originale prima di metterci le mani!
Aprite con vi il file /etc/httpd/conf/httpd.conf, e cercate la sezione che inizia con <Directory /home/httpd/cgi-bin>. Probabilmente sarà qualcosa di simile a questo:
<Directory /home/httpd/cgi-bin> AllowOverride None Options None AuthName “Restricted” AuthType Basic AuthUserFile /var/ipcop/auth/users Require user admin <Files index.cgi> Satisfy Any Allow from All </Files> # Start of modification by advproxy <Files chpasswd.cgi> Satisfy Any Allow from All </Files> <Files webaccess.cgi> Satisfy Any Allow from All </Files> # End of modification by advproxy <Files credits.cgi> Satisfy Any Allow from All </Files> <Files dial.cgi> Require user admin dial </Files># le modifiche vanno qui </Directory> |
prima della chiusura del tag </Directory> dovrete aggiungere delle sezioni, una per ogni pagina che desiderate dare in gestione al nuovo utente oppure una sola se desiderate assegnargli pieni poteri.
# Abilita accesso a tutte le pagine <Files vpnmain.cgi> # Require user admin nuovo_utente # <– il nome del nuovo utente creato </Files># oppure una sezione per ogni pagina, ad esempio:# Abilita accesso a pagina shutdown <Files shutdown.cgi> # Abilita accesso a urlfilter <Files urlfilter.cgi> # Abilita accesso a advanced Proxy <Files advproxy.cgi> |
A questo punto non resta che salvare il file e riavviare apache per testare il tutto.
killall httpd # chiude il demone di Apachehttpd -DSSL # riavvia il servizio |
Quando il nuovo utente effettuerà il login, potrà accedere solo alle pagine permesse.
Sto testando la cosa su alcune installazioni, se avete qualche commento, notate anomalie od altro, non esitate e scrivetemi.
Aggiornamento del 6 ottobre 2009
Sembra che se si effettua l’aggiornamento della versione di Advanced Proxy dopo aver fatto la modifica sopra suggerita venga danneggiato il file httpd.conf con il risultato che Apache non si avvia impedendo l’accesso al pannello di controllo pur mantenendo attive tutte le funzioni di IPcop e la navigazione. In questo caso è sufficiente ripristinare la copia di http.conf originale e apportare nuovamente le modifiche. Nel caso non si abbia una copia di riserva del file, potete editare a amano il file danneggiato. Probabilmente troverete che mancano tutte le modifiche apportate. Resta solo un tag incompleto tipo questo:
Require user admin pippo </Files> |
Manca cioè la parte iniziale del tag
<Files advproxy.cgi> |
che sembra andata persa nell’aggiornamento di versione. Devo analizzare lo script di installazione di Advanced Proxy per capire cosa sia successo. Eventuali aggiornamenti saranno postati qui.
Molto utile.. grazie 🙂
Ho fatto un test usando le tue indicazioni su ipcop ver 1.4.21 ma nonostante abbia aggiunto un utente come da te illustrato, non mi permette proprio di autenticarmi. C’è altro da controllare…. Grazie.
Ernesto.
L’autenticazione per il nuovo utente funziona solo sulla pagina abilitata, quindi devi richiamare la URL specifica di quella pagina.
In ogni caso verificherò che non ci siano errori nell’articolo; se hai altre indicazioni sul problema fammele avere.
Grazie
Ciao guida eccellente, io voglio abilitare anche i log e ho inserito logs.cgi ma non mi me li visualizza con il nuovo utente. cosa devo fare? Grazie
Ciao Luca
Logs.cgi è una directory, precisamente:
/home/httpd/cgi-bin/logs.cgi
Dentro ci sono i vari file di programma che effettuano le operazioni di visualizzazione dei log e che hanno come estensione .dat.
Devi mettere nella istruzione dentro httpd.conf il nome del file .dat che trovi dentro questa cartella relativo alla voce di menu che vuoi abilitare.
Se vuoi abilitare tutte le voci di menu, questi son i file da inserire nel file di configurazione:
config.dat
firewalllog.dat
ids.dat
log.dat
proxylog.dat
summary.dat
urlfilter.dat
Facci sapere 🙂