28 lines
1.6 KiB
SQL
28 lines
1.6 KiB
SQL
-- Zwei Ursachen fuer nicht zustande kommende Sitzungen, siehe
|
|
-- app/ssh_proxy/proxy.py bzw. app/rdp_proxy/guacd_client.py.
|
|
--
|
|
-- 1) ssh_keys.passphrase_enc
|
|
-- asyncssh.import_private_key() wurde bisher IMMER ohne Passphrase
|
|
-- aufgerufen. Ein passphrasegeschuetzter Private Key (der Normalfall, wenn
|
|
-- ein Admin einen bestehenden Schluessel aus ~/.ssh einfuegt) laesst sich so
|
|
-- prinzipiell nicht laden -- jeder Verbindungsversuch endete in
|
|
-- asyncssh.public_key.KeyImportError:
|
|
-- "Passphrase must be specified to import encrypted private keys"
|
|
-- und damit in einer sofort wieder beendeten Sitzung. Die Passphrase wird
|
|
-- deshalb ab jetzt beim Anlegen/Rotieren des Schluessels mit erfasst und --
|
|
-- exakt wie das Schluesselmaterial selbst und die RDP-Passwoerter -- mit dem
|
|
-- KEK (AES-256-GCM, app/security/crypto.py, associated_data=b"ssh_key_passphrase")
|
|
-- verschluesselt abgelegt. NULL = Schluessel ist unverschluesselt (bisheriges
|
|
-- Verhalten, bleibt unveraendert gueltig).
|
|
ALTER TABLE ssh_keys ADD COLUMN passphrase_enc BLOB;
|
|
|
|
-- 2) hosts.rdp_ignore_cert
|
|
-- build_rdp_params() setzte "ignore-cert" hart auf "false". Windows-Ziele
|
|
-- praesentieren im Regelfall ein selbstsigniertes RDP-Zertifikat; guacd/
|
|
-- FreeRDP bricht den Verbindungsaufbau dann ab, bevor ueberhaupt ein Bild
|
|
-- entsteht. Die Entscheidung gehoert pro Host getroffen und nicht ins
|
|
-- Codeliteral: Default 1 (ignorieren, entspricht dem Verhalten jedes
|
|
-- gaengigen RDP-Clients); wer eine interne PKI betreibt, setzt den Wert pro
|
|
-- Host auf 0 und erzwingt damit die Zertifikatspruefung.
|
|
ALTER TABLE hosts ADD COLUMN rdp_ignore_cert INTEGER NOT NULL DEFAULT 1;
|