LinuxLounge.net und ab auf die Couch!

3Sep/091

Portknocking mit fwknop

Portknocking ist eine bekannte Methode um Ports vor unerlaubten Zugriffen zu schützen. Durch das simple "anklopfen" an Ports in einer bestimmten Reihenfolge wird der Port geöffnet. Doch fwknop bietet zwei besondere Authentifizierungsmöglichkeiten die andere Portknocking Dämonen nicht haben.

Bei "normalem" Portknocking (bekanntes Beispiel: knockd) lauscht der Dämon auf jedem Port nach bestimmten Paketen. Erkennt er eine festgelegte Kombination von nacheinander angesprochenen Ports (ex. 1253, 7532, 3, 894) öffnet er einen Port für einen kurzen Zeitraum. Währenddessen ist der offene Port nur für den Client sichtbar, der sich authentifizieren konnte. Eine permanente Verbindung kann auf den Port hergestellt werden, die auch bestehen bleibt, nachdem das Zeitfenster abgelaufen ist. Das Problem bei normalen Portknocking ist , dass Angreifer die Pakete abfangen und später selbst zu injizieren können.

Fwknop bietet statt Authentifizierung mittels einer Portkombination entweder ein Passwort-Paket auf betreffendem Port, oder eine Verschlüsselung mittels GnuPG. Sicherheit ist hier gegeben, denn selbst wenn das Paket mit dem Passwort aufgefangen wird. Die Pakete enthalten einen Zeitstempel und werden vom fwknop Dämon ignoriert, sollte dieser zu weit in der Vergangenheit liegen.  Das setzt natürlich voraus, das die Systemuhren auf beiden Systemen keine großen Abweichungen haben.

Das Programm ist in den Repositories und kann mit

aptitude -r install fwknop-server fwknop-client
installiert werden.

Die wichtigen Dateien für Einstellungen liegen unter /etc/fwknop/*.

  • fwconop.conf – Grundsätzliche Einstellungen
  • access.conf – Authentifizierungsart und Authentifizierungsspeziefische Einstellungen

fwknop mit Passwortabfrage

Die access.conf sieht dann folgendermaßen aus:

### default Single Packet Authorization (SPA) via libpcap: SOURCE: ANY; // woher dürfen die Pakete kommen? ANY nimmt alle Source-Ips an. Alternativ kann auch eine bestimmte IP oder ein IP-Raum angegeben werden. OPEN_PORTS: tcp/22; ### for ssh (change for access to other services) KEY: [CHANGE_IT]; //Der Key muss leider im Klartext in der Datei angegeben werden. Deshalb ist sie auch nur für root lesbar. FW_ACCESS_TIMEOUT: 30; // wie viele Sekunden bleibt der Port offen?

Nach Änderungen muss der Dienst neu gestartet werden, damit sie gültig werden

/etc/init.d/fwknop restart

Ein Client kann sich jetzt folgendermaßen verbinden:

fwknop -A tcp/22 -a SOURCE_IP -D DEST_IP

fwknop mit GnuPG

Die access.conf sieht so aus:

### if you want to use GnuPG keys (recommended) then define the following ### variables GPG_HOME_DIR: /home/user/.gnupg/secring.gpg; // Der Pfad muss dem, zum Private Keyring enthalten GPG_DECRYPT_ID: SERVER_KEY_ID; GPG_DECRYPT_PW: GPG_PASSWORD; GPG_REMOTE_ID: CLIENT_KEY_ID;

Ein Client kann sich jetzt so verbinden:

fwknop -A tcp/22 --gpg-recip YOUR_GPG_RECIP --gpg-sign YOUR_PGP_SIGN -R -D DEST_IP

Fwknop ist eine gute Alternative zu herkömmlichen Portknocking Dämonen und überzeugt durch verbesserte Methoden und eine recht einfache Handhabung.

Weiterführende Links: Drucken Drucken

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

About Natalie

Der Autor hat keine Beschreibung über sich erstellt.
Kommentare (1) Trackbacks (0)
  1. Danke für Dein Howto; wieder ein Stück weit was gelernt.


Kommentar schreiben


Noch keine Trackbacks.