Proxy in einem (LXC)-Container setzen

Da ein paar Server in meinem Netz nicht direkt, sondern nur via Reverse-Proxy erreichbar sind haben diese auch keinen direkten Internetzugang. Sie müssen sich also auch Updates etc. via Proxy holen.

Dafür setze ich zum einen APT-Cacher-NG, und zum Anderen einen Squid ein. Apt könnte natürlich auch über den Squid laufen, aber da ja mehrere Server laufen muss ich nicht alle Updates zig mal herunterladen.

Den Proxy für APT setzt man einfach indem man eine Datei erstellt

$ nano /etc/apt/apt.conf.d/00aptproxy

Hier wird nun der Proxy eingetragen

Acquire::http::Proxy "http://aptproxy.domain.de:3142“;
Acquire::https::Proxy "https://aptproxy.domain.de:3142“;

Damit wget z.B. aber auch via Proxy raus geht kann man den „normalen“ Proxy beispielsweise ins Environment setzen. Dies geschieht durch

$ nano /etc/enviroment

und eintragen der Werte

$ nano /etc/environment
http_proxy=http://proxy.domain.de:3128
https_proxy=https://proxy.domain.de:3128
ftp_proxy=ftp://proxy.domain.de
no_proxy=localhost,intranet.domain.de
soap_use_proxy=on

Nun hatte ich das Problem das ein Container das so gesetzte Environment nicht übernimmt, sondern offensichtlich das des Host auf dem er läuft. Da sich Host und Gast aber in unterschiedlichen Netzen befinden kann der Proxy nicht aufgelöst werden.

Deswegen setzt man den Proxy für wget in dessen Config-Datei

$ nano /etc/wgetrc
https_proxy = https://proxy.domain.de:3128/
http_proxy = http://proxy.domain.de:3128/
ftp_proxy = http://proxy.domain.de:3128/

Vagrant unter Windows hinter einem Proxy nutzen

Um Vagrant unter Windows hinter einem Proxy sinnvoll zu nutzen bedient man sich am Besten des Vagrant-Plugins „vagrant-proxyconf“.

Dies installiert man mit

vagrant plugin install vagrant-proxyconf

Wenn man nun aber z.B. in der Firma hinter einem Proxy sitzt, so klappt natürlich auch die Plugin-Installation aufgrund fehlenden Internet-Zugriffs nicht. Also muss zunächst für die Plugin-Installation der verwendete Proxy erstmal in der Shell bekannt gemacht werden. Unter Unix wäre das mit Export der Umgebungsvariable erledigt. Unter Windows bedienen wir uns des SET-Befehls:

SET HTTP_PROXY=http://user:passwort@proxy:port
SET HTTPS_PROXY=http://user:passwort@proxy:port

Nun einfach die entsprechenden Werte einsetzen und in der Shell eingeben. Danach kann man dann das Plugin wie oben beschrieben installieren.

Nun kann man die Proxy-Settings entweder in sein privates User-Vagrantfile einbinden, oder aber z.B. in das Vagrantfile der aktuellen Maschine:

config.proxy.http = "http://user:passwort@proxy:port"
config.proxy.https = "http://user:passwort@proxy:port"
config.proxy.no_proxy = "localhost,127.0.0.1"

Nun sollte beim nächsten „vagrant up“ der Zugriff klappen und z.B. das Image heruntergeladen werden.

Sollte für den Zugriff kein User/Passwort nötig sein, wird der entsprechende Teil in der Proxy-URL einfach weggelassen.

User eines SQUID-Proxy gegen LDAP authentifizieren

Möchte man seine Proxy-User nur nach einem Login in das Internet lassen bietet es sich an, die User gegen das ohnehin vorhandene Directory zu authentifizieren. Dazu verwenden man am einfachsten eine LDAP-Anfrage. Zusätzlich soll der Zugriff nur solchen Usern gestattet sein, die auch in einer entsprechenden Gruppe Mitglied sind.

Zunächst die  Authentifizierung:

auth_param basic program /usr/lib/squid/ldap_auth -b „o=FLADI“ -f „(&(cn=%s)(objectClass=Person))“ -s sub -v 3 -h ldap.fladi.de
Ein paar zusätzlichen Konfigurationen (z.B. Meldung bei erstem Proxy-Kontakt)
auth_param basic children 8
auth_param basic realm Internetzugang bei der Fladi.net
auth_param basic credentialsttl 8 hours
Auslesen der Gruppen des vorher authentifizierten Users
external_acl_type ldap_group %LOGIN /usr/lib/squid/squid_ldap_group -b „o=FLADI“ -f „(&(cn=%u)(groupMembership=%g))“ -s sub -v 3 -h ldap.fladi.de
Gruppe, in der der User Mitglied sein muss um Zugriff zu erhalten
acl wwwgroup external ldap_group cn=ProxyUser,ou=mynet,o=FLADI
Fertig. ;-)

HowTo: apt-get hinter einem Proxy Server mit Ubuntu

Wer sein Unbuntu updaten möchte, oder neue Software installieren will wird früher oder später apt-get brauchen. Wenn man nun hinter einem Proxy-Server sitzt, wird das nicht ohne weiteres funktionieren. Dazu muss man ein paar kleine Einstellungen machen:
1) Unter System -> den Synaptic Paketverwaltung öffnen und dort unter Einstellungen -> Netzwerk die entsprechenden Einträge machen.
2) Um apt-get von der der Kommandozeile nutzen zu können, schreiben wir die Proxy-Settings in die Umgebungsvariable. Die geschieht indem man:

sudo nano /etc/bash.bashrc

aufruft und dann die folgenden Zeilen am Ende einfügt:

export http_proxy=http://user:passwort@proxyserver.domain:port/
export ftp_proxy=http://user:passwort@proxyserver.domain:port/

Das user:passwort kann natürlich entfallen, sofern der Proxy keine Zugangsberechtigung abfragt. Wen man jetzt eine neue Shell öffnet kann man wie gewohnt sein apt-get nutzen.