Riavvio di nginx con Jenkins o Phing - è sicuro permettere a Jenkins di eseguire sudo senza richiedere password

4

Sto implementando i consigli di Integrazione di progetti PHP con Jenkins per i miei progetti PHP.

Ho creato un utente jenkins nel mio server ubuntu 12.10. Ho usato Phing come strumento di creazione e ho un passaggio nel mio processo di compilazione in cui ho bisogno di riavviare il mio nginx usando sudo.

Secondo questa soluzione , suggerisce di consentire a jenkins di utilizzare sudo senza password.

Inoltre, non è del tutto sicuro delle implicazioni di sicurezza per un simile accordo.

Voglio chiedere se dovrei andare avanti con questo accordo.

Ho installato il jenkins sullo stesso server del codice di produzione.

    
posta Kim Stacks 28.12.2012 - 09:15
fonte

2 risposte

7

La soluzione collegata consente a jenkins di eseguire qualsiasi comando tramite sudo senza password.

Una soluzione migliore è permettere a jenkins di riavviare nginx senza password, ma nient'altro. In questo modo hai il permesso di root per il comando che devi eseguire, ma non stai concedendo permessi per jenkins per fare qualsiasi cosa e qualsiasi cosa.

Utilizza visudo per incollare il tutto nella parte inferiore del tuo file sudoers :

Defaults:jenkins !requiretty,!lecture
jenkins ALL=NOPASSWD:/etc/init.d/nginx
    
risposta data 01.01.2013 - 02:47
fonte
0

Perché devi eseguire nginx come root sul tuo server di sviluppo? Eseguilo come un utente normale in modo che jenkins possa riavviarlo senza i permessi di root.

Inoltre, cosa intendi con "jenkins è sullo stesso server del codice di produzione"? Se intendi che l'applicazione di produzione è in realtà in esecuzione sul tuo server di sviluppo: è una cattiva idea (per motivi di sicurezza e prestazioni) e dovresti modificarla al più presto.

modifica per rispondere alle domande di follow-up:

Suggerisco due server, un server di produzione e uno che esegue jenkins, il tuo SCM, ecc ... Se sei l'unico sviluppatore, il secondo può anche essere la tua workstation di sviluppo, se vuoi. E no, non è necessario eseguire nginx come utente jenkins, hai solo bisogno di una configurazione che permetta a jenkins di riavviare nginx (ad esempio, lo stesso gruppo per jenkins e lo script nginx-restart-script più rwxr-x --- o simili).

    
risposta data 28.12.2012 - 15:52
fonte

Leggi altre domande sui tag