Apache als Reverse Proxy

Apache ist als Webserver den meisten bekannt, mit der üblicherweise mitgelieferten mod_proxy_html kann er jedoch auch als reverse Proxy eingesetzt werden. Ein solcher Proxy nimmt HTTP-Anfragen entgegen und leitet sie an einen anderen Weberver weiter. Dies kann z.B. hilfreich sein um Anfragen auf mehrere Server im Hintergrund zu verteilen, eine zusätzliche Abschottung interner Server bereitstellen oder auch durch die Terminierung der HTTPS-Verbindung oder dem Vorfiltern von Headern die Belastung der nachgeschalteten Systeme zu mindern.

Zur Konfiguration stellt man erst sicher, dass das Modul geladen ist. Hierzu wird in der Apache-Konfiguration (Arch Linux: /etc/httpd/conf/httpd.conf) sichergestellt, dass die folgenden Zeilen aktiv sind:

LoadModule xml2enc_module modules/mod_xml2enc.so
LoadModule proxy_html_module modules/mod_proxy_html.so

Nun kann im gewünschten VHost eine passende Weiterleitung realisiert werden:

#Nur definierte Requests annehmen
ProxyRequests Off

#Fileshare
ProxyPass /dateiserver http://publicfiles.lan.adlerweb.info/upload
ProxyPassReverse /dateiserver http://publicfiles.lan.adlerweb.info/upload

#Requestform
ProxyPass /request https://http.lan.adlerweb.info/request
ProxyPassReverse /request https://http.lan.adlerweb.info/request

#Buildimg
ProxyPass /autobuild https://inferno.lan.adlerweb.info/results
ProxyPassReverse /autobuild https://inferno.lan.adlerweb.info/results

Wenn das interne Ziel per HTTPS angesprochen werden soll, so sollte die jeweilige Zertifizierungsstelle im System bekannt sein. Hierzu kann auch eine eigene CA-Datei verwendet werden:

SSLProxyCACertificateFile /etc/ssl/private/interneca.crt

Wenig Zeilen, große Wirkung: Surft man nun die angegebenen Pfade des Webservers an, so wird die Anfrage an den angegebenen Server weitergeleitet. Der Apache selbst terminiert hierbei die Clientverbindung, entsprechend werden Funktionen (z.B. externes HTTPS-Zertifikat) verwendet. Auch DoS-Angriffe oder versuche mit kaputten HTTP-Headern treffen primär den exponierten Server und schlagen nicht ohne Weiteres zum internen Webserver durch.

Update: ProxyRequests Off fehlte – wenn auf On agiert der Server als offener Proxy-Server. Default ist Off, daher sollte auch ohne explizites definieren nichts passieren, aber vorsichtshalber kann es nichts schaden hier nochmal zu definieren.

Squid als Proxy-Server

„Mein Internet ist kaputt“ – ich denke jeder 1st-Leveler kennt diese Aussagen. Bauchschmerzen bereiten sie spätestens dann, wenn auch man selbst nicht mehr ins Netz kommt. Proxy weg. In solchen Situationen muss schnelle Hilfe her. Mein erster Blick: Da steht noch ne Testkiste – zwar ist Arch Linux nicht unbedingt die erste Wahl für Produktivserver, welche möglichst wartungsarm sein sollen, aber besser als nichts. Bauen wir mal einen Proxy.

1. Squid installieren

Die Platzhirsch unter den Proxys dürfte ohne Frage Squid sein. Die GPL-Software kann sowohl als Caching als auch Reverse Proxy eingesetzt werden. Ich nutze nur die erste Funktion – Zugriffe der Benutzer sollen zwischengespeichert werden. Die Installation ist unter nahezu allen Distributionen mit wenigen Schritten über den Paketmanager möglich. In meinem Fall reicht ein „pacman -S squid“.

2. Zugriffs- und Speicherkonfiguration

Neben der Software wird auch eine Standardkonfiguration installiert, welche unter /etc/squid/squid.conf zu finden ist. Standardmäßig wird den privaten IPv4-Bereichen erlaubt auf die üblichen Ports für HTTP, FTP, Gopher, Wais und HTTPs zu verbinden. Sofern man keine restriktive Webzugriffslinie besitzt können diese Beispiele also übernommen werden. Einige Änderungen und Ergänzungen können allerdings Hilfreich sein:

# Keine Verbindung zu localhost - schuetzt ggf. falsch eingerichtete Webanwendungen auf dem Server
http_access deny to_localhost

#E-Mail-Adresse des Admins - so kommen die Beschwerden der Nutzer an die richtige Stelle
cache_mgr info@ad....fo

#Beim Stoppen des Dienstes 10 Sekunden darauf warten laufende Uebertragungen abzuschliessen
shutdown_lifetime 10 seconds

#Im RAM werden bis zu 4 GB als Cache genutzt
cache_mem 4096 MB

#Objekte mit mehr als 50MB werden nicht gecached
maximum_object_size 50 MB

# Bis 95% Fuellstand des Caches werden keine Objekte ersetzt
cache_swap_low 95

# Je naeher wir an 98% kommen desto aggressiver werden alte Objekte ersetzt
cache_swap_high 98

#Alles ueber 512kb wird nicht im RAM sondern nur auf HDD gespeichert
maximum_object_size_in_memory 512 KB

# HDD-Cache Typ aufs (async), Ordnerangabe, 32GB, Ordner erste Ebene, Ordner zweite Ebene
cache_dir aufs /var/cache/squid 32768 32 256

#Eyecandy
visible_hostname proxy.lan.adlerweb.info

#Boese Seiten
acl bad_url dstdomain "/etc/squid/bad-sites.acl"
http_access deny bad_url

#Interne IP des Clients nicht nach draussen senden
forwarded_for off

In meinem Fall musste auch der Standardport dran glauben, stattdessen wird nun 8080 verwendet, welches dem Altsystem entspricht und lästiges Umkonfigurieren erspart:

http_port 8080

3. Diktator-Modus

In der Konfiguration schimmert es schon etwas durch: I aim to misbehave. Da es sich um mein Netz handelt greifen auch meine Zensurrichtlinien. Unter /etc/squid/bad-sites.acl liegt eine Liste mit Domains, welche vom Proxy gesperrt werden. Dies kann z.B. sinnvoll sein um Werbung oder die Ziele quasselfreudiger Programme auszusperren. Dabei solltet ihr natürlich das alte Credo beherzigen: With great power comes great responsibility.

.facebook.com
.facebook.de
.google-analytics.com
.googleadservices.com
[...]

4 Minuten Später
…ist der Proxy installiert und das Internet läuft wieder. Job erledigt, wenden wir uns wieder den Katzenvideos zu.

Und sonst?
Wer es etwas weiter treiben möchte: SquidGuard oder Dansguardian können Webseiten nach Themenbereichen sperren. SquidClamav kann die aufgerufenen Webseiten auf Viren prüfen. Sarg verwandelt das Log in einen praktischen HTML-Report mit Top-Usern und den Beliebtesten Webseiten. Ansonsten hat auch sicher die Suchmaschine der Wahl noch genügend Ideen zur Freizeitvernichtung.

BitBastelei #158 – Uni-T UT15c – Zweipoliger Spannungsprüfer

BitBastelei #158 - Uni-T UT15c - Zweipoliger Spannungsprüfer

(168 MB) 00:13:38

2015-07-26 10:00 🛈

Wenn man an $DingenMitStrom arbeitet ist die wichtigste Frage: Ist der Strom tatsächlich ausgeschaltet. Diese Frage beantworten viele Bastler mit einem Elektroschraubenziehen aka. Phasenprüfer. Dieser funktioniert jedoch nur an geerdeten Anlagen und ist auf eine gute Erdung des Nutzers angewiesen – schon falsches Schuhwerk oder gut isolierender Fußboden kann hier unschöne folgen haben. Multimeter liefern schon bessere Werte, sind aber meist unhandlich. Der Korrekte Weg: Zweipoliger Spannungsprüfer, Umgangssprachlich „Duspol“, und Schutzmassnahmenprüfgerät.
Da auch ich hin und wieder an 230V-Bereiche stoße und da bevorzuge keine „gewischt“ zu bekommen ist jetzt zumindest Ersteres in meinem Besitz. Nachdem das in DE zugelassene Baumarktgerät mit seinem dünnen Gehäuse und den wackligen Prüfspitzen bei mir einige Bedenken weckte ist es am Ende doch ein Fernostler geworden: Das Uni-T UT15c. Soweit ich sehe zwar ohne deutschen Stempel, dafür sieht die Qualität vernünftig aus.

Mehr zum Thema: https://www.elektrofachkraft.de/expertenbeitraege/fachgerechter-einsatz-von-spannungspruefern

Der Hacker und die sieben Admins

Es war einmal eine Gruppe von Admins, welche sich morgens um 11 nach langer Nacht zum Ruhen ins Büro begaben. Sie setzten sich und sahen gleich, dass jemand da gewesen war. Der Erste fing an zu fragen:

„Wer hat auf meinem Program Files geschrieben?“

Der Zweite fragte:

„Wer hat von meiner password.txt gelesen?“

Der Dritte fragte.

„Wer hat mein CD-Laufwerk geöffnet?“

Der Vierte:

„Wer hat meinen Desktophintergrund geändert?“

Der Fünfte:

„Wer hat meinen Admin-Konto genutzt?“

Der Sechste:

„Wer hat meinen Postausgang gefüllt?“

und der Siebente fragte:

„Wer hat das Trollface gedruckt?“

Wie die Admins also gefragt hatten, sahen sie sich nach ihren Gehaltszahlungen um, und fragten:

„Wer hat sich auf unseren Banken angemeldet?“

bis auf den Siebenten, der fragte nicht so, sondern:

„Wo ist mein Geld?“,

denn da bediente sich der Hacker.

So, neuer Kernel fertig – weiter im Programm 😉

BitNotice #94 – Quick-Tipp: Knopfzellen messen

BitNotice #94 - Quick-Tipp: Knopfzellen messen

(13 MB) 00:01:41

2015-07-21 10:00 🛈

Batterien messen geht schnell: Messgerät dran und Spannung ablesen. Nicht. Batterien sollte man immer unter Last messen, denn selbst leere Zellen können unbelastet noch die Nennspannung halten. Bei Knopfzellen kann eine einfache LED helfen.

Atom: Deutsches Tastaturlayout nutzbar machen

Atom ist ein freier, modularer Texteditor aus dem Dunstkreis von GitHub, welcher trotz vieler Funktionen einen akzeptablen Ressourcenhunger (naja, sofern das Chrome-basiert möglich ist) vorlegt. Leider ist dessen Nutzung mit Tastaturen außerhalb des QWERTY-Raumes wegen eines Bugs seit über einem Jahr nahezu unmöglich. So ist es z.B. unter Windows unmöglich mit deutschem Tastaturlayout einen Backslash (\) oder das @-Zeichen zu tippen.

Nunja, mit einigen Tricks lässt sich das Problem zumindest temporär umgehen: Für den ersten Schritt klickt man im Editor auf File->Open Your Keymap

Bild: https://adlerweb.info/blog/wp-content/uploads/2015/07/keymap-239×300.png

Hier lassen sich die meisten Tastenkombinationen konfigurieren, u.A. auch die Aktion, welche das @ blockiert entfernen:

'.platform-win32 atom-text-editor':
  'ctrl-alt-[': 'unset!'
  'ctrl-alt-q': 'unset!'

Obwohl hiermit eigentlich auch das \ konfiguriert werden sollte, funktionierte der Workarround für diese Taste bei mir nicht. Hier musst ich zusätzlich das Addon „keyboard-localization“ installieren.

Welp. Immerhin nutzbar.

BitBasics Elektronik – #1 – Was ist „Elektrische Energie“?

BitBasics Elektronik - #1 - Was ist "Elektrische Energie"?

(137 MB) 00:09:15

2015-07-19 10:01 🛈

In der ersten Folge schauen wir uns an, was „Elektrische Energie“ überhaupt ist und was Atome damit zu tun haben.

Weitere Infos und tiefere Erklärungen:

BitBasics Elektronik – #0 – BitBasics? Was ist das?

BitBasics Elektronik - #0 - BitBasics? Was ist das?

(52 MB) 00:08:46

2015-07-19 10:00 🛈

Mit BitBasics möchte ich in Zukunft Grundlagen aus verschiedenen Bereichen präsentieren. Die Erklärungen sind hierbei stark vereinfacht, sollten jedoch ausreichen um die in der Praxis wichtigsten Zusammenhänge zu verstehen. Los geht es mit dem Feld Elektronik: Was ist Elektrische Energie, welche Bauteile machen was, etc.

Wie üblich sind Korrekturen und Hinweise gerne in den Kommentaren gesehen.

BitBasics Elektronik – #1 – Was ist „Elektrische Energie“?

BitNotice #93 – Korrektur: Seek Thermal: Bild ausrichten

BitNotice #93 - Korrektur: Seek Thermal: Bild ausrichten

(8 MB) 00:01:42

2015-07-18 16:42 🛈

Kurze Korrektur zu BitBastelei #157 – Seek Thermal Imager – Wärmebildkamera für’s Smartphone – entgegen meiner Aussage lassen sich die Bildpositionen von Handykamera und Wärmebild doch kalibrieren.

BitBastelei #157 – Seek Thermal Imager – Wärmebildkamera für’s Smartphone

BitBastelei #157 - Seek Thermal Imager - Wärmebildkamera für's Smartphone

(119 MB) 00:25:15

2015-07-12 10:00 🛈

Der Seek Thermal Imager ist eine „Wärmebildkamera“ für’s Smartphone. Besonders dank der vergleichsweise hohen Auflösung und dem günstigen Preis hatte das Produkt beim Release letztes Jahr einige Blicke auf sich gezogen. Leider werden solche Kameras teilweise als „Waffentauglich“ eingeschätzt, entsprechend ist ein Kauf außerhalb der USA etwas abenteuerlich – glücklicherweise konnte ich eine gebraucht ergattern. Also: Schnell fürs eigene Gerät angepasst und los geht die Suche.

Timecodes

  • 00:13 Unboxing
  • 07:08 USB-Adapter Basteln
  • 14:35 …und was kommt bei raus?

Links

Nerd Inside