IPCop: creare un utente amministratore con interfaccia web limitata

IPCop: creare un utente amministratore con interfaccia web limitata

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>
Require user admin  nuovo_utente # <– il nome del nuovo utente creato
</Files>

# Abilita accesso a urlfilter

<Files urlfilter.cgi>
Require user admin  nuovo_utente # <– il nome del nuovo utente creato
</Files>

# Abilita accesso a advanced Proxy

<Files advproxy.cgi>
Require user admin nuovo_utente # <– il nome del nuovo utente creato
</Files>

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.

5 thoughts on “IPCop: creare un utente amministratore con interfaccia web limitata

  1. Ernesto

    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.

  2. Paolo Giardini Post author

    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

  3. Luca

    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

  4. Paolo Giardini Post author

    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 🙂