Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
csgo_beta:sec_logonscript [2012/06/01 21:42] DeaD_EyE |
csgo_beta:sec_logonscript [2012/06/03 19:34] (aktuell) DeaD_EyE [Loginscript verschlüsseln] |
||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
Bei vielen Serveradmins kommt es vor, dass mehrere Personen Zugriff auf die Dateien haben. In diesem Artikel werde ich kurz beschreiben, wie man mittels gpg das Passwort vor neugierigen Blicken schützen kann. Es wird das Tool gpg benötigt, dass bei Debian standardmäßig installiert ist. Sollte das Tool fehlen, muss es mit dem distributionsspezifischen Paketmanager installiert werden. | Bei vielen Serveradmins kommt es vor, dass mehrere Personen Zugriff auf die Dateien haben. In diesem Artikel werde ich kurz beschreiben, wie man mittels gpg das Passwort vor neugierigen Blicken schützen kann. Es wird das Tool gpg benötigt, dass bei Debian standardmäßig installiert ist. Sollte das Tool fehlen, muss es mit dem distributionsspezifischen Paketmanager installiert werden. | ||
===== Loginscript verschlüsseln ===== | ===== Loginscript verschlüsseln ===== | ||
- | Mit einem Editor muss nach folgendem Schema das Loginscript erstellt werden. Login, Password, Installationsverzeichnis weichen natürlich ab und sind dementsprechend anzupassen. In diesem Beispiel wählen wir den Dateinamen ''login''. | + | Mit einem Editor muss nach folgendem Schema das Loginscript im Verzeichnis des SteamTools erstellt werden. Login, Password, Installationsverzeichnis weichen natürlich ab und sind dementsprechend anzupassen. In diesem Beispiel wählen wir den Dateinamen ''login''. |
<code> | <code> | ||
login Benutzer Passwort | login Benutzer Passwort | ||
Zeile 10: | Zeile 10: | ||
</code> | </code> | ||
Nachdem die Datei erstellt worden ist, kann mittels gpg die Datei ''login'' synchron verschlüsselt werden. Für die Verschlüsselung nehmen wir die Standardeinstellungen. Für eine genauere Beschreibung der Verschlüsselungsmethoden und Optionsschalter kann im Artikel [[http://wiki.ubuntuusers.de/GnuPG/Symmetrische_Verschl%C3%BCsselung|Symmetrische Verschlüsselung]] nachgelesen werden. Um die Datei ''login'' zu verschlüsseln rufen wir folgenden Befehl auf: | Nachdem die Datei erstellt worden ist, kann mittels gpg die Datei ''login'' synchron verschlüsselt werden. Für die Verschlüsselung nehmen wir die Standardeinstellungen. Für eine genauere Beschreibung der Verschlüsselungsmethoden und Optionsschalter kann im Artikel [[http://wiki.ubuntuusers.de/GnuPG/Symmetrische_Verschl%C3%BCsselung|Symmetrische Verschlüsselung]] nachgelesen werden. Um die Datei ''login'' zu verschlüsseln rufen wir folgenden Befehl auf: | ||
- | <code> | + | <code bash> |
gpg -c --force-mdc login | gpg -c --force-mdc login | ||
</code> | </code> | ||
Die Passphrase zwei mal eingeben und bestätigen. Es wird die Datei ''login.gpg'' angelegt. Um das Entschlüsseln zu prüfen, kann einmal folgender Befehl aufgerufen werden: | Die Passphrase zwei mal eingeben und bestätigen. Es wird die Datei ''login.gpg'' angelegt. Um das Entschlüsseln zu prüfen, kann einmal folgender Befehl aufgerufen werden: | ||
- | <code> | + | <code bash> |
gpg -d login.gpg | gpg -d login.gpg | ||
</code> | </code> | ||
Zeile 21: | Zeile 21: | ||
Diese braucht nicht weiter beachtet zu werden. Aus dem Grund leiten wir die Fehlerausgabe später nach ''/dev/null'' um. | Diese braucht nicht weiter beachtet zu werden. Aus dem Grund leiten wir die Fehlerausgabe später nach ''/dev/null'' um. | ||
- | ==== login.gpg an steam.sh übergeben ==== | + | ===== Loginscript entschlüsseln ===== |
Sofern die Entschlüsselung funktioniert, sollte die Datei ''login'' gelöscht werden. Mit einer Pipe kann man der ''steam.sh'' den entschlüsselten Inhalt der ''login.gpg'' übermitteln: | Sofern die Entschlüsselung funktioniert, sollte die Datei ''login'' gelöscht werden. Mit einer Pipe kann man der ''steam.sh'' den entschlüsselten Inhalt der ''login.gpg'' übermitteln: | ||
- | <code> | + | <code bash> |
gpg -d login.gpg 2> /dev/null | STEAMEXE=steamcmd ./steam.sh | gpg -d login.gpg 2> /dev/null | STEAMEXE=steamcmd ./steam.sh | ||
</code> | </code> | ||
- | Folglich wird ''steamcmd'' durch 'steam.sh'' gestartet. Durch die Verknüpfung mit der Pipe, wartet ''gpg'' immer noch auf die Passphrase, obwohl ''steamcmd'' schon längst gestartet ist. Es sollte vor der Eingabe der Passphrase so aussehen: | + | Folglich wird ''steamcmd'' durch ''steam.sh'' gestartet. Durch die Verknüpfung mit der Pipe, wartet ''gpg'' immer noch auf die Passphrase, obwohl ''steamcmd'' schon längst gestartet ist. Es sollte vor der Eingabe der Passphrase so aussehen: |
<code> | <code> | ||
Installing breakpad exception handler for appid(steam)/version(1337903821) | Installing breakpad exception handler for appid(steam)/version(1337903821) | ||
Zeile 53: | Zeile 53: | ||
CAsyncIOManager: 0 single object alertable sleeps, 2 multi object alertable sleeps</code> | CAsyncIOManager: 0 single object alertable sleeps, 2 multi object alertable sleeps</code> | ||
In dem Fall war der dedicated Server schon aktuell. Als letztes kann man noch mit folgendem Befehl ein kurzes Script erstellen, dass mit dem Befehl ''read'' arbeitet und das Passwort als Variable an gpg übergibt. Es hat noch den Vorteil, dass auf die Eingabe gewartet wird. | In dem Fall war der dedicated Server schon aktuell. Als letztes kann man noch mit folgendem Befehl ein kurzes Script erstellen, dass mit dem Befehl ''read'' arbeitet und das Passwort als Variable an gpg übergibt. Es hat noch den Vorteil, dass auf die Eingabe gewartet wird. | ||
- | <code> | + | <file bash update.sh> |
read -p "Passpshrase eingeben: " -s pass | read -p "Passpshrase eingeben: " -s pass | ||
gpg --passphrase $pass -d login.gpg 2>/dev/null | STEAMEXE=steamcmd ./steam.sh | gpg --passphrase $pass -d login.gpg 2>/dev/null | STEAMEXE=steamcmd ./steam.sh | ||
pass="" | pass="" | ||
- | </code> | + | </file> |
Nur noch ausführbar machen: | Nur noch ausführbar machen: | ||
- | <code>chmod u+x ./update.sh</code> | + | <code bash>chmod u+x ./update.sh</code> |
Das Script wird dann einfach mit ''./update'' ausgeführt. | Das Script wird dann einfach mit ''./update'' ausgeführt. |