È necessaria una tecnica per forzare gli amministratori di sistema a registrare il motivo dell'accesso a un server prod


17

La mia azienda richiede che ogni volta che un utente accede a un server di produzione, il motivo per cui la persona ha effettuato l'accesso e le modifiche che l'utente intende apportare devono essere registrate. La mia squadra vuole farlo, ma è facile da dimenticare. Vorrei aiutarli a ricordare. Ho considerato un motd, ma voglio qualcosa di un po 'più forte.

Il mio primo pensiero è stato quello di cambiare la shell dell'utente in uno script che fa qualcosa di simile

vim /logs/logindate.txt 
bash -l

Esiste una tecnica migliore o più standard?

Nota: l'idea è che questi utenti siano amministratori di sistema e vorrebbero inserire la voce di registro senza sovvertire il sistema: spesso dimenticano di farlo. Quindi, se riescono a ctrl-c, beh ... supponiamo che non lo facciano.


6
Stai cercando di trovare una soluzione tecnica a un problema di flusso di lavoro / procedurale. IMHO, un tale sforzo è destinato al fallimento e l'attuale flusso di lavoro / problema procedurale dovrebbe essere affrontato direttamente con mezzi non tecnici.
Giovanni,

11
Grazie compagno. Sto cercando di utilizzare la tecnologia per promuovere un cambiamento comportamentale. Immagino che potrei solo unirli con un rock ogni volta che lo dimenticano, ma penso che le risorse umane preferiscano l'approccio tecnologico.

8
@John Non fa parte dello scopo della tecnologia implementare e aiutare nei flussi di lavoro?
Michael Martinez,

1
Azione disciplinare, fino alla risoluzione inclusa.
Michael Hampton

4
Sì, ma la domanda non era "dovresti farlo?" la domanda era: "puoi farlo?" Uno è un giudizio di valore; una è una domanda tecnica degna di questo forum. Sono fiducioso nella mia capacità di gestire la mia squadra. Potrei usare la roccia con grande successo, ma così tanto sangue. Mi piace essere gentile. Ho dei bravi amministratori solo quelli smemorati. :) Sembra che @ aaron-copley sia l'uomo questa volta. Grazie a tutti!

Risposte:


19

Guarda pam_exec.so . È possibile eseguire uno script all'accesso nell'interfaccia di sessione dell'autenticazione di sistema di PAM. Lo script viene eseguito come root prima che l'utente ottenga una shell, quindi potrebbe non acquisire input con read? Puoi provare, tuttavia, e utilizzare readper ottenere un motivo dall'utente e registrarlo su syslog con loggerun'istruzione. (Ho omesso di seguito, ma puoi intercettare CTRL + C per impedire a chiunque di uscire senza motivo.) $ PAM_USER verrà impostato sulla persona che accede, quindi puoi includerlo nell'istruzione logger.

Esempio:

Nella parte superiore della sessione in /etc/pam.d/system-auth:

session required pam_exec.so /usr/local/sbin/getreason

E / usr / local / sbin / getreason:

#!/bin/bash
read -p "Reason for logging into production: " reason
logger -t $(basename $0) "$PAM_USER logged in with reason: ${reason}"

Ci scusiamo se questo non funziona perfettamente. Non l'ho provato, ma recentemente ho fatto qualcosa di simile. (Non ha catturato l'input.)


Modifica: più ci penso, più non credo che funzionerà a causa del palcoscenico in cui gira. Lo stesso getreasonscript dovrebbe funzionare dopo la sostituzione $PAM_USERcon $(logname), ma potrebbe essere necessario eseguirlo /etc/profile. (Test per shell interattiva, prima.)

Lascerò entrambe le opzioni poiché dovrebbe almeno farti pensare nella giusta direzione se non altro.


1
Grazie mille per questo. Sembra perfetto Se non altro posso scrivere una piccola cosa in C per catturare l'input. Lo implementerò e ti farò sapere se funziona.

1
@BiggyDevOPs: suggerimento utile: se si utilizza un file flat per conservare il registro, inserirlo in git o svn in modo da avere una cronologia
Michael Martinez,

7

L'alternativa è una soluzione di gestione degli account privilegiata, in cui invece di dare agli amministratori l'accesso con il proprio account, gli account di amministrazione sono tenuti in deposito da terzi e le procedure obbligatorie devono essere seguite prima che gli amministratori possano accedere ai sistemi di produzione http: // en. m.wikipedia.org/wiki/Privileged_Identity_Management


0

Un altro modo per raggiungere questo obiettivo sarebbe quello di avere la tua struttura di registrazione centralizzata (sto pensando Logstash, ma puoi farlo in altri modi) prendere il tuo registro di autenticazione sui sistemi di produzione, inserirlo in un'app in cui le persone possono registrare le loro giustificazioni .


0

Il modo in cui l'ho visto implementato presso i clienti che eseguono HP Server Automation * è che si basano sulla registrazione innata dello strumento con una combinazione di passaggi di approvazione (sono stato a diversi clienti in cui non ci sono privilegi sudo o root tranne in Dev ).

Le approvazioni possono essere fatte tramite qualcosa come Remedy and Operations Orchestration o accesso amministrativo all'interno di SA, ecc.

Detto questo, al di fuori degli strumenti di automazione e gestione aziendale, la risposta di @ Aaron Copley è una scelta eccellente.


* Sono un senior HPSA, HPOO e altri aspetti del consulente della suite di automazione HP


0

Mentre cercavo una soluzione, ho letto la risposta di Aaron Copley e ho pensato: "E se cambio la shell del mio utente?"

L'ho fatto con successo sulla mia macchina Ubuntu 14.04:

# usermod -s /usr/bin/loginScript username

Sul tuo script puoi catturare semplicemente il motivo dell'accesso. Il mio è così:

#!/bin/bash
read -p "Tell me why you logged in:" reason
echo "You told me: $reason" >> /var/log/reasonLogin.log
/bin/bash

Una cosa che dovresti notare: lo script non viene eseguito come root, quindi potresti dover concedere all'utente alcune autorizzazioni per farlo funzionare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.