Kategorie-Archiv: Allgemein

Merkwürdige Veränderung im Ubuntu lucid iptables redirect target

Nach dem letzten Update eines Ubuntu Servers stellte ich plötzlich eine Änderung der Funktionsweise von iptables fest: Bei einem REDIRECT wurde plötzlich als Ziel nicht mehr die ursprüngliche Destination-IP der Verbindung benutzt, sondern die Destination-IP wurde durch die erste IP des Interfaces ersetzt. Das hat dazu geführt, dass ich bei meinem redirect immer nur ein connection refused bekommen habe, denn auf der ersten Interface Adresse gab es den Dienst nicht. Ärgerlicherweise ist es aber auch genau so in den manpages beschrieben (auch schon in hardy, ich habs nachgeguckt):

This target is only valid in the nat table, in the PREROUTING and OUTPUT chains, and user-defined chains which are only called from those chains. It redirects the packet to the machine itself by changing the destination IP to the primary address of the incoming interface (locally-generated packets are mapped to the 127.0.0.1 address).

Mac OS X Safari ssh-Links

Die Mac OS X Terminal.app ist zwar schön, zum ständigen verwenden finde ich aber iTerm besser gelungen. Leider hat man durch Verwendung von ssh://-Links im Safari aber dann trotzdem oft die Terminal.app auf und verwendet beides parallel. Insgesamt keine schöne Situation. Seit Snow Leopard gibt es außerdem noch eine Warnmeldung aus Terminal.app, sobald man etwas via ssh-Link öffnet, die Vorauswahl steht auf “nicht zulassen”. Vielleicht mag es etwas sicherer sein noch mal nachzufragen, es nervt aber einfach tierisch.

Abhilfe schafft RCDefaultApp, damit kann man in den Systemeinstellungen die Anwendung für ssh-Links einfach auf iTerm umschalten und schon ist man aus dem Schneider.

Installation ist einfach: Runterladen, dann die .prefPane-Datei aus dem dmg nach ~/Library/PreferencePanes/ kopieren und über Systemeinstellungen “Programmzuordnungen” darauf zugreifen.

Alle E-Mails an eine Adresse zustellen mit Exim

Von Entwicklungs- oder Stagingservern aus möchte man in der Regel keine E-Mails an Kunden raussenden. Das aber in einer (bestehenden) Anwendung zu berücksichtigen kann aufwändig und fehleranfällig sein. Besser wäre es doch, direkt den Mailserver die Mails abzufangen, noch bevor diese irgendwie zugestellt werden können. Die E-Mails kann man sich dann noch gleich zu einer eigenen Mailbox weiterleiten lassen um den Inhalt beim Testen schon mal zu Gesicht zu bekommen.

Hier nun ein Beispiel wie man so eine Konfiguration mit Debian/Ubuntu realisieren kann:
In der Datei /etc/exim4/exim4.conf.template gibt es einen REWRITE CONFIGURATION Abschnitt.
Nach dem begin rewrite kann man dann in der nächsten Zeile eine oder mehrere Regeln einfügen. Für den beschriebenen Fall könnte das dann so aussehen:
*@* devilhopper@example.com tT

Es gibt auch noch andere Flags als tT (das überschreibt alle To-Felder in der Mail). Eine Liste der Flags gibts im Exim-Manual.

Damit die Konfiguration aus dem Template in eine Exim-Konfiguration übersetzt wird, muss dann noch ein update-exim4.conf ausgeführt werden und mit /etc/init.d/exim4 restart Exim selbst neugestartet werden.

Mailserver IPv6 WTF

Bei IPv6 treten an allen Ecken wohl immer mal wieder kleinere Problemchen auf mit denen man nicht so direkt rechnet:

Ein Server bekommt per Autoconf eine v6 Adresse zugewiesen.
Auf dem Server läuft ein Mailserver. Eine E-Mail soll an einen Mailserver mit v6 Adresse gesendet werden. Der Server merkt dass er eine globale IPv6 hat, schaut demnach erstmal ob es einen AAAA-Record für den Ziel Server gibt. Gibt es (z.B. bei freenet.de). Also versuchen wir mal direkt über v6 zu senden. Klappt leider nicht weil unsere Autoconf Adresse kein RDNS hat und der Mailserver nicht so schlau ist vielleicht auch mal über v4 zu senden.

Also Merke: Entweder Autoconf disablen, eine statische IPv6 Adresse setzen und RDNS Einträge setzen oder beides sofern man v6 wirklich auf einem Server nutzen möchte. Autoconf ist zwar gut gemeint aber irgendwie bei Servern dann doch ein bisschen fehl am Platz.

Ein Howto wie man Autoconf deaktiviert findet sich z.B. hier.

Linux: newusers statt usermod/useradd/usermod

Kurze Notiz: Wenn man versucht mit useradd/userdel/usermod viele Linux User auf einem System (automatisch) zu verwalten wird man ziemlich schnell eine böse Überraschung überleben. Die Skripte werden sehr langsam sein und es wird ab und an mal Fehler geben weil für /etc/passwd, /etc/groups oder /etc/shadow kein lock angelegt werden kann. Insgesamt ein sehr unbefriedigendes Ergebnis.

Eine “Lösung” könnte sein sich selbst etwas zu schreiben, dass die entsprechenden Einträge in /etc/passwd und /etc/shadow direkt anlegt und verändert. Eine saubere Lösung ist das aber mit Sicherheit nicht (wenn man Pech hat schießt man sich damit seine kompletten Benutzertabellen tot, das will man in der Regel eher vermeiden ;-)).

Vor ein paar Wochen ist mir dann das Unix Tool newusers aufgefallen. Ein Howto dazu habe ich hier gefunden. Soweit ein super Tool dass fast die gesamte Benutzerverwaltung erledigen kann, ein weiterer Vorteil ist, dass es bei den meisten Distributionen direkt dabei ist. Viel besser gehts also nicht! Ich empfehle jedem der User per Skript verwaltet sich das Tool mal anzusehen – es lohnt sich!

Apple Store Oberhausen

Heute bin ich wagemutig mit meiner Freundin zur Eröffnung des Apple Store in Oberhausen gefahren! Ehrlich gesagt habe ich nicht mit diesem Volksfest ähnlichen Andrang gerechnet. Bisher waren wir noch nicht drin, wir beschäftigen uns noch etwas im Centro bis die Schlangen kürzer werden.

Ich habe auch ein paar Bilder gemacht:

Mac OS X iPhone Tethering nur per USB

Ich hatte nun schon etwas länger das Problem, dass ich mit meinem Macbook mit OS X 10.6.4 und meinem iPhone kein Tethering mehr per Bluetooth hinbekommen habe. Per USB ging das komischerweise. Auch mit meinem neuen iPhone hat es noch nicht geklappt. Der Verdacht lag also nahe dass es irgendwie mit OS X zusammen hängt.
Nach ein bisschen Recherche habe ich nun im Blog von Peter Pfläging die Lösung für das Problem gefunden.

Bei mir bestand das Problem darin, dass ich zwar verbinden konnte, das IPhone auch aktive Tethering angezeigt hat aber keine Verbindung zu bekommen war. Systemeinstellungen->Netzwerk auf dem Macbook hat dann auch “Keine IP Adresse” unter Bluetooth-PAN angezeigt.

Die Lösung von Peter Pfläging für das Problem sieht so aus, dass man unter OS X eine neue Umgebung fürs Netzwerk erstellt. Nach dem Auswählen der neuen Umgebung kann man dann alle Geräte/Schnittstellen außer Bluetooth PAN löschen und damit dann verbinden.
Bei mir hat danach allerdings dann auch eine Verbindung über die Umgebung automatisch funktioniert?! Ob das so bleibt (nachdem ich dann wieder zu einem anderen Netz verbunden habe) weiß ich allerdings nicht.

Falls nicht würde ich mal ausprobieren, ob man auch auf DHCP verzichten kann. Die Einstellungen würden dann (zumindest bei meinem iPhone) so gewählt werden:
IP: 172.10.20.4
Netmask: 255.255.255.240
GW: 172.10.20.1

Als DNS-Server kann man dann z.B. die DNS Server von Google verwenden. Das wäre dann 8.8.8.8 und 8.8.4.4.
Ob die manuelle Einstellung dann allerdings das Problem löst müsste ich mal ausprobieren wenn das Problem wieder auftritt.

Idee: Google Maps Mashup, Straßen nach Wahlergebnis für Partei…

Bei der letzten Landtagswahl fand ich die Auflistung der Wahlergebnisse nach Stimmbezirk durchaus interessant. Ich behaupte, man kann an den Wahlergebnissen zum Teil schon ablesen wie sympathisch einem ein Stadtteil sein wird. Das wäre z.B. interessant wenn man neu in eine Stadt kommt und sich schon einmal grob orientieren möchte oder wenn man eine neue Wohnung sucht.

Meine Idee dazu ist nun, die Google Maps API und den CSV Export der Stadt für die Wahlergebnisse (Rohdaten, Infos zur Schnittstelle) zu nutzen. Damit könnte man dann anhand einer Vorauswahl (welche Partei(en) finde ich gut bzw. in welche Hochburg möchte ich auf keinen Fall) die Stadtkarte je nach Wahlergebnis (relativ zum Durchschnittswert der gesamten Stadt) unterschiedlich markieren. Mit der API habe ich vor einiger Zeit schon mal ein bisschen rumprobiert und im Grunde ist sowas nicht wirklich schwierig, das Ausprobieren kostet nur eben Zeit. Aber sobald mal wieder ein bisschen Zeit für solche Spielereien ist, werde ich das wohl mal ausprobieren. Für mich klingt es jedenfalls nach einem spannenden kleinen Projekt.