Domanda :In alcuni scenari si sospetta che i file nel sistema da un'installazione di rpm siano stati alterati, modificati o manomessi. Ad esempio, il sistema è stato violato e un file binario di ssh è stato manomesso. Come verificare se sono state apportate modifiche su di esso confrontandolo dall'installazione?
Per verificare e verificare se i file installati su un sistema con rpm o yum sono stati modificati dall'installazione utilizzando il seguente comando:
# rpm -V [PACKAGE_NAME]
Se uno qualsiasi dei file è stato modificato in rpm dall'installazione, sarà elencato nell'output dei comandi sopra. Ogni riga inizierà con un flag specifico che indica l'alterazione. Il significato di ciascuna bandiera è menzionato nella tabella seguente:
Bandiera | Significato |
---|---|
S | La dimensione del file è diversa |
M | La modalità è diversa (include autorizzazioni e tipo di file) |
5 | La somma MD5 è diversa |
D | Mancata corrispondenza dei numeri principali/minori del dispositivo |
L | percorso readLink(2) non corrispondente |
U | La proprietà dell'utente è diversa |
G | La proprietà del gruppo è diversa |
T | mTime è diverso |
Esempio
1. Si sospetta che il server SSH sia stato manomesso. Quindi controlliamo prima gli rpm che distribuiscono il file:
# yum provides */sshd openssh-server
Quindi openssh-server è l'rpm che fornisce i binari ssh nel sistema.
2. Quindi, controlla eventuali alterazioni nei file forniti da openssh-server rpm:
# rpm -V openssh-server
Se uno qualsiasi dei file è stato manomesso, sarebbe elencato nell'output del comando precedente. Qualcosa di simile al seguente:
S.5....T. /usr/sbin/sshd
Il falgs qui significa che il file binario del server SSH è stato manomesso:
S file Size differs 5 MD5 sum differs T mTime differs
Il file ha una dimensione, un checksum MD5 e un timestamp di modifica diversi da quello distribuito con l'RPM.
3. Qui possiamo provare a reinstallare il pacchetto usando yum per ottenere i file originali distribuiti dai repository:
# yum reinstall openssh-server
In questo particolare ad es. il server SSH deve essere riavviato.
# service sshd restart
Per le distribuzioni basate su systemd, utilizzare systemctl per riavviare il servizio:
# systemctl restart sshd