<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://xinux.net/index.php?action=history&amp;feed=atom&amp;title=Rpm_verify</id>
	<title>Rpm verify - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://xinux.net/index.php?action=history&amp;feed=atom&amp;title=Rpm_verify"/>
	<link rel="alternate" type="text/html" href="https://xinux.net/index.php?title=Rpm_verify&amp;action=history"/>
	<updated>2026-10-02T21:36:04Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://xinux.net/index.php?title=Rpm_verify&amp;diff=73531&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „=Grundsätzliches= *Mit dem Kommando rpm -V können die Dateien überprüft werden, die über RPM-Pakete auf dem System installiert wurden. *Mit diesem Werkzeu…“</title>
		<link rel="alternate" type="text/html" href="https://xinux.net/index.php?title=Rpm_verify&amp;diff=73531&amp;oldid=prev"/>
		<updated>2026-09-30T17:39:41Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „=Grundsätzliches= *Mit dem Kommando rpm -V können die Dateien überprüft werden, die über RPM-Pakete auf dem System installiert wurden. *Mit diesem Werkzeu…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Grundsätzliches=&lt;br /&gt;
*Mit dem Kommando rpm -V können die Dateien überprüft werden, die über RPM-Pakete auf dem System installiert wurden.&lt;br /&gt;
*Mit diesem Werkzeug kann der Systemadministrator Veränderungen an den Dateien des Systems feststellen.&lt;br /&gt;
*Diese Veränderungen können gewollt sein (Konfigurationsdateien etc ...)&lt;br /&gt;
*Sie können aber auch von einem Angreifer stammen, der Dateien im System gegen veränderte Binaries ausgetauscht hat (beispielsweise /bin/login).&lt;br /&gt;
*Anders als bei Debian ist nichts zu installieren, die Funktion ist fester Bestandteil von rpm.&lt;br /&gt;
&lt;br /&gt;
==Funktionsweise==&lt;br /&gt;
*Bei der Installation speichert rpm zu jeder Datei eines Pakets Informationen in seiner Datenbank unter /var/lib/rpm: Checksumme (SHA256), Größe, Rechte, Besitzer, Gruppe, Änderungszeit und einiges mehr.&lt;br /&gt;
*rpm -V vergleicht die installierten Dateien mit diesen gespeicherten Werten.&lt;br /&gt;
*Im Gegensatz zu debsums wird also nicht nur der Inhalt geprüft, sondern auch Rechte und Besitzer. Ein nachträglich gesetztes SUID-Bit fällt damit ebenfalls auf.&lt;br /&gt;
*Konfigurationsdateien werden mitgeprüft und in der Ausgabe mit einem c markiert.&lt;br /&gt;
&lt;br /&gt;
==Grenzen==&lt;br /&gt;
*Die Vergleichsdaten liegen in der RPM-Datenbank auf demselben System wie die geprüften Dateien.&lt;br /&gt;
*Ein Angreifer mit Root-Rechten kann also nicht nur /bin/login austauschen, sondern auch die Datenbank oder rpm selbst manipulieren.&lt;br /&gt;
*Ein Rootkit im Kernel kann rpm außerdem beim Lesen der Dateien den Originalinhalt vorspielen.&lt;br /&gt;
*Auf einem möglicherweise kompromittierten System ist das Ergebnis daher nur ein Hinweis. Verlässlich ist erst die Prüfung vom Rettungssystem aus bzw. gegen ein frisch geladenes Paket (siehe unten).&lt;br /&gt;
&lt;br /&gt;
=Ausgabe lesen=&lt;br /&gt;
*rpm -V ist still, solange alles stimmt. Ausgegeben werden nur Abweichungen.&lt;br /&gt;
*Jede Zeile beginnt mit neun Zeichen, eines pro Test:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Zeichen !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| S || Größe weicht ab&lt;br /&gt;
|-&lt;br /&gt;
| M || Rechte oder Dateityp weichen ab&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Checksumme weicht ab (Inhalt verändert)&lt;br /&gt;
|-&lt;br /&gt;
| D || Major/Minor-Nummer der Gerätedatei weicht ab&lt;br /&gt;
|-&lt;br /&gt;
| L || Ziel eines symbolischen Links weicht ab&lt;br /&gt;
|-&lt;br /&gt;
| U || Besitzer weicht ab&lt;br /&gt;
|-&lt;br /&gt;
| G || Gruppe weicht ab&lt;br /&gt;
|-&lt;br /&gt;
| T || Änderungszeit weicht ab&lt;br /&gt;
|-&lt;br /&gt;
| P || Capabilities weichen ab&lt;br /&gt;
|-&lt;br /&gt;
| . || Test bestanden&lt;br /&gt;
|-&lt;br /&gt;
| ? || Test konnte nicht durchgeführt werden (z.B. fehlende Leserechte)&lt;br /&gt;
|}&lt;br /&gt;
*Danach folgt ggf. die Art der Datei:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Zeichen !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| c || Konfigurationsdatei&lt;br /&gt;
|-&lt;br /&gt;
| d || Dokumentation&lt;br /&gt;
|-&lt;br /&gt;
| g || ghost-Datei (gehört zum Paket, wird aber erst zur Laufzeit angelegt)&lt;br /&gt;
|-&lt;br /&gt;
| l || Lizenzdatei&lt;br /&gt;
|-&lt;br /&gt;
| r || readme-Datei&lt;br /&gt;
|}&lt;br /&gt;
*Fehlende Dateien werden mit missing gemeldet.&lt;br /&gt;
;Beispiel&lt;br /&gt;
 S.5....T.  c /etc/ssh/sshd_config&lt;br /&gt;
