HTTP/s: messa in sicurezza dei Database

BEGINNER Sicurezza SSL accesso URL

  • 0 commenti
La sicurezza in ambienti esposti come può essere un Domino server è sicuramente un argomento vasto e complesso. In questo articolo intendo analizzare in modo particolare le accortezze che un buon amministratore domino dovrebbe apportare su i propri server che si espongono mediante il protocollo HTTP alla visualizzazione ed interrogazione da parte di chiunque.
  • Accesso ai dati
  • Non permettere l'apertura di database da URL
  • Accesso sicuro HTTPS


Dal momento che su un Domino server è attivo il task HTTP, automaticamente tutte le applicazioni (database) e gli stessi modelli (nomefile.NTF) sono pubblicati e accessibili via HTTP. Questo pone molte questioni sulla sicurezza, alle quali gli amministratori sono tenuti a verificare.

Accesso ai dati

Per Default Domino pubblica tutti i dati che sono residenti nella Directory DATA e sottodirectory per quanto concerne i Database NSF e NTF, mentre per pagine .htm o .html il default è configurato e configurabile nel documento del server (se non attivi gli internet site) sotto la voce "HTML directory".

Image:HTTP/s: messa in sicurezza dei Database
Digitando da un browser: "http://www.dominopoint.it" verrà aperto come url; "http://www.dominopoint.it/dominopoint/dominopoint_blog.nsf".
Nonostante questo se io digitassi come url:

"http://www.dominopoint.it/names.nsf" cercherei di accedere alla rubrica indirizzi di domino (dove sono presenti dati utenti, servers e documenti di configurazione del mio ambiente). Qualsiasi database è quindi richiamabile conoscendone il nome.

Detto ciò è quindi fondamentale assicurarsi che nessun database sia apribile e leggibile da utenti anonimi (a meno che si tratti di un database il cui scopo sia la visibilità ad anonimo come il blog di Dominopoint). Perchè questo avvenga è fondamentale aggiungere su tutti i database .NSF e . NTF la voce "anonymous" con accesso "No Access".

Image:HTTP/s: messa in sicurezza dei Database

In mancanza di questa voce la sicurezza dei dati in visibilità non è assicurata.

Questa operazione può essere eseguita in diversi modi. Dal client di amministrazione (avendo la certezza di essere manager su tutti i database)*
Selezionando tutti i database e quindi cliccando su "Database" - "Manage ACL"

Image:HTTP/s: messa in sicurezza dei Database

Cliccare su ADD ed inserire manualmente "anonymous".
Questo metodo ha un difetto di forma. Se esiste già la voce "anonymous" (anche con un accesso diverso da No access) su quel db il valore di accesso di anonymous non verrà modificato.

In alternativa potete eseguire la stessa azione mediate uno script(creare un agente magari nella Domino Directory). Di seguito un esempio dello script che potete utilizzare e che sovrascrive qualsiasi voce preesistente:

Sub Initialize

       Dim s As New NotesSession

       Dim DbDir As NotesDbDirectory

       Dim db As NotesDatabase

       Dim status As Integer

       Dim x As Integer

       Dim errormsg As String

       
       filenum% =  Freefile()

       Open "c:\ACLupdate.txt" For Append As filenum%    ' log file of actions

       Set DbDir = New NotesDbDirectory("CN=Domino01/O=Domino")  

       Set db = DbDir.GetFirstDatabase(DATABASE)

       
       On Error Goto myerror

       While Not db Is Nothing        

               status=1                

               Call db.Open("","")

               Set ACL = db.ACL

               Set entry = acl.getentry("Anonymous")

               If entry Is Nothing Then

                       status = 2

                       Call db.acl.createACLEntry("Anonymous", ACLLEVEL_NOACCESS)

               Else

                       Call db.GrantAccess("Anonymous", ACLLEVEL_NOACCESS)        

               End If

               status = 3

               Call acl.save

               Print #1, "Added 'Anonymous' to " & db.FileName &"'s Access Control List..."

skipthis:

               Set db = DbDir.GetNextDatabase

       Wend

       Close filenum%

       Exit Sub

myerror:

       errormsg = ""

       Select Case status

       Case 1 : errormsg = "Error opening db "

       Case 2 : errormsg = "Error creating ACL entry in db "
       Case 3 : errormsg = "Error saving ACL in db "

       End Select

       Print #1, "* FAILED* " &errormsg & ": "& db.server & " " & db.filepath &" \" & db.filename & ", " & db.title

       Resume skipthis

End Sub


Non permettere l'apertura di database da URL:

Un'altra possibilità per evitare accesso a Database da web è la funzione di blocco che potete attivare dalle proprietà dei database:

Don't allow URL open
Image:HTTP/s: messa in sicurezza dei Database

Così facendo il database non sarà richiamabile tramite URL via HTTP/s.


Accesso sicuro HTTPs

L'HTTPs permette di accedere alle risorse del server domino in sicurezza. Questo significa sopratutto che il processo di autenticazione (dati utente e password) avviene su un canale cifrato dal server.

Avendo quindi implementato l'HTTPs sul proprio server è possibile forzare determinati database ad accettare di essere richiamati per mezzo URl solo in condizioni HTTPs. Questo perchè anche per errore un utente potrebbe aprire un determinato database e quindi autenticarsi al server in condizione non sicura (HTTP).

Per evitare questo sono possibili due strade.

Obbligare l'apertura di tutti i database tramite HTTPS: Nel documento del server sotto PORTS - Internet Ports - Web impostare "Redirect to SSL" tutte le richieste che provengono tramite HTTP.

Image:HTTP/s: messa in sicurezza dei Database

Impostare lato database che questi può essere aperto solo mediante chiamata di tipo HTTPs: Attivare dalle propietà del database

Require SSL connection
Image:HTTP/s: messa in sicurezza dei Database



* A partire dalla R6.x immettendosi nel campo Full Access Administrator potete eseguire questa operazione anche se non avete accesso Manager a tutti i database

0 Commenti:

    Nessun Commento Trovato
Commenta articolo
 

Questo spazio web è stato creato da per un uso pubblico e gratuito. Qualsiasi tipo di collaborazione sarà ben accetta.
Per maggiori informazioni, scrivete a info@dominopoint.it

About Dominopoint
Social
Dominopoint social presence: