# # Creation: 2015-01-08 jed # Last Update: $Id$ # - SSH Hardening entsprechend dieser Empfehlungen durchgefuehrt: - https://stribika.github.io/2015/01/04/secure-secure-shell.html - Damit puttygen.exe einen OpenSSH2-Schluessel importieren kann muss dieser mit einem Kennwort versehen sein. Dies bewerkstelligt man mittels des folgenden Befehls: # ssh-keygen -p Enter file in which the key is (/root/.ssh/id_rsa): /root/.ssh/id_rsa Key has comment '/root/.ssh/id_rsa' Enter new passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved with the new passphrase. Beim Speichern kann man dann auf Wunsch das Kennwort wieder entfernen. Dazu sind einfach die beiden Passphrase-Felder zu leeren und die Schluesseldateien zu speichern. Will man das Kennwort zu einem spaetern Zeitpunkt wieder setzen oder entfernen, so ruft man einfach puttygen.exe .ppk auf. - Um sich mittels der generierten Schluessel ohne zusaetzliche Eingabe eines Kennwortes am eisfair-Server anzumelden, setzt man anschliessend folgende Parameter in der ssh-Konfiguration (setup->System administration->SSH administration->Edit configuration): SSH_PUBLIC_KEY_N='2' SSH_PUBLIC_KEY_1_NAME='Mein ED25519-Schluessel' SSH_PUBLIC_KEY_1_ACTIVE='yes' SSH_PUBLIC_KEY_1='/root/.ssh/id_ed25519.pub' SSH_PUBLIC_KEY_2_NAME='Mein RSA-Schluessel' SSH_PUBLIC_KEY_2_ACTIVE='yes' SSH_PUBLIC_KEY_2='/root/.ssh/id_rsa.pub' - Falls man sicher stellen will, dass die verwendeten Primzahlen fuer den Diffie-Hellman Gruppenaustausch nich kompromitiert und sicher sind, kann man die Datei /etc/ssh/moduli neu erstellen lassen. Hierfuer wird das Skript /var/install/bin/system-ssh-create-moduli mitgeliefert. Achtung: Dieser Prozess kann, abhaengig vom verwendeten Rechner, sehr lange dauern! Hier einmal die Zeit, die das Generieren der Primzahlenkandidaten auf einem 'Intel(R) Core(TM) i3-4130T CPU @ 2.90GHz' gedauert hat: 2048bit - 3min 8sec 3072bit - 4min 26sec 4096bit - 5min 46sec 6142bit - 8min 28sec 8192bit - 11min 14sec Die anschließende Pruefung der Primzahlen dauerte noch einmal weitere .... Stunden. Sat Jan 17 12:08:04 2015 Found 815176 candidates Sat Jan 17 12:13:25 2015 processed 16081 of 1703044 (0%) in 0:05, ETA 8:44 ... - Falls ein Verbindungsaufbau zum SSH-Server scheitert, so setzt man temporaer am besten SSH_LOGLEVEL='DEBUG2' und greift auf den Server zu. Abhaengig von der angezeigten Fehlermeldung modifiziert man dann einzelnen Parameter. Wird z.B. die Meldung 'Key exchange nicht möglich o.ae.' angezeigt, so setzt man erst einmal SSH_SERVER_KEXS='all'. Anschliessend baut man dem Client-Programm bzw. der App eine Verbindung zum Server auf und schaut nach folgenden Meldungen: ...debug2: kex_parse_kexinit: first_kex_follows 0 ...debug2: kex_parse_kexinit: reserved 0 ...debug2: kex_parse_kexinit: diffie-hellman-group14-sha1, diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1 Der erste Wert wird dann durch Setzen von SSH_SERVER_KEXS='default, diffie-hellman-group14-sha1' in die Konfiguration uebernommen und anschliessend ein erneuter Verbindungsversuch unternommen. Ueblicherweise sollte dann eigentlich eine Verbindung moeglich sein. - Die Android ConnectBot-App in der v1.8.1 (nicht über den Play Store, sondern nur direkt ueber GitHub zu beziehen (https://github.com/connectbot/connectbot/releases) unterstuetzt 'aes256-ctr' und 'hmac-sha2-256' und funktioniert somit mit diesen Einstellungen. - Die iPhone Serverauditor-App in der v1.5.4 erfordert das ein Parameter modifiziert wird: SSH_SERVER_KEXS='default,diffie-hellman-group14-sha1' - Die iPhone Reflection for UNIX-App in der v1.1.0.40 einzige App im Test, die den Server-Key zur Pruefung angeboten hat) erfordert das ein Parameter modifiziert wird: SSH_SERVER_KEXS='default,diffie-hellman-group14-sha1' - Die iPhone iTerminal-App in der v2.0.2 (freie Version mit Werbeeinblendungen) erfordert das ein Parameter modifiziert wird: SSH_SERVER_KEXS='default,diffie-hellman-group14-sha1' - Die iPhone vSSH Lite-App in der v1.8 (freie Version mit Werbeeinblendungen) erfordert das ein Parameter modifiziert wird: SSH_SERVER_MACS='default,hmac-sha1' - iPhone Mocha Telnet Lite-App in der v2.7 erfordert das Parameter modifiziert werden: SSH_SERVER_CIPHERS='default,3des-cbc' SSH_SERVER_KEXS='default,diffie-hellman-group1-sha1' SSH_SERVER_MACS='default,hmac-sha1'