Im Zentrum stehen dieses Mal Tools, mit denen sich Administratoren das Leben einfacher machen, indem sie Aufgaben automatisieren und skripten: ... (mehr)

GPG

Statt eines Plaintext-Schlüssels kann Fwknop auch GPG-Schlüssel benutzen. Allerdings dürfen Sie nicht Ihren privaten GPG-Key dafür verwenden, denn das Passwort zum Entschlüsseln muss in »/etc/fwknop/access.conf« stehen. Jedoch können Sie auf dem Client einen existierenden Key verwenden, wenn Sie einen haben. Falls nicht, erfahren Sie jetzt, wie man einen neuen anlegt. Geben Sie am Server dazu die folgenden Befehle ein:

gpg --gen-key
gpg --list-keys

Die Default-Optionen von GPG sind in Ordning (DSA- und Elgamal-Schlüssel, 2048-Bit Länge und kein Ablaufdatum). Man sollte keinen Schlüssel länger als 2048 Bits verwenden, denn er muss noch in ein Datenpaket passen. Geben Sie die passenden Server-Namen und E-Mail-Adresse an, und notieren Sie die Passphrase. Die Ausgabe sieht in etwa so aus:

pub   1024D/AAAAAAAA 2008-03-07
uid   server.example.com fwknop <username@↩
example.com>
sub   2048g/BBBBBBBB 2008-03-07

Dann importieren Sie den Schlüssel im Ascii-Format:

$ gpg -a --export AAAAAAAA > server.asc

Erzeugen Sie auch auf dem Client einen Key und exportieren Sie ihn:

$ gpg --gen-key
$ gpg --list-keys
pub   1024D/CCCCCCCC 2008-03-07
uid   test fwknop <username-test@example.↩
com>
sub   2048g/DDDDDDDD 2008-03-07
$ gpg -a --export CCCCCCCC > client.asc

Nun übertragen Sie die Schlüssel über einen sicheren Kanal jeweils auf den anderen Rechner. Wenn Fwknop schon läuft, müssen Sie wie oben beschrieben anklopfen. Nun importieren und signieren Sie beide Schlüssel. Zunächst auf dem Client:

$ gpg --import server.asc
$ gpg --edit-key fwknop
Command> sign
Command> save

Ersetzen Sie dabei »fwknop« durch den Namen, der zut hexadezimaler Key-ID gehört, im Beispiel AAAAAAAA. Auf dem Server verfahren Sie mit dem Client-Key analog. Die Fwknop-Konfiguration für die im Beispiel verwendeten Schlüssel sieht dann so aus wie in Listing 2 .

Listing 2

access.conf für GPG-Schlüssel

SOURCE: ANY;
OPEN_PORTS: tcp/22;
DATA_COLLECT_MODE: PCAP;
FW_ACCESS_TIMEOUT: 30;
GPG_HOME_DIR: /root/.gnupg;
GPG_DECRYPT_ID: AAAAAAAA;
GPG_DECRYPT_PW: myGpgPassword;
GPG_REMOTE_ID: CCCCCCCC;

»__GPG_DECRYPT_ID__« ist der Server-Schlüssel, »__GPG_DECRYPT_PW__« das Passwort dafür. »__GPG_REMOTE_ID__« ist die GPG-Key-ID des Client. Starten Sie dann Fwknop zum Testen neu. Der dafür passende Aufruf auf dem Client sieht so aus:

fwknop -A tcp/22 --gpg-recip AAAAAAAA --gpg-↩
sign CCCCCCCC -w -D server.example.com

Der Server-Schlüssel folgt hinter »--gpg-recip« , die Client-Key-ID nach »--gpg-sign« . Wenn Sie, wie verlangt, die GPG-Passphrase eingegeben haben, schickt Fwknop das Paket an den Server. Nun sollten Sie sich wieder per SSH einloggen können.

Beim derzeitigen Stand der Konfiguration kann sich nur ein einziger Benutzer auf dem Server einloggen. Damit das auch andere tun können, fügen Sie weitere Zeilen mit »GPG_REMOTE_ID« der »access.conf« hinzu. Allerdings muss jeder Schlüssel wieder auf dem Server importiert und signiert werden, genauso wie der jeweilige Benutzer den Server-Key importieren und signieren muss. Für eine normale Login-Umgebung ist das natürlich etwas viel Aufwand, aber er ist für besondere Maschinen mit einer kleinen Gruppe von Admins vielleicht noch vertretbar.

Um den Zugang noch auf einzelne Benutzernamen zu beschränken, verwenden Sie in »/etc/fwknop/access.conf« den Paramter »REQUIRE_USERNAME« . Analog dazu können Sie auch ein bestimmtest Betriebssystem oder eine Quelladresse verlangen. Mehr dazu finden Sie in der Manpage zu »fwknop« .

Artikel als PDF herunterladen

Port Knocking für SSH 728,94 kB

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Fwknop Single Packet Authentication einsatzbereit

Das für Single Packet Authentication bei Firewalls eingesetzte Paket Fwknop steht als produktionsreifes Release 2.0 bereit. 

Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023