Gibt es eine sichere Möglichkeit, Authentifizierungsparameter für den Proxy an Anwendungen zu übergeben?

Gibt es eine sichere Möglichkeit, Authentifizierungsparameter für den Proxy an Anwendungen zu übergeben?

Ich befinde mich hinter einem Proxy-Server und muss Authentifizierungsparameter angeben, um auf das Internet zuzugreifen. Dazu habe ich meinen Benutzernamen, mein Passwort, meinen Host und meine Portnummer in meine /home/$USER/.bashrcDatei und in /etc/apt/apt.confeine Datei exportiert, die
für Menschen lesbar ist. Beispiel :

Acquire::http::proxy "http://<username>:<password>@172.16.0.2:8080";
Acquire::ftp::proxy "ftp://<username>:<password>@172.16.0.2:8080/";
Acquire::https::proxy "https://<username>:<password>@172.16.0.2:8080/";

Dies führt dazu, dass mein Passwort für jeden offen sichtbar ist, der Lesezugriff auf diese Dateien hat.

Gibt es eine sichere Möglichkeit, diese Parameter an die Anwendungen zu übergeben, die Proxy-Authentifizierungsparameter benötigen, ohne sie in einer für Menschen lesbaren Form schreiben zu müssen?

Notiz:Es wäre gut, dauerhafte Methoden zu kennen. Ich weiß, dass ich dies vorübergehend tun kann, indem ich jedes Mal exportiere, wenn ich eine neue Sitzung öffne. Aber ich muss dies jedes Mal tun, wenn ich eine neue Sitzung öffne, und das möchte ich vermeiden.

Antwort1

Entschuldigen Sie die lange Antwort, aber apt.confes handelt sich um ein sehr sensibles Systemproblem. Daher ist es notwendig, alle Aspekte zu klären.

Soweit ich weiß, ~/.bashrcakzeptiere /etc/apt/apt.confich Ihre Proxy-Einstellungen nur, wenn sie in einer für Menschen lesbaren Form vorliegen. Sie können sie höchstens zwingen, aus anderen Dateien zu lesen. Ich werde das ausnutzen. Ich werde die Proxy-Anmeldeinformationen in Dateien speichern, auf die niemand außer dem Root-/Sudoer-Benutzer zugreifen kann. Aber man muss die Proxy-Einstellungen jedes Mal offenlegen, apt-getbevor man software-centersie verwenden kann.

Sichere Möglichkeit, einer Shell-Umgebung einen Proxy bereitzustellen

Schneidenalle Inhaltedie Sie in Ihre ~/.bashrcShell-Umgebung eingeben, um Proxy-Einstellungen anzugeben, und in eine Datei einfügen, sagen wir ~/.mybashproxy. Ändern Sie ~/.mybashproxyden Eigentümer in „root“ und entfernen Sie die Lese-/Schreibberechtigung für die Gruppe und andere, sodass nur Sudoers darauf zugreifen können.

sudo chown root:root ~/.mybashproxy
sudo chmod go-rw ~/.mybashproxy

Machen Sie den folgenden Alias ​​in ~/.bashrcoder in ~/.bash_aliases, ich würde lieber letzteres verwenden.

alias begin_proxy='sudo cat .mybashproxy > .tmp; source .tmp; rm .tmp'

Verwendung

Sie müssen den Proxy in Ihrer Shell-Umgebung per begin_proxyBefehl vom Terminal aus aktivieren und dabei Ihr sudoPasswort eingeben. Auf diese Weise erfährt niemand Ihre Proxy-Anmeldeinformationen. begin_proxyWenn Sie jedoch nach der Verwendung jemandem Zugriff auf dasselbe Terminal gewähren, kann er möglicherweise Ihre Anmeldeinformationen über einen Befehl im Terminal sehen env | grep proxy. Aus Sicherheitsgründen erlauben Sie niemandem, dasselbe Terminal zu verwenden, das Sie verwendet haben begin_proxy.

Sichere Möglichkeit, einen Proxy für apt-get bereitzustellen

apt-getund software-centerverwenden Sie die Datei, /etc/apt.confum die Proxy-Einstellungen beizubehalten. Erstellen Sie eine Datei /etc/apt/myproxy.txtundInhalt vonSie sind /etc/apt/apt.confim Terminal, indem Sie es öffnen als,

sudo gedit /etc/apt/myproxy.txt

Kopieren Sie anschließend den gewünschten Inhalt und speichern Sie die Datei. Entfernen Sie die Lese-/Schreibberechtigung /etc/apt/myproxy.txtfür die Gruppe und andere wie oben gezeigt mithilfe von chmod.

Erstellen Sie eine temporäre Datei mit dem Namen say tmproxy.txtat /etc/apt/und erteilen Sie allen wie folgt Lese- und Schreibberechtigung:

sudo touch /etc/apt/tmproxy.txt
sudo chmod go+rw /etc/apt/tmproxy.txt

Ich werde bei Bedarf Proxy-Einstellungen dorthin apt-getund von dort bereitstellen. Fügen Sie die folgende Zeile hinzu , um Proxy-Einstellungen von zu lesen .software-center/etc/apt/apt.conf/etc/apt/tmproxy.txt

#inclued /etc/apt/tmproxy.txt;

außer dass die obige Zeile /etc/apt/apt.confnichts enthalten sollte. Erstellen Sie nun die folgenden Aliase in~/.bash_aliases

alias able_apt='sudo cat /etc/apt/myproxy.txt > /etc/apt/tmproxy.txt'
alias disable_apt='echo "0;" > /etc/apt/tmproxy.txt'

Verwendung

Vor der Verwendung von apt-getund/oder software-centermüssen Sie den Befehl able_aptmit Ihrem sudoPasswort verwenden. Dann werden alle Ihre Proxy-Anmeldeinformationen in und gespeichert /etc/apt/tmproxy.txtund apt-get/oder software-centerkönnen verwendet werden. Nach dem Schließen software-centeroder nach der Verwendung apt-getzum Löschen der Proxy-Anmeldeinformationen von /etc/apt/tmproxy.txtverwenden Sie den Befehl disable_apt. Auch bei diesem Vorgang kann niemand Ihre Proxy-Anmeldeinformationen sehen, es sei denn, Sie lassen sie darin, /etc/apt/tmproxy.txtindem Sie vergessen, sie zu verwendendisable_apt

Anmerkungen und Zusammenfassung

  1. Im Alias ​​ist disable_aptdas Semikolon ( ;) nach der Null wichtig, sonst erhält manFehler „Zusätzlicher Müll am Ende der Datei“Im oberen rechten Bereich kann außerdem ein rotes Fehlersymbol erscheinen.
  2. Wenn Sie keine haben ~/.bash_aliases, erstellen Sie eine. Und source ~/.bashrcstellen Sie sicher, dass diese ~/.bashrcdie folgenden Zeilen enthält:
   if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
    fi
  1. Unmittelbar nachdem Sie die obigen Einstellungen vorgenommen haben, müssen Sie sich zum Aktivieren von Aliasnamen entweder einmal abmelden und anmelden oder Sie können source ~/.bash_aliasesdas Terminal verwenden.
  2. Am Ende der Geschichte stehen Ihnen drei Aliase zur Verfügung:

    • begin_proxy- um den Proxy in der Shell-Umgebung zu starten. Dauert, bis das Terminal geöffnet ist.
    • able_apt- zum Aktivieren apt-getund/oder softwere-centerSpeichern von Proxy-Anmeldeinformationen in/etc/apt/tmproxy.txt
    • disable_apt- zum Deaktivieren apt-getund/oder softwere-centerLöschen der Proxy-Anmeldeinformationen von/etc/apt/tmproxy.txt

Hoffe, das ist hilfreich.

verwandte Informationen