*Größe, Inhalt und Änderungszeit der Konfigurationsdatei sind verändert - bei einer angepassten Konfiguration völlig normal.&lt;br /&gt;
 S.5....T.    /usr/bin/ls&lt;br /&gt;
*Dasselbe bei einem Binary - das darf nicht sein.&lt;br /&gt;
 .M.......    /usr/bin/find&lt;br /&gt;
*Nur die Rechte haben sich geändert - z.B. ein nachträglich gesetztes SUID-Bit.&lt;br /&gt;
&lt;br /&gt;
=Optionen=&lt;br /&gt;
==-V, --verify==&lt;br /&gt;
*Überprüft die angegebenen Pakete.&lt;br /&gt;
 rpm -V openssh-server&lt;br /&gt;
==-a, --all==&lt;br /&gt;
*Überprüft alle installierten Pakete.&lt;br /&gt;
 rpm -Va&lt;br /&gt;
==-f, --file==&lt;br /&gt;
*Überprüft das Paket, zu dem die angegebene Datei gehört.&lt;br /&gt;
 rpm -Vf /usr/bin/ls&lt;br /&gt;
==-p, --package==&lt;br /&gt;
*Vergleicht die installierten Dateien mit einer Paketdatei statt mit der RPM-Datenbank.&lt;br /&gt;
 rpm -Vp coreutils-*.rpm&lt;br /&gt;
==--noconfig==&lt;br /&gt;
*Konfigurationsdateien werden nicht geprüft.&lt;br /&gt;
==--noghost==&lt;br /&gt;
*ghost-Dateien werden nicht geprüft.&lt;br /&gt;
==--nofiledigest==&lt;br /&gt;
*Die Checksumme wird nicht geprüft. Das ist schneller, aber veränderte Inhalte bei gleicher Größe fallen nicht mehr auf.&lt;br /&gt;
==-r, --root=DIR==&lt;br /&gt;
*Legt das Wurzelverzeichnis des zu prüfenden Systems fest (Standard /).&lt;br /&gt;
*Damit lässt sich ein eingehängtes fremdes System prüfen, z.B. vom Rettungssystem aus.&lt;br /&gt;
*Die RPM-Datenbank wird unterhalb dieses Verzeichnisses benutzt.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Alle Pakete prüfen==&lt;br /&gt;
*rpm -Va&lt;br /&gt;
 S.5....T.  c /etc/ssh/sshd_config&lt;br /&gt;
 .......T.  c /etc/chrony.conf&lt;br /&gt;
 missing   c /etc/sysconfig/ip6tables&lt;br /&gt;
 [..]&lt;br /&gt;
==Alle Pakete prüfen, ohne Konfigurationsdateien==&lt;br /&gt;
*rpm -Va --noconfig&lt;br /&gt;
==Nur veränderte Konfigurationsdateien anzeigen==&lt;br /&gt;
*rpm -Va | grep ' c /'&lt;br /&gt;
==Nur Dateien mit verändertem Inhalt anzeigen==&lt;br /&gt;
*rpm -Va | grep '^..5'&lt;br /&gt;
==Ein bestimmtes Paket prüfen==&lt;br /&gt;
*rpm -V bash&lt;br /&gt;
==Das Paket einer bestimmten Datei prüfen==&lt;br /&gt;
*rpm -Vf /bin/login&lt;br /&gt;
&lt;br /&gt;
=Manipulation simulieren=&lt;br /&gt;
*Ein Binary verändern (hier wird nur ein Byte angehängt, ls funktioniert weiter):&lt;br /&gt;
 echo &amp;gt;&amp;gt; /usr/bin/ls&lt;br /&gt;
*Paket prüfen:&lt;br /&gt;
 rpm -Vf /usr/bin/ls&lt;br /&gt;
 S.5....T.    /usr/bin/ls&lt;br /&gt;
*Datei aus dem Originalpaket wiederherstellen:&lt;br /&gt;
 dnf reinstall coreutils&lt;br /&gt;
&lt;br /&gt;
=Prüfung gegen ein frisch geladenes Paket=&lt;br /&gt;
*Statt der lokalen Datenbank dient hier das Paket aus dem Repository als Vergleich.&lt;br /&gt;
*Paket herunterladen:&lt;br /&gt;
 dnf download coreutils&lt;br /&gt;
*Signatur des Pakets prüfen:&lt;br /&gt;
 rpm -K coreutils-*.rpm&lt;br /&gt;
*Installierte Dateien gegen das Paket prüfen:&lt;br /&gt;
 rpm -Vp coreutils-*.rpm&lt;br /&gt;
*Damit ist eine manipulierte RPM-Datenbank kein Problem mehr. Gegen ein Kernel-Rootkit hilft aber auch das nicht - dafür braucht es das Rettungssystem.&lt;br /&gt;
&lt;br /&gt;
=Prüfung vom Rettungssystem=&lt;br /&gt;
*Das verdächtige System wird von einem Rettungssystem gebootet, Kernel und rpm des verdächtigen Systems werden also nicht benutzt.&lt;br /&gt;
*Bei Rocky Linux eignet sich das Installationsmedium: Troubleshooting - Rescue a Rocky Linux system. Das installierte System wird dort unter /mnt/sysimage eingehängt.&lt;br /&gt;
*Prüfen:&lt;br /&gt;
 rpm --root /mnt/sysimage -Va&lt;br /&gt;
*Die Vergleichsdaten stammen hier immer noch aus der RPM-Datenbank des verdächtigen Systems.&lt;br /&gt;
&lt;br /&gt;
=Vergleich mit debsums=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! debsums !! rpm -V&lt;br /&gt;
|-&lt;br /&gt;
| Installation || nötig || nicht nötig&lt;br /&gt;
|-&lt;br /&gt;
| Checksumme || MD5 || SHA256&lt;br /&gt;
|-&lt;br /&gt;
| Rechte, Besitzer, Gruppe || nein || ja&lt;br /&gt;
|-&lt;br /&gt;
| Konfigurationsdateien || nur mit -a || immer, mit c markiert&lt;br /&gt;
|-&lt;br /&gt;
| Ausgabe || jede Datei (ohne -s) || nur Abweichungen&lt;br /&gt;
|-&lt;br /&gt;
| Vergleich mit Paketdatei || über -g || rpm -Vp&lt;br /&gt;
|}&lt;br /&gt;
*[[debsums]]&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>