[BigIP] URL via Stream-Profil und iRule anpassen
Ich hatte heute mit einem Problem der etwas anderen Art zu kaempfen. Beim Einsatz einer bestimmten 3rd-Party App in unserem Code, wurde die Base-URL von dieser 3rd-Party App nicht richtig gesetzt. Das resultierte dann daran, dass die App alle Base-URLs mit http://<somehostname>:80/[...] ins resultierende HTML schob- was natuerlich suboptimal ist, da wir nur HTTPS Requests erlauben- normale HTTP Anfragen kommen garnicht erst durch die Firewall.
Mir kam die Idee, das man doch mittels iRule auf der BigIP das zurueckgegebene HTML veraendern koennte und so die URL im Code anpassen. Gesagt, getan... etwas in der Dokumentation um iRules und Content-Handling geforscht und tatsaechlich was gefunden. Anhand eines Stream-Profil, dass man via iRule ansteuern kann, laesst sich der Daten-Strom bei der Auslieferung an den Client entsprechend veraendern. Also hab' ich mich hingesetzt und das ganze zu einer iRule fuer diese 3rd Party-App zusammengebastelt.
Das Ergebnis sieht so aus- ziemlich simpel, aber effektiv ![]()
[Solaris] Poor man's lsof unter Solaris
(Ich suche hier gerade, welcher Prozess auf Port 2144 rennt)
do
pfiles $pid | grep AF_INET | grep 2144 >/dev/null && \
echo "PID $pid is listening on port 2144";
done
SPAMlos in Seattle
OpenBSD 4.3 released
Serendipity 1.3 released
(via strcat|s9y)
Cyrus-SASL sql.c 'settings' undeclared
Ich bin gerade dabei einen weiteren Mailserver aufzusetzen. Beim kompilieren von Cyrus SASL (inkl. SQL Cyrpt Patch) bekam ich dann folgenden Fehler:
sql.c:292: error: 'settings' undeclared (first use in this function)
sql.c:292: error: (Each undeclared identifier is reported only once
sql.c:292: error: for each function it appears in.)
sql.c: In function '_pgsql_rollback_txn':
sql.c:337: error: too many arguments to function '_pgsql_exec'
Scheinbar bin ich der einzige der dieses Problem hat, ich konnte zumindest nichts bei google finde. Also hab' ich mich selbst dran versucht und es auch geschafft das Problem zu loesen. Fuer denjenigen der dieses Problem auch mal haben sollte, hier mein Patch.
Und es funktioniert doch!
Dank des CRUX86_64 Projekts laeuft jetzt sogar 'n 64Bit System auf dem Server. Sehr angenehm sich endlich auch auf 'nem "fremdsystem" irgendwie ein kleines Stueckchen mehr Zuhause zu fuehlen. Beim CRUX86_64 ist das sshd-keygen scheinbar nicht sauber kompiliert (oder nur fuer die Hetzner Maschine inkompatibel). Es kann keinen ssh Key anlegen und somit wird der Remote-Zugriff verweigert. Das kann man aber umgehen, indem man temporaer 'nen Key von 'nem anderen System einspielt, sich einloggt, ein "sysup" durchfuehrt und dann erst gcc, binutils und Co neu uebersetzt werden und dann OpenSSH. Danach funktioniert ssh-keygen 1a.
2.6.22.6 x86_64
CRUX version 2.3
WLAN Security (Teil 2)
Ich hatte mir vor ein paar Tagen ja schon ueber die Sicherheit einiger WLANs ausgelassen und das brachte mich dann doch nochmal ins Gruebeln. WPA2 mit 63-byte Key schoen und gut, aber das gelbe vom Ei ist es dennoch nicht. Nicht nur, dass man den Key auf Grund der laenge sehr schlecht behalten kann, es ist ausserdem ein "Shared Secret". Sprich wenn ich irgendeinem Gast mal den Key zu meinem WLAN gegeben habe und dann wird ihm z. B. das Laptop geklaut, dann ist der Key in fremden Haenden und kann zumindest theoretisch missbraucht werden (und der Boesewicht kann damit in meinem LAN rumschnuefflen). Klar klingt das jetzt ziemlich paranoid und sehr theoretisch, aber die Moeglichkeit besteht.
Also bin ich hingegangen und habe mein Netz etwas mehr abgesichert um solche Faelle auszuschliessen. Zuerst habe ich mein Netz in 2 VLANs unterteilt. Einmal das LAN- sprich die physikalischen Netzwerk-Ports die ich ja ueberwachen kann und dann noch das WiFi VLAN. Die beiden VLANs sind in versch. Subnetze unterteilt und nochmal via Firewall-Regeln komplett von einander abgeschirmt. Wer im LAN ist kann alles- wer im WLAN ist kann surfen, aber mehr auch nicht. Das LAN Netz ist fuer User im WLAN-Subnetz ueberhaupt nicht moeglich (ausser DNS Requests). Man kann sich allerdings via OpenVPN ins LAN einwaehlen und hat dann den kompletten Zugriff aufs LAN.
Das hat natuerlich schonmal 'ne Menge gebracht, denn zumindest mein LAN ist jetzt voellig autak und auch wenn jemand es ins WLAN schafft, hat er keine Chance ins LAN zu kommen.... Schoen! Aber ich habe trotzdem noch immer das Problem mit dem Shared-Key. Also habe ich meinen OpenWRT Router noch um einen FreeRadius Server erweitert und 802.1x WPA Authentifizierung aktiviert. Somit kann ich jetzt einzelne User einrichten und habe eine Zertifikat-basierte Authentifizierung. Wenn da jetzt noch jemand rein kommt, weiss ich auch nicht mehr weiter
Ich fuehle mich jetzt um einiges sicherer in meinen Netzen
Solaris' Service Management Facility
Es muss ja nicht immer sicher sein...
Da ich ja immer oefter reise und somit oft in offenen oder zumindest nicht unbedingt vertrauenswuerdigen WLANs und LANs haenge, habe ich auf meinem OpenWRT jetzt OpenVPN aufgesetzt (btw. ich habe es neu aufgesetzt, denn ich habe bereits seit Jahren OpenVPN darauf laufen). Ich habe jetzt aber eine OpenVPN+PKI Installation gemacht. Die PKI-Variante von OpenVPN bietet naemlich einiges mehr an komfort (z. B. autom. Routen pushen an den Client, etc. pp.). Die Installation ging wie immer ziemlich einfach von der Hand (habe auch schon bei Kunden OpenVPN + PKI aufgesetzt - allerdings nicht auf 'm OpenWRT
Die einzige Problematik die ich jetzt noch hatte war- wie teste ich ob es wirklich funktioniert? Ist immer doof wenn im LAN alles funktioniert, man dann im Hotel oder beim Kunden sitzt und dann von "extern" nichts mehr klappt, weil irgendwelche Firewall-Regeln nicht eingerichtet sind oder Routen auf dem OpenWRT fehlen (oder das pushing des DNS nicht klappt, etc...). Also dachte ich mir- waehlst Du Dich mal in ein oeffentliches WLAN ein, falls es eins in meiner Naehe geben sollte. Ich suchte also die Nachbarschaft nach offenen WLANs ab, musste aber verwundert feststellen, dass es keine mehr gibt (sonst gab es immer ein offenes WLAN mit der SSID "default"
Ein Blick in die verfuegbaren WLANs bestaetigte das es das WLAN mit einer 4-Stelligen SSID immernoch gibt. Der Key war damals (als ich vor 2 Jahren hier in Koeln eingezogen bin und 2 Wochen keinen Internetanschluss hatte) innerhalb von Minuten geknackt. Der Key war so trivial, dass er regelrecht darauf hoffen muss geknackt zu werden (WEP: 24 Nullen, gefolgt von einer 2-stelligen Zahlenfolge). Ich ging natuerlich davon aus, dass der Key schon 100.000 mal geknackt wurde und der Besitze endlich mal den Key geaendert hat- ich malte mir also keine grossen Chancen aus. Das aenderte sich aber schnell, als das "verbunden"-Signal nach Eingabe der o. g. Zahlenfolge ertoente. Der Besitzer des WLANs hat innerhalb der letzten 2 Jahre seinen Key tatsaechlich nicht geaendert- ich konnte mich also ohne Probleme einwaehlen und mein VPN testen (klappt btw. 1a
Ich meine, selbst wenn man ueberhaupt kein Gefuehl fuer Technologie hat und was Computer-Sicherheit angeht... in den Medien wird man taechlich darauf aufmerksam gemacht (z. B. durch den Sicherheitsgott himself) wie unsicher WLANs sind und wie leicht sie zu knacken sind... selbst Lieschen Mueller sollte in der Lage sein zu merken, dass es hin und wieder mal noetig ist das WLAN PW zu aendern- und wenn man es selbst nicht kann, dann fragt man im Bekanntenkreis nach, ob jemand aushelfen kann (oder Oma fragt ihren Ur-Enkel oder so). Ich denke ich werde nochmal ins WLAN einwaehlen und schauen ob ich den Besitzer identifizieren kann (die SSID ist btw. ein deutscher Nachname) und werde den Besitzer dann mal darauf aufmerksam machen.
Warum muss ich mich rechtfertigen?
Aus gegebenem Anlass frage ich mich gerade wieder, warum ich mich dafuer rechtfertigen muss, das ich $OS einsetze. Gerade wurde mal wieder darueber diskutiert wie scheisse Mac OS X ist und wie geil Linux doch ist und das ich - da ich jetzt ja "Apple Fanboy" bin- mal erklaeren solle was Mac OS X fuer einen Vorteil hat...
Mag sein- vielleicht ist Mac OS X bloatig und macht das System langsam (was mir bis jetzt noch nicht aufgefallen ist)- aber Mac OS X oder auch Windows (was ich auf einem anderen Rechner einsetze) hat fuer mich einfach folgende Vorteile:
Hardware Unterstuetzung:
Ja, ich habs getestet... saemtliche Hardware die hier bei mir rumfliegt funktioniert auf Anhieb mit Mac OS X und Windows- und ja... ich hab Teilweise sehr ausgefallene Hardware. Unter Linux hab' ich immernoch keinen weg gefunden z. B. meinen Blackberry sauber zu synchronisieren (ich meine saube, keine halbbackenen 'Kontakte syncen geht, aber der Rest nicht'-Loesungen). Mein PODxt wird nur von Windows und MacOS X unterstuetzt (klar, das liegt am Hardwarehersteller, aber darum gehts hier halt nicht). Und auch mein Multifunktionsdrucker (Scanner, Drucker, Fax) funktioniert nicht sauber unter Linux. Klar wird $LINUX-Prediger jetzt sagen: "Dann kauf Dir halt Hardware, die unterstuetzt wird"- das will ich aber nicht! Ich habe mir diese Hardware ausgesucht, weil sie das kann, was ich brauche und nicht weil $OS es unterstuezt. Ausserdem funktioniert sie ja sowohl unter MacOSX als unter Windows ohne Probleme- so what?!
Einfache Installation von Software:
Hey.. klar ich hab' schon mehr Software manuell selbst kompiliert als so manches Gentoo automatisiert, aber dennoch fehlt mir einfach die Zeit mich hinzusetzen und erstmal mein komplettes System und meine Software zu kompilieren oder irgendwelche Pakete und die passenden Libs (in der richtigen Version fuers Paket) zusammenzusuchen und zu installieren. Bei Windows lade ich 'n MSI runter, dass alle Programmdaten, Treiber und Libs enthaelt runter und installier es. Fertig! Noch einfacher bei MacOSX- Programm runterladen, entpacken, in den "Applikationen"-Ordner schieben... Fertig!
Softwareunterstuetzung:
Es tut mir ja sehr leid (Ach quatsch! Tut es ueberhaupt nicht), aber ich benoetige halt eine Menge Software in meinem Alltage, die es einfach nicht fuer Linux gibt. Dinge die ich taeglich in Benutzung habe, wie meine Dokumentverwaltung, meine Warenwirtschaftssoftware, Photoshop, Lightroom, Blackberry Sync-Software, einige Audio- und Videoschnittprodukte, etc. gibt es definitiv nicht als Linux-Version. Was jetzt? Drauf verzichten? Kann und will ich nicht. Diese Produkte machen meine taegliche Arbeit am PC effizient und effektiv. Und jetzt kommt mir bitte nicht mit irgendwelchen Alternativen zu PS und LR oder so- ich hab schon so viele Alternativen ausprobiert... keine kann mir den Leistungsumfang und den Komfort bieten, die ich von o.g. Produkten bekomme. Aber hey.. warum auch? Unter MacOSX und Windows funktionieren sie doch?
Preis/Leistung:
Klar, das MacBook ist nicht das guestigste- aber... es ist fuer das was es an Leistung bietet durchaus angemessen im Preis. Die Akkulaufzeit ist faszinierend. Ich hab jetzt schon 5 Laptops durch, aber keins von denen hatte bis jetzt eine Akkulaufzeit von >6 Std. im Normalbetrieb (kein abgeschaltetes WLAN, runtergedrosseltes Display, etc. pp.). Selbst das Dell mit dem fetten Zusatzakku schaffte nur 4.5 Std. im Normalbetrieb. Ausserdem ist das MB handlich und nicht zu schwer- verglichen mit anderen Geraeten in der Groessenklasse.
Das sind einige der Gruede warum ich Mac OS X oder Windows nutze. Ist ja nicht so, dass ich nicht Linux oder Unix nutzen wuerde. Aber fuer mich gilt halt schon seit langem, dass jedes System einen bestimmten Zweck am besten erfuellt. Auf meinem Fileserver laeuft CRUX Linux und ich liebe es, auf meiner Ultra 10 laeuft Solaris 10 und es rockt wie Sau, auf meinem Router laeuft 'n minimales Linux, auf meinen Firewalls OpenBSD, auf meinen Mail- und Webservern laeuft Linux... achso unter der Haube von Mac OS X werkelt ja auch 'n abgewandeltes BSD... und nun? Ich arbeite jetzt seit knapp 13 Jahre mit Linux und Unix und seit knapp 22 Jahren mit Computern... ich denke ich kann einschaetzen welches System fuer mich gut arbeitet und welches nicht. Auf 'nem Desktop habe ich fuer mich festgestellt, dass ich mit Windows und Mac OS X am besten und effizientesten arbeiten kann. Warum also muss ich mich vor euch Predigern mit euer linuxzentristischen Weltsicht anmachen lassen, dass ich $OS fuer $ZWECK einsetze?!
Dieser Blogeintrag bezieht sich btw. nur auf meine pers. Anforderungen an Systeme und OS. Ob sie sich verallgemeinern lassen, geht mir am Arsch vorbei- aber fuer mich stehen sie fest. Ich werde diesen Blog-Eintrag auch auf "moderated" stellen und sinnfreie Kommentare die nichts zum Eintrag beitragen kommentarlos zensieren und loeschen- also versucht es erst garnicht.
New fileserver
The master plan was, to just add a controller and the new disks and move the existing data from the old server (running Solaris 10u2) to the new disks. Sadly I wasn't able to find just one (inexpensive) controller that would work with Solaris. As the 2nd controller I tried didn't work as well, I decided to install Linux instead, as the controller has Linux support.
So my new master plan, was to install CRUX on the new disks. All disks should be built up into a RAID array and the array should be enhancable, in case the I will be running out of free disk space again. What would I need? Not much... A CRUX installation CD, mdadm, and some luck
The CRUX installation CD booted and luckily directly found the 4 SATA disks as sda-sdd. So the first step was to create 3 partitions on all 4 disks (well, actually only on sda, as sfdisk did it on the other 3 disks
After the usual installation and kernel building stuff, I finally had to configure LILO with the extra-raid-options and execute it. That's it... CRUX has been installed on /dev/md0 and is ready to go. After a reboot, the system came up as expected and I could start the LVM2 installation, so that I can work with volumes instead of partitions. I only set up LVM for /dev/md2 (which is the RAID5) and it works like a charme. Now my file server is ready and can take data from my workstation and laptop again
Summary: A really quick way to build a file server with cheap hardware and really small efforts, is easily done with CRUX, mdadm and LVM.
Working with Mac OS X
I've tried out a bunch of software, but I think that I finally found the configuration that works best for me:
- Browser: Safari (with some plugins from www.pimpmysafari.org)
- Mail: Apple's Mail.app (with GPGMail)
- Calendar Application: Apple's iCal.app (with SpanningSync to sync my Google Calendar)
- IRC/IM: Colloquy, Skype, PSI
- Audio-Player: Cog
- Terminal: iTerm with zsh/screen
- Mobile sync: PocketMac
- Office stuff: iWork '08
- Programming: vim
- Photography stuff: Lightroom, Photoshop
That's all I need for efficient working and I have to admit, that on Mac OS X you can work very efficient. All in all I am very pleased with my new toy (especially the battery duration is awesome: >5 hours while working as usual).


