Ich habe in meinem Linux-System eine Datei namens „.fetchmailrc“, mit der ich die E-Mail-Adresse konfiguriere, von der Fetchmail die E-Mails erhält. Daher muss ich mein Passwort und meine E-Mail-Adresse im Klartext eingeben.
So sieht die .fetchmailrc-Datei aus:
set daemon 1
set logfile /home/user/.fetchmail.log
set no bouncemail
poll pop.gmail.com proto POP3 auth password no dns user "MY_EMAIL" password "MY_PASSWORD" is user keep ssl
mda "/usr/bin/procmail -d %T"
Ich bin der Meinung, dass es hierfür einen besseren Weg geben muss, denn wenn ein Hacker Zugriff auf meinen Server erhält, kann er die Datei problemlos lesen und an meine Anmeldeinformationen gelangen.
Ich habe gehört, dass es in Linux-Systemen PAM (Pluggable Authentication Modules) gibt, aber ich weiß nicht, ob das mit dem zusammenhängt, was ich versuche.
Antwort1
Unabhängig davon, wie Sie Ihre Passwörter speichern, muss das Programm beim Ausführen eines Programms, das nicht nach Ihren Passwörtern fragt, das gespeicherte Passwort mit auf dem Server verfügbaren Informationen entschlüsseln. Ein „Hacker“, der Zugriff auf Ihren Server erhält, kann alle auf dem Server gespeicherten Informationen verwenden. Er kann das Passwort also auf die gleiche Weise entschlüsseln, wie das Programm es entschlüsselt.
Wenn das Schema, das Sie zum Verschlüsseln und Speichern Ihres Passworts verwenden, etwas komplizierter ist, kann es für den „Hacker“ etwas länger dauern.
Sie können also nicht das tun, was Sie möchten: Egal, wie Sie Ihr Passwort speichern, Sie können es nicht „hackersicher“ machen. Der Hacker muss einfach das tun, was das Programm tut (oder vielleicht sogar nur das Programm ausführen und den Netzwerkverkehr abhören).
PAM-Module haben damit nichts zu tun. Sie dienen nicht zum Speichern von Passwörtern, sondern bieten Möglichkeiten, Authentifizierungsmethoden für vorhandene Linux-Dienste zu konfigurieren. Ein Programm, das PAM verwenden möchte, muss dafür geschrieben werden.
Antwort2
Verwenden des Kernel Key Retention Service
Wenn Sie befürchten, dass jemand wiederholt Root-Zugriff auf Ihr System erhält, können Sie danach praktisch nichts mehr tun. (Aber das ist ein Albtraum, befolgen Sie bewährte Methoden und führen Sie gute Backups durch.)
Wenn jedoch alles weiterhin sicher ist, können Sie viel mehr tun, als ein Kennwort in einer einfachen Textdatei zu hinterlassen (jeder, der Ihr laufendes oder heruntergefahrenes Systemlaufwerk findet, kann es lesen). Machen Sie Dinge wie:
- Verschlüsseln Sie Ihr Home-Konto, sodass die Textdatei (in $HOME) zumindest dann verschlüsselt ist, wenn Sie nicht angemeldet sind.
- Verschlüsseln Sie Ihr gesamtes Laufwerk, ähnlich wie oben.
- Bewahren Sie das Passwort nicht in einer Datei auf, sondern geben Sie es nur bei Bedarf selbst ein.
- Wenn Sie eingegebene Passwörter speichern müssen, geben Sie sie bei der Anmeldung ein und fügen Sie sie dann ein:
- in einer Variable (im RAM, obwohl sie im Swap-Speicher landen könnten)
- imSchlüsselaufbewahrungsdienst des Kernels(Schlüsselring im Widder, sicherer). Siehehttps://www.kernel.org/doc/Documentation/security/keys.txtund
man keyctl
vielleichtman keyrings
einige praktische Beispiele und Anmerkungen von Anthony Thyssen