Autorizzazioni per il file di configurazione per il programma eseguito come root che deve essere modificabile da SFTP

2

Uno script di shell ( myscript ) verrà eseguito come root, in base a cron . Legge gli indirizzi IP da un file di configurazione e aggiorna iptables per autorizzare tali IP per le connessioni in entrata.

myscript utilizza un'espressione regolare (espressione regolare) per analizzare il file di configurazione per gli indirizzi IP all'inizio delle righe. Non vi è alcun rischio evidente di overflow del buffer o di escalation dei privilegi, poiché qualsiasi cosa che non corrisponde alla struttura e alla lunghezza di un indirizzo IP viene ignorata.

Per ragioni operative, questo file di configurazione deve essere aggiornabile da una persona specifica e fidata il cui unico accesso è tramite SFTP da un vecchio programma SFTP GUI che non è in grado di autenticare a sudo . (Pensa a CyberDuck, FileZilla, WinSCP.) Questa persona non dovrebbe fare nient'altro sulla macchina. Chiaramente, dovrebbero accedere tramite un account non-root. Chiamiamo il loro account sftp-user .

Se il file di configurazione ha root:root come proprietario e gruppo, come fanno la maggior parte dei file di configurazione GNU / Linux, quindi AFAIK l'unico modo per sftp-user di modificarli sarebbe se l'account sftp-user avesse password% sudo privilegi. Ciò sarebbe pericoloso: darebbe all'account molta più energia del necessario. Quindi, è necessaria un'alternativa meno rischiosa.

La mia domanda è: di quanto segue, che è il set di autorizzazioni meno rischioso per quel file di configurazione, e perché?

permissions  owner      group
----rw----   root       sftp-user
-rw-------   sftp-user  root
-rw-------   sftp-user  sftp-user

Modifica in risposta a utile per David answer : Sì, in circostanze normali, le autorizzazioni di cui sopra sono equivalenti. Supponendo che l'unico membro del gruppo sftp-user sia sftp-user , ciascuno di essi consente l'accesso in lettura e scrittura solo a sftp-user ea root . Ma per quanto riguarda le circostanze straordinarie: una delle configurazioni presenta quindi meno rischi rispetto alle altre? Per esempio. ci sono stati casi di escalation dei privilegi tramite la proprietà dei file da soli, in modo tale che la miscelazione di un proprietario root e di un gruppo non-root (o viceversa) è una cattiva idea?

    
posta sampablokuper 20.01.2018 - 05:09
fonte

2 risposte

2

Supponendo che l'unico membro del gruppo sftp-user sia sftp-user , tutte le autorizzazioni che hai elencato sarebbero equivalenti. Gli unici utenti che sarebbero in grado di leggere o scrivere il file sarebbero sftp-user e root .

Personalmente scelgo di creare un "gruppo di ruolo" per questo (forse fwadmins per gli amministratori di firewall) nel caso in cui sia necessario avere più di una persona con accesso a questo. Quindi imposterò le autorizzazioni come 0660 con proprietario root e gruppo fwadmins :

-rw-rw----   root     fwadmins

Suggerisco di impostare esplicitamente anche i bit di autorizzazione per root . Sì, root può ancora modificarlo in entrambi i modi, ma è solo un po 'più pulito per essere esplicito al riguardo.

    
risposta data 20.01.2018 - 06:39
fonte
1

Quella myscript viene eseguita come root è un problema. I privilegi di root sono necessari per iptables, ma questo potrebbe essere implementato tramite separazione dei privilegi. Allo stato attuale esiste un rischio significativo che il maintainer di configurazione ottenga l'accesso root.

Se fossi in me, andrei con -rw-r -r-- sftp-user come proprietario e il gruppo / altro privilegio che fornisce l'accesso all'utente runtime (non root)

    
risposta data 20.01.2018 - 23:33
fonte

Leggi altre domande sui tag