Ich stehe hinter einer Unternehmensfirewall, die im Bereich der Proxys viele Probleme mit sich bringt. Es gibt zwei Hauptansätze, die ich gefunden habe, um zu funktionieren:
- Verwenden Sie Cntlm auf Kosten der Tatsache, dass keine Verbindung (über die Befehlszeile) zu HTTPS und externen SSH-Standorten hergestellt werden kann. (Mit Cntlm können Sie Ihren Benutzernamen und Ihr Kennwort mit PassNTLMv2 hashen (wodurch Klartext vermieden wird) und
http://localhost:3128/
als Proxy festlegen, der dann zu Ihrem "echten" Proxy umleitet. Wie bereits erwähnt, kann ich mit dieser Methode keine Verbindung zu HTTPS und externem SSH herstellen.) - Geben Sie meinen Benutzernamen und mein Passwort im Klartext in die
http_proxy
Variable ein, auf Kosten meines Benutzernamens und Passworts im Klartext.
Wenn Sicherheit kein Problem wäre, würde ich natürlich nur Option 2 verwenden.
Ich fand eine Lösung, indem ich dies in meinem .babrunrc
(ich benutze Babun, es ist im Grunde Cygwin mit einem kleinen Extra, das gleiche könnte in einem .bashrc
oder .zshrc
obwohl sein).
export http_proxy="http://`echo "Y21hbjpwYXNzd29yZA==" | base64 -d`@20.20.20.20:20/"
Auf diese Weise wird mein Passwort zumindest verschlüsselt. Wenn jemand an meinen Computer kam und tippte echo $http_proxy
, sah er mein Passwort, aber ich glaube, daran führt kein Weg vorbei.
Gibt es dafür alternative Ansätze? Oder vielleicht eine Möglichkeit, die Zeichenfolge zu verschlüsseln, anstatt sie zu verschlüsseln? Es würde mir nichts ausmachen, ein Passwort einzugeben, wenn ich eine Eingabeaufforderung öffne, wenn es keinen Weg daran vorbei gibt.
quelle
PASSLM
,PASSNT
,PASSNTLMv2
von in/etc/cntlm.conf
und hören zu 3128 - Port? und exportierenhttp_proxy/https_proxy
nachlocalhost:3128
Antworten:
Die Verwendung von base64 ist nutzlos, es ist nur eine einfache Transformation. Die Verwendung der Verschlüsselung mit einem Schlüssel, der neben den verschlüsselten Daten gespeichert ist, ist ebenfalls nutzlos, da es sich nur um eine einfache Umwandlung handelt. Wenn Sie befürchten, dass jemand Zugriff auf Ihre Konfigurationsdateien erhält, müssen Sie mit einem Schlüssel verschlüsseln, der nicht in Ihren Konfigurationsdateien enthalten ist. Dies bedeutet, dass Sie beim Anmelden ein Kennwort¹ eingeben müssen.
Verwenden Sie einen vorhandenen Verschlüsselungsmechanismus, anstatt Ihren eigenen zu erstellen.
Wenn Sie unter Linux mit Dateiverschlüsselung arbeiten, verschlüsseln Sie Ihr Home-Verzeichnis mit eCryptfs oder verschlüsseln Sie die gesamte Festplatte mit der Linux-Festplattenverschlüsselungsschicht (dm-crypt,
cryptsetup
Befehl) oder erstellen Sie ein kleines, pro Datei verschlüsseltes Dateisystem mit encfs . Im letzteren Fall sollten Sie ein Skript haben, das das encfs-Dateisystem bereitstellt und dann ein dort gespeichertes Skript ausführt.Legen Sie die Datei unter Windows auf einem TrueCrypt / VeraCrypt ab .
Alternativ können Sie einen Passwort-Manager verwenden (natürlich ein Master-Passwort festlegen). Der Gnome-Passwort-Manager (Gnome-Schlüsselring) kann mit dem
secret-tool
Dienstprogramm über die Befehlszeile abgefragt werden . Seahorse bietet eine praktische Benutzeroberfläche zum Erkunden und Ändern des Schlüsselbunds und zum Festlegen eines Hauptkennworts.Dies erforderte D-Bus, der normalerweise standardmäßig unter Linux verfügbar ist (die meisten modernen Desktop-Umgebungen erfordern dies), aber unter Cygwin manuell gestartet werden muss (ich weiß nicht genau, wie).
¹ oder anderweitig geheimes Material liefern, z. B. auf einer Smartcard gespeichert.
quelle
openssl enc -aes-128-cbc -a
speichern den Schlüssel neben den verschlüsselten Daten wie Sie gesagt haben ?openssl enc
nicht langsam. Im Allgemeinenopenssl
ist das schrecklich und Sie sollten es nicht verwenden, es sei denn, Sie wissen genau, was Sie tun (und oft auch dann nicht): Es gibt Ihnen keinen Hinweis darauf, ob das, was Sie tun, sicher ist oder nicht.secret-tool store --label='EIS domain password' domain EIS value password
Fehlermeldung: Gibt es(secret-tool:43544): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
<newline>
secret-tool: Failed to execute child process "dbus-launch" (No such file or directory)
eine Idee, wo das Problem liegen könnte? Ich benutze Cygwin.dbus-launch
möglicherweise dieDBUS_SESSION_BUS_ADDRESS
Umgebungsvariablen festlegen ), aber ich habe es nie getan, sodass es einige Schwierigkeiten geben kann, die mir nicht bewusst sind. Encfs und Ecryptfs sind überhaupt keine Option, aber Sie können einen Truecrypt / Veracrypt-Container verwenden.Ich habe eine Lösung gefunden: Hinzufügen
openssl enc -aes-128-cbc -a -d
zu der Mischung. Wie in der akzeptierten Antwort erwähnt , ist diese Option jedoch wahrscheinlich nicht sehr sicher.Geben Sie hier zunächst die Kennwortkombination für den Benutzernamen (oder das Base64-codierte Äquivalent) ein.
Es wird zweimal nach einem Passwort gefragt. Dieses Passwort ist das Passwort, das Sie bei jeder
http_proxy
Einstellung eingeben müssen .Dann, in
.babunrc
(oder wo immer Sie es setzen),Wenn die Eingabe base64-codiert war, benötigen Sie stattdessen Folgendes:
Wenn das
<output from above command>
eine neue Leitung hatte,\n
wird es funktionieren.quelle