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/.bashrc
Datei und in /etc/apt/apt.conf
eine 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.conf
es handelt sich um ein sehr sensibles Systemproblem. Daher ist es notwendig, alle Aspekte zu klären.
Soweit ich weiß, ~/.bashrc
akzeptiere /etc/apt/apt.conf
ich 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-get
bevor man software-center
sie verwenden kann.
Sichere Möglichkeit, einer Shell-Umgebung einen Proxy bereitzustellen
Schneidenalle Inhaltedie Sie in Ihre ~/.bashrc
Shell-Umgebung eingeben, um Proxy-Einstellungen anzugeben, und in eine Datei einfügen, sagen wir ~/.mybashproxy
. Ändern Sie ~/.mybashproxy
den 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 ~/.bashrc
oder 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_proxy
Befehl vom Terminal aus aktivieren und dabei Ihr sudo
Passwort eingeben. Auf diese Weise erfährt niemand Ihre Proxy-Anmeldeinformationen. begin_proxy
Wenn 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-get
und software-center
verwenden Sie die Datei, /etc/apt.conf
um die Proxy-Einstellungen beizubehalten. Erstellen Sie eine Datei /etc/apt/myproxy.txt
undInhalt vonSie sind /etc/apt/apt.conf
im 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.txt
für die Gruppe und andere wie oben gezeigt mithilfe von chmod
.
Erstellen Sie eine temporäre Datei mit dem Namen say tmproxy.txt
at /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-get
und 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.conf
nichts 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-get
und/oder software-center
müssen Sie den Befehl able_apt
mit Ihrem sudo
Passwort verwenden. Dann werden alle Ihre Proxy-Anmeldeinformationen in und gespeichert /etc/apt/tmproxy.txt
und apt-get
/oder software-center
können verwendet werden. Nach dem Schließen software-center
oder nach der Verwendung apt-get
zum Löschen der Proxy-Anmeldeinformationen von /etc/apt/tmproxy.txt
verwenden 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.txt
indem Sie vergessen, sie zu verwendendisable_apt
Anmerkungen und Zusammenfassung
- Im Alias ist
disable_apt
das 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. - Wenn Sie keine haben
~/.bash_aliases
, erstellen Sie eine. Undsource ~/.bashrc
stellen Sie sicher, dass diese~/.bashrc
die folgenden Zeilen enthält:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
- 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_aliases
das Terminal verwenden. 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 Aktivierenapt-get
und/odersoftwere-center
Speichern von Proxy-Anmeldeinformationen in/etc/apt/tmproxy.txt
disable_apt
- zum Deaktivierenapt-get
und/odersoftwere-center
Löschen der Proxy-Anmeldeinformationen von/etc/apt/tmproxy.txt
Hoffe, das ist hilfreich.