Datenhaufen zu IT und Elektronik.

Autor: Sebastian van de Meer (Seite 47 von 49)

Skoda Octavia LPG

Der alte Firmenwagen (Fabia II TDI Sport / 2,5 Jahre / 120.000KM / zweiter Motor) steht mehr in der Werkstatt als er mir zur Verfügung steht, Diesel ist auch nicht mehr so günstig wie es mal war und von der jährlichen Steuerzahlung ganz zu schweigen. Zusätzlich beansprucht mein Nachwuchs mehr Platz im Auto. Aus all diesen Gründen muss ein neuer Firmenwagen her, so zumindest die Entscheidung von meinem Chef (ich kann/konnte/wollte und habe mich natürlich dieser Entscheidung angeschlossen).

Also etwas telefoniert und dann geschlossen auf zum Autohaus unseres Vertrauens (Autohaus Weiner in Bochum – Wattenscheid). Hier wurde unserer Idee einen neuen Firmenwagen zu leasen natürlich freudig aufgenommen.

Alle unsere Firmenwagen waren und sind von Skoda. Bisher sind alle mit dem Skoda Preis- / Leistungsverhäldnis zufrieden. Besonders Diskussionen hinsichtlich der Herstellermarke gab es daher nicht mehr. Da der Octavia bei uns auch hinlänglich bekannt war und gefahren wurde, ja daher sollte es wohl ein Octavia werden! Welcher genau? Das war nun noch die große Frage!

— Im Unterhalt bitte günstig 😀 —

Günstig… in der Nähe unseres Firmenparkplatzes hat eine Autogastankstelle (LPG) eröffnet, irgend so ein „Kleinanbieter“ GG-Autogas. Hier gibt es eine Kundenkarte, mit dieser kann man Tanken und am Ende des Monats bekommt die Firma eine Abrechnung. Zudem bekommt man noch 2 Cent Rabatt auf jeden Liter. Ganz cool also….

Aber Autogas? Mehr Verbrauch bei weniger Leistung und dann noch die Tankstellensuche? Zu dem wie schwachbrüstig ist so eine LPG Kiste genau? Glücklicherweise hatte Weiner einen Octavia LPG. Diesen haben wir dann gleich mal zur Probefahrt ausgeliehen. Meinen Chef und mich hat dieses Auto überzeugt! Daher wurde dieser unser neuer Firmenwagen….

Inzwischen bin ich schon einige Zeit mit der Kiste unterwegs und kann Rede und Antwort zu den gängigsten Fragen stehen. Die Kiste hat über 100 PS, auf Gas verliert man 3 – 4 PS. Dieses fühlt man nicht wirklich. Man merkt es klar auf der Autobahn bei der Endgeschwindigkeit. Hier ist auf Benzin (je nach Wetterlage) etwas um die 5 – 10 km/h mehr möglich. Im Grunde mit dem einschalten der Klimaanlage zu vergleichen 😛

Der Gastank ist dort verbaut, wo normalerweise der Ersatzreifen seinen Platz gefunden hätte, ich habe von allen möglichen Details Bilder gemacht, diese sind weiter unten zu finden. Der Tankstutzen ist recht formschön zusammen beim Tankstutzen fürs Benzin verbaut. Man muss also nicht zum Tanken unter das Auto kriechen, das Nummernschild verdrehen oder das Gas irgendwo in die Stoßstange quetschen. Zum Auto gibt es dann noch zwei interessante Adapter für die verschiedenen Tankrüssel, bei mir in einer dafür viel zu kleinen Tüte, so wie irgendwelche Gaszertifikate. Die Tankanzeige vom Gastank ist vor dem Schaltknüppel in der Mittelkonsole angebracht. Vom Design her passt sie nicht zu 100 Prozent zum Rest des Wagens, schaut denn noch nicht fehlplatziert aus. Die Tankanzeige wird durch blaue LEDs dargestellt. Ein gelbe blinkende LED zeigt einem an, dass auf Gasbetrieb umgestellt wird, dauerhaftes Leuten bedeutet, du fährst mit Gas 😀 Kurz bevor der Gastank leer ist, leuchtet eine rote LED auf. Ist der Tank leer piepst die Anzeige lautstark und schaltet automatisch auf Benzin um. Benzin wird zum Starten des Motors benötigt und so lange bis der Motor auf Betriebstemperatur ist, dann wird automatisch auf Autogas umgeschaltet. Davon bekommt man aber nicht wirklich etwas mit, es knackt nur kurz ein Magnetventil im Kofferraum. Will man bewusst auf Benzin fahren, lässt sich das an der Anzeige durch einen Knopfdruck umschalten!

Die Verbrauchsanzeigen usw. des Boardcomputers funktionieren tadellos mit Gas oder Benzin. Im Gasbetrieb verbraucht ich naturgemäß etwas mehr Kraftstoff als mit Benzin. Da ich mit um die 0,60 Euro pro Liter dabei bin ist das mehr als ok! Ich fahre den 40 Liter Tank in knapp 300 km Leer, mehr Reichweite ist halt nicht. Da wir die Gas Tankstelle direkt vor der Nase habe, ist das aber kein Problem. Zudem gibt es mehr Autogastankstellen als man so meinen würde. In Europa muss man sich sicherlich keinen Kopf machen, mit leerem Gastank irgendwo liegen zu bleiben. Zudem kann man ja auch weiterhin mit einem 50 Liter Benzintank fahren.

Benzintank…. Bei 0,2 km auf dem Tacho habe ich den Benzintank vollgetankt. Bei ca. 8000 km musste Benzin nachgetankt werden, das finde ich ok! Im Grunde merkt, sieht oder riecht man keinen Unterschied ob man nun Gas oder Benzin fährt!

Im Motorraum schaut alles gut verbaut und sauber aus. Durch die Gasanlage scheint die, normalerweise vorhandene, Motorabdeckung nicht mehr zu passen. Ich vermisse diese nicht weiter!

Geräusche? Puhh, ich bin vorher Diesel gefahren! Ich habe die ersten km an jeder Ampel gedacht die Kiste ist aus. Kein wackeln kein Brummen kein überhaupt nichts.

Die Motorleistung ist ausreichend, jedes PS mehr wäre nur für den Spaßfaktor gut, sollte aber auch nicht kleiner sein! Auf der Bahn sind 200 und etwas mehr auch schon mal möglich…. Das Auto fährt sich super und ich bin absolut zufrieden damit (hier noch mal Dank an den Chef).


Hier nun die versprochenen Bilder…


* Update 10.10.2012 *

So ich bin nun bei knapp 55000km.. Bisher bin ich noch sehr zufrieden mit dem Auto. Er hatte zwar ein kleines „Problemchen“ mit der Gasanlage, diese konnte aber gelöst werden.
Er Meldete immer dass er sporadisch zu fett oder sporadisch zu mager läuft. Mein Autohaus tippte auf die Lambdasonde. Diese wurde mehrfach Ö_ö getauscht, brachte aber keine Besserung. Denn nach kurzer Zeit tauchte dieser Fehler wieder auf. Da mein Autohaus noch keine weiteren Erfahrungen mit einem LPG Auto hatte, hat dieses ein befreundetes Autohaus um Rat gebeten. Hier wurde ein Softwareupdate eingespielt. Dieses half leider ebenfalls nicht.
Erst der etwas längere Ausflug meines Autos zum Skoda Werk brachte eine Verbesserung. Im Grunde wurde dabei der komplette Gasstrang vom Tank bis zum Motor getauscht.
Da alles noch innerhalb der Garantie war und sich mein Autohaus sehr viel Mühe gegeben hat war es auszuhalten.
Man sollte also sicherstellen dass sein Autohaus auch wirklich mit LPG Autos umgehen kann.


 * Update 08.03.2013 *

Es gibt ein neues Auto 🙂 Heute wandert der gute alte Octavia zum Autohaus und ich bekomme einen nagelneuen Skoda Yeti TDI 2.0. Ich kann es kaum abwarten! Gas war toll und nun doch wieder Diesel…. Oh ja und natürlich wieder beim Autohaus Weiner in Bochum Wattenscheid!

 

 

Spam- und Virenabwehr durch HELO: So funktioniert’s

Zu überprüfen ob die Angaben des Absenders, des Empfängers oder der Clients stimmen, ist für Postfix recht einfach. Es ermöglicht das schnelle „Ausfiltern“ von Spam- und Virenversendern.

Als Beispiel:

Wenn jemand versucht eine E-Mails an mich zu verschicken, und als Absender eine Domain angibt, die im DNS keinen A-Record oder keinen MX eingetragen hat, werde ich auf diesen Absender niemals antworten können. Eine solche E-Mail kommt fast ausschließlich von Viren- und Spamversendern, welche sich Absenderdomains ausdenken müssen. Ähnlich verhält es sich mit der Angabe des Clienthostnames. Ordentlich konfigurierte Mailserver melden sich mit ihrem FQDN und der Revers-DNS Eintrag passt zu diesem. Gekaperte Rechner eines Botnetzes melden sich maximal mit dem Namen, welcher vom Besitzer eingegeben wurde (Peters Wohnzimmerhobel)… Selbst wenn der FQDN passt, wird der Botnetzbetreiber kaum beim ISP des gekaperten Rechners einen passenden Reverse-DNS setzten lassen. Bei Verbindungen aus dynamischen IP-Netzten, sprich A-DSL T-COM 0815 Internetverbindungen, ist der Hostname meist nicht mal in einem gültigen Format. Warum auch? Dieses können wir uns zunutze machen, indem wir hier schon aussortieren. Fällt doch mal ein gewünschter Absender unter diese Restriktionen, hat dessen Admin meist nicht sauber gearbeitet. Der Admin und der Absender der E-Mail werden über passende Rückmeldungen und Logeinträge auf diesen Punkt aufmerksam gemacht!

Diese Filtermethode ist recht effektiv (30 – 55 Prozent Spam und Viren fliegen hier schon weg), einfach und sicher.

Eine erste grobe und einfache Konfiguration läuft so….

In der Datei /etc/postfix/main.cf müssen folgende beiden Zeilen ergänzt werden:

smtpd_helo_required = yes
smtpd_delay_reject = yes

smtpd_helo_required gibt vor, das unser Server immer und von jedem ein helo erwartet. Ist smtpd_delay_reject auf yes gesetzt führt Postfix die UCE-Filterung erst nach dem „RCPT TO:“ aus. Würde dieses nicht so sein, hätten einige SMTP Clients von z.B.: Microsoft damit arge Probleme.

Die einzelnen Beschränkungen legen wir passend unter den einzelnen Optionen an, was welche bewirkt erkläre ich unten….

Unter smtpd_recipient_restrictions:

        reject_unlisted_recipient,
        reject_non_fqdn_recipient,
        reject_non_fqdn_helo_hostname,
        reject_non_fqdn_hostname,
        reject_non_fqdn_sender,
        reject_unknown_recipient_domain,
        reject_unknown_client_hostname,
        reject_unknown_helo_hostname,
        reject_unknown_client,
        reject_unknown_recipient_domain,
        reject_unknown_sender_domain,
        reject_unauth_destination,
        reject_invalid_helo_hostname,
        reject_invalid_hostname,

Wichtig ist hier die Einrückung sowie Beachtung des Komma!

reject_non_fqdn_sender
Weist den Absender der E-Mail zurück, wenn dieser nicht in FQDN Form angegeben wurde.

reject_non_fqdn_recipient
Weist den Empfänger der E-Mail zurück, wenn dieser nicht in FQDN Form angegeben wurde.

reject_non_fqdn_hostname
Weist E-Mails zurück, wenn der Clientname nicht in FQDN Form angegeben wurde.

reject_invalid_hostname
Weist E-Mails zurück, wenn der Clientname nicht in einem gültigen Format angegeben wurde.

reject_unknown_recipient_domain
Weist die Anfrage zurück, wenn die angegebene Domain (RCPT TO) des Empfängers im DNS keinen Eintrag vom Typ A oder MX hat.

reject_unknown_sender_domain
Weist die Anfrage zurück, wenn die angegebene Domain (MAIL FROM) des Absenders im DNS keinen Eintrag vom Typ A oder MX hat.

reject_unlisted_recipient
Weist die E-Mail zurück, wenn der Empfänger nicht in der Liste der gültigen Empfängerdomains aufgeführt ist.

reject_unauth_destination
Weisst die E-Mail zurück:
  – wenn Postfix als relay Host arbeitet und die angegebene Empfängerdomain nicht in der Liste gültiger Weiterleitungsdomains steht.
  – wenn Postfix der Zielserver ist und die angegebene Empfängerdomain nicht in der Liste gültiger Empfänger steht.

reject_unknown_client_hostname
Weisst die E-Mail zurück, wenn Hostname und IP Adresse des einliefernden Mailservers nicht zueinander passen, oder nicht aufgelöst werden können.

reject_invalid_helo_hostname
Weisst die E-Mail zurück, wenn der im HELO oder EHLO angegebene Hostname fehlerhaft ist. Damit Clients diesen Test nicht einfach umgehen können, indem sie kein HELO/EHLO senden sollte die Option smtpd_helo_required = yes gesetzt werden.

reject_non_fqdn_helo_hostname
Weisst die E-Mail zurück, wenn der im HELO oder EHLO angegebene Hostname kein fqdn nach RFC ist.  Damit Clients diesen Test nicht einfach umgehen können, indem sie kein HELO/EHLO senden sollte die Option smtpd_helo_required = yes gesetzt werden.

reject_unknown_helo_hostname
Weisst die E-Mail zurück, wenn der im HELO oder EHLO angegebene Hostname keinen A oder MX Record hat. Damit Clients diesen Test nicht einfach umgehen können, indem sie kein HELO/EHLO senden sollte die Option smtpd_helo_required = yes gesetzt werden.

reject_unknown_client
Weisst die E-Mail zurück, wenn Host-IP Adresse und der Hostname des einliefernden Mailservers nicht zueinander passen, oder nicht aufgelöst werden können.

Nach einem Restart von Postfix kann man nun im Logfile schon die Wirkung der Beschränkungen bewundern:

tail -f -n 200 /var/log/mail.log

Hier versucht der Client „userpc“ mit der IP: 94.52.112.110 (GeoIP City Edition, Rev 1: RO, 10, Bucharest, (null), 44.433300, 26.100000, 0, 0) eine E-Mail einzuliefern. Da aber userpc kein FQDN ist, wird die Verbindung vom Server mit einem 504 zurückgewiesen. Der Vorteil von Errorcodes aus dem Bereich 5XX ist das wir (also der angesprochene Server) die Verbindung sofort beenden können, ohne auf den Client zu warten. Damit werden Verbindungen sofort wieder freigegeben und stehen anderen Verbindungen zur Verfügung.

Jun 7 17:50:35 smtp postfix/smtpd[22037]: NOQUEUE: reject: RCPT from unknown[94.52.112.110]: 504 5.5.2 <userpc>: Helo command rejected: need fully-qualified hostname; from=<MackenzieSaranzak@redvanilla.com> to=<spamemfaenger@spammdomain.de> proto=ESMTP helo=<userpc>
Jun 7 17:50:36 smtp postfix/smtpd[22037]: lost connection after DATA (0 bytes) from unknown[94.52.112.110]

Ich hoffe dieser Beitrag hilft dem einen oder anderen, sich etwas mehr Müll vom Hals zu halten!

Fragen oder Anregungen sehe ich wie immer gerne!


*Update* 22.03.2012

Ich habe inzwischen ein paar Auswertungen gefahren. Dabei zeigte sich, das ich mit folgenden Optionen bereits knapp 96% aller Spam und Virenmails erschlagen kann:

smtpd_recipient_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        check_recipient_access hash:/etc/postfix/recipient-access,
        reject_rhsbl_sender rhsbl.ahbl.org,
        reject_rhsbl_sender cart00ney.surriel.com,
        reject_rhsbl_sender in.dnsbl.org,
        reject_rhsbl_sender rhsbl.sorbs.net,
        reject_rbl_client bl.spamcop.net,
        reject_rbl_client zen.spamhaus.org
        reject_rbl_client ix.dnsbl.manitu.net,
        reject_rbl_client dnsbl.njabl.org,
        reject_rhsbl_client abuse.rhsbl.kernel-error.de,
        reject_rhsbl_client postmaster.rhsbl.kernel-error.de,
        reject_rhsbl_client spam.rhsbl.kernel-error.de,
        reject_rhsbl_sender abuse.rhsbl.kernel-error.de,
        reject_rhsbl_sender postmaster.rhsbl.kernel-error.de,
        reject_rhsbl_sender spam.rhsbl.kernel-error.de,
        reject_rbl_client spam.rbl.kernel-error.de,
        reject_rbl_client socks.dnsbl.sorbs.net,
        reject_rbl_client http.dnsbl.sorbs.net,
        reject_rbl_client misc.dnsbl.sorbs.net,
        reject_rbl_client web.dnsbl.sorbs.net,
        reject_rbl_client new.spam.dnsbl.sorbs.net,
        reject_unlisted_recipient,
        reject_non_fqdn_recipient,
        reject_unknown_recipient_domain,
        reject_unauth_destination,
        reject_unknown_client_hostname,
        reject_invalid_helo_hostname,
        reject_non_fqdn_helo_hostname,
        reject_unknown_helo_hostname,
        reject_invalid_hostname,
        reject_non_fqdn_hostname,
        reject_unknown_client,
        check_policy_service unix:private/tumgreyspf
smtpd_data_restrictions =
        reject_unauth_pipelining,
        permit
unverified_recipient_reject_code = 550
unverified_sender_reject_code = 550
unknown_address_reject_code = 550
unknown_hostname_reject_code = 550
unknown_client_reject_code = 550

Wichtig:

Die Liste *.kernel-error.de ist meine ganz eigene private. Die nur für mich und meine eigenen Zwecke angedacht ist. Als einfachen Test könnt ihr sie natürlich gerne abfragen aber sie sollte niemals produktiv eingesetzt werden. Das wird bestimmt mal Probleme geben. Am besten einfach weg lassen!


Hier hätte ich dann noch die groben Auswertungen der Kiste, die sich um meine privaten Mails kümmert. Ist natürlich mit keinem großem Mailsystem zu vergleichen. Aber die Leute stehen ja so auf bunte Bilder 😛

Greylisting mit Postfix

Greylisting ist ein sehr einfacher und ebenso wirkungsvoller Kniff um sich gegen Spam und Viren zu schützen. 80 bis 90 Prozent der Spammails und fast schon alle Viren werden inzwischen von großen Botnetzen verschickt. Vor allem Betreiber größerer Mailserver bekommen schnell Probleme durch solche Botnetze. Die von großen Botnetzten ausgelösten Spam- und Virenfluten, verstopfen die Mailserver. Dadurch verzögern sich die Zustellungen einzelner E-Mails auf fast schon unbestimmte Zeit. Der bearbeitende Mailserver ist oft damit ausgelastet sich um Spam- und Virenmails zu kümmern.

Wie kann Greylisting hier nun helfen? Im Grunde ganz einfach….

Wenn ein Mailserver das erste Mal versucht einem Mailserver mit Greylisting eine E-Mail zuzustellen, wird diese mit der Bitte abgewiesen, es in ein paar Minuten noch einmal zu probieren. Im gleichen Moment speichert der Mailserver ein so genanntes Tripple. Dieses Tripple besteht aus der E-Mail Adresse des Empfängers, der E-Mail Adresse des Absenders und der IP-Adresse des Clients. Versucht nun der Mailserver nach ein paar Minuten eine erneute Zustellung, wird dieses von unserem greylistingfähigen Mailserver erkannt und die E-Mail wird ohne weitere Verzögerung zugestellt. Was das nun bringen soll? Nun ja, fast alle Botnetze arbeiten nach dem „fire and forget“ Prinzip. E-Mails werden also einfach abgeschickt und dann nicht weiter beachtet. Das liegt daran, dass die Botnetze sehr effektiv arbeiten sollen. In der Zeit, in welcher sich das Botnetz damit befasst eine E-Mail zu puffern und später noch einmal zuzustellen, sich darum kümmert das ein angesprochener Mailserver gerade nicht antwortet oder eine E-Mail Adresse nicht mehr existiert, in dieser Zeit hätte das Botnetz schon mehrere andere Empfänger anschreiben können. Zudem ist die Wahrscheinlichkeit, dass ein Server mit Greylisting auch sonst gut vor Spam geschützt ist und die E-Mail in einem nachgeschalteten Filter sowieso ausgefiltert wird, größer als bei einem anderen Server. Denn hier hat der Admin anscheinend seine Hausaufgaben gemacht. Aus diesen Gründen ist es für einen Botnetzbetreiber einfacher und besser von seinem vermeintlichen Opfer abzulassen und sich mit einem anderen zu beschäftigen!

Mit aktiviertem Greylisting wird nun jede erste Zustellung eines Mailservers verzögert zugestellt. Fast alle Greylistingsysteme sind selbstlernend, d.h.: nach kurzer Zeit landen bereits bekannte Mailserver auf einer whitelist und müssen ab diesem Moment keine Verzögerung mehr erdulden. Greylisting ist zwar in einigen Fällen nutzlos und sicher ist es kein Allheilmittel gegen Spam und Viren, es hält dem Mailserver denn noch sehr viel „Müll“ vom Hals, damit dieser sich um andere Dinge kümmern kann!

Zusammen mit Postfix benutze ich seit längerem schön das Tool postgrey von David Schweikert.

Eine Erste funktionsfähige Implementierung ist unter Debian schon in 5 – 7 Minuten zu realisieren.

Postgrey ist direkt aus dem Paketmanager heraus zu installieren:

apt-get install postgrey

Im Normalfall wird postgrey nach der Installation sofort ausgeführt. Dieses lässt sich recht schnell überprüfen, da es auf dem Port 60000 auf 127.0.0.1 lauscht.

netstat -anp | grep 60000

Sollte hier nun etwas wie:

tcp 0 0 127.0.0.1:60000 0.0.0.0:* LISTEN 2540/postgrey.pid -

zurückgeben….

Um Postfix nun die Nutzung von postgrey näher zu bringen, müssen in der Datei /etc/postfix/main.cf die „smtpd_recipient_restrictions“ um den Eintrag:

check_policy_service inet:127.0.0.1:60000

erweitert werden. Nach einem Postfixrestart sollte das Greylisting schon laufen. Genauer kann man es sich direkt im Logfile anschauen:

tail -f -n 200 /var/log/mail.log

Es wird das erste Mal versucht eine E-Mails einzuliefern. Porstgrey vergibt die action greylist. Postfix antwortet dem einlieferndem Server also mit:: „450 4.2.0 <Testadresse@testdomain.de>: Recipient address rejected: Greylisted, see http://postgrey.schweikert.ch/help/testdomain.de.html“ Alle 4XX Fehler sind als temporäre Fehler deklariert, daher wird es der einliefernde Mailserver in kürze noch einmal probieren!

Jun 7 10:26:29 smtp postfix/smtpd[9268]: connect from static-xxxxxxxxxxxx.de[xxxxxxxxxxxxx]
Jun 7 10:26:40 smtp postgrey[1202]: action=greylist, reason=new, client_name=static-xxxxxxxxxxxx.de, client_address=xxxxxxxxxxxxx, sender=kernel-error@kernel-error.de, recipient=Testadresse@testdomain.de
Jun 7 10:26:40 smtp postfix/smtpd[9268]: NOQUEUE: reject: RCPT from static-xxxxxxxxxxxx.de[xxxxxxxxxxxxx]: 450 4.2.0 <Testadresse@testdomain.de>: Recipient address rejected: Greylisted, see http://postgrey.schweikert.ch/help/testdomain.de.html; from=<kernel-error@kernel-error.de> to=<Testadresse@testdomain.de> proto=ESMTP helo=<smtp.kernel-error.de>
Jun 7 10:26:40 smtp postfix/smtpd[9268]: disconnect from static-xxxxxxxxxxxx.de[xxxxxxxxxxxxx]

Hier ist nun der zweite Einlieferungsversuch des Mailservers! Postgrey erkennt hier schon, den Server. Die Zeit, welche zwischen den Zustellversuchen vergehen muss (default 5 Minuten), ist noch nicht abgelaufen: „reason=early-retry (84s missing)“. Aus diesem Grund wird dem einliefernden Mailserver wieder ein: „450 4.2.0 <Testadresse@testdomain.de>: Recipient address rejected: Greylisted, see http://postgrey.schweikert.ch/help/testdomain.de.html“ zurückgegeben.

Jun 7 10:30:11 smtp postfix/smtpd[9268]: connect from static-xxxxxxxxxxxx.de[xxxxxxxxxxxxx]
Jun 7 10:30:16 smtp postgrey[1202]: action=greylist, reason=early-retry (84s missing), client_name=static-xxxxxxxxxxxx.de, client_address=xxxxxxxxxxxxx, sender=kernel-error@kernel-error.de, recipient=Testadresse@testdomain.de
Jun 7 10:30:16 smtp postfix/smtpd[9268]: NOQUEUE: reject: RCPT static-xxxxxxxxxxxx.de[xxxxxxxxxxxxx]: 450 4.2.0 <Testadresse@testdomain.de>: Recipient address rejected: Greylisted, see http://postgrey.schweikert.ch/help/testdomain.de.html; from=<kernel-error@kernel-error.de> to=<Testadresse@testdomain.de> proto=ESMTP helo=<smtp.kernel-error.de>
Jun 7 10:30:16 smtp postfix/smtpd[9268]: disconnect from static-xxxxxxxxxxxx.de[xxxxxxxxxxxxx]

Jetzt kommen wir zum dritten Einlieferungsversuch. Postgrey findet das Tripple und die minimale Zeit zwischen den Zustellversuchen ist inzwischen vergangen. Daher bekommen wir die action pass, welche Postfix zur Annahme der E-Mail bringt! Die E-Mail wurde zugestellt! Postgrey wird sich diesen Vorgang nun für (default) 35 Tage speichern. Aus dieser Merkliste wird postgrey nun lernen und das Greylisting wird Stück für Stück, bei bekannten Kombinationen, verschwinden!

Jun 7 10:32:34 smtp postfix/smtpd[9827]: connect from static-xxxxxxxxxxxx.de[xxxxxxxxxxxxx]
Jun 7 10:32:35 smtp postgrey[1202]: action=pass, reason=triplet found, delay=355, client_name=static-xxxxxxxxxxxx.de, client_address=xxxxxxxxxxxxx, sender=kernel-error@kernel-error.de, recipient=Testadresse@testdomain.de
Jun 7 10:32:35 smtp postfix/smtpd[9827]: 6B271904DA4C: client=static-xxxxxxxxxxxx.de[xxxxxxxxxxxxx]
Jun 7 10:32:35 smtp postfix/cleanup[10999]: 6B271904DA4C: message-id=<584E00FCBBB4684XXXXXXD0119300F37D4@smtp.kernel-error.de>
Jun 7 10:32:35 smtp postfix/qmgr[1637]: 6B271904DA4C: from=<kernel-error@kernel-error.de>, size=5104, nrcpt=1 (queue active)
Jun 7 10:32:36 smtp postfix/smtpd[9827]: disconnect from static-xxxxxxxxxxxx.de[xxxxxxxxxxxxx]

Hier ist nun ein Beispiel für einen Vorgang, bei welchem der Client schon eingelernt wurde.

Jun 18 11:43:40 smtp postfix/smtpd[17392]: connect from www.XXX.nrw.de[193.xxx.xxx.xxx]
Jun 18 11:43:55 smtp postgrey[1203]: action=pass, reason=client AWL, client_name=www.XXX.nrw.de, client_address=193.xxx.xxx.xxx, sender=xxxxxxxxxxxxx@uni-wuppertal.de, recipient=kernel-error@kernle-error.de
Jun 18 11:43:55 smtp postfix/smtpd[16425]: B1613904DA46: client=www.XXX.nrw.de[193.xxx.xxx.xxx]
Jun 18 11:43:55 smtp postfix/cleanup[18052]: B1613904DA46: message-id=<2A15E2XXXXXXXXXX9A17CF771D007BDC@men>
Jun 18 11:43:55 smtp postfix/qmgr[1643]: B1613904DA46: from=<xxxxxxxxxx@uni-wuppertal.de>, size=79646, nrcpt=1 (queue active)
Jun 18 11:43:55 smtp postfix/smtpd[16425]: disconnect from www.XXX.nrw.de[193.xxx.xxx.xxx]

Ich hoffe dieser Beitrag hilft dem einen oder anderen, sich etwas mehr Müll vom Hals zu halten!

Fragen oder Anregungen sehe ich wie immer gerne!

RBL und Postfix…

Realtime Blackhole List (RBL) oder DNS-based Blackhole List (DNSBL) als Spam- und Virenabwehr für Postfix? Diese Frage habe ich mir des öfteren gestellt. Ich sehe hier sehr klare Vorteile genauso wie Nachteile.

Der wirklich große Vorteil ist, dass wenn ein Client auf einer Blacklist steht, dieser sofort abgewiesen wird. Der Mailserver muss also erst überhaupt keine E-Mail annehmen, sich lange mit dem Client unterhalten, irgendwas filtern, auf das Beenden der Verbindung vom Client aus warten usw. usw…
Als Admin großer Mailserver wünscht man sich so etwas.

  • Denn hält ein Client die Verbindung bis zum Timeout offen, ist dieser Prozess für andere eingehende Verbindungen nicht zu gebrauchen. Einem läuft also die Tabelle voll.
  • Jede Spam- oder Virenemail die eingeliefert wird, verschwendet Traffic und Serverzeit.
  • Jede Spam- oder Virenemail im System beschäftigt dieses auch. Die E-Mail wird zwischengelagert, verschoben, gefiltert, überprüft, verglichen usw.. Sie nimmt echten E-Mails den Platz weg, diese müssen auf die Verarbeitung von Müll warten, alles verschleppt sich. Es entstehen Mailstaus, die Zustellung gewünschter E-Mails wird bis auf ungewisse Zeit verzögert!

Der für mich große Nachteil ist, dass man sich auf andere ~blind~ verlässt.

  • Ich kann die Blacklisten nicht wirklich überprüfen, es ist für mich zudem nicht wirklich transparent.
  • Hin und wieder landet auch mal ein System „versehentlich“ auf einer solchen Liste.
  • Ob und wie dieses System wieder von einer solchen Blackliste herunter kommt, kann ich nicht wirklich beeinflussen.

Es gibt zwar Wege, sich selbst eine solche Liste anzufertigen!
Einer ist, eine E-Mail Adresse überall dort zu veröffentlichen, wo sie vermeintliche Spammer einsammeln können. Jeder der dann an diese Adresse eine E-Mail sendet landet auf der Blackliste. So würde sich diese Liste selbst pflegen lassen. Es wird aber lange dauern bis sie wirklich effektiv arbeitet und der Spammer muss natürlich zuerst die „Sammeladresse“ anschreiben. Hier sind die großen Listen von spamhaus.org oder die Listen mit den dynamischen IP-Netzten schon viel viel viel weiter, wenn man sich auf diese verlassen möchte!

Ich habe es erst an einem Testsystem probiert und später Stück für Stück auf die echten Systeme ausgebreitet. Dieses mit überwältigendem Erfolg! ca. 80 – 90 Prozent aller Viren- und Spammails werden schon beim Einlieferungsversuch abgewiesen. Die Belastung der Server ist stark zurück gegangen. Bisher hat sich noch kein Kunde beschwert und mir ist kein Problem aufgefallen, wie Mailverlust, Falschabweisung oder ähnliches…. Diese Lösung ersetzt ganz klar keine nachgeschalteten Filter und man sollte alles im Auge behalten, hält einem denn noch extrem viel Müll vom Hals!

Die erste grobe Konfiguration ist schnell und einfach gemacht….

Die zu befragenden Server trägt man in die passenden Sektionen der Konfigurationsdatei /etc/postfix/main.cf ein.

Unter smtpd_recipient_restrictions

        reject_rhsbl_sender rhsbl.ahbl.org,
        reject_rhsbl_sender cart00ney.surriel.com,
        reject_rhsbl_sender in.dnsbl.org,
        reject_rhsbl_sender rhsbl.sorbs.net,
        reject_rbl_client bl.spamcop.net,
        reject_rbl_client zen.spamhaus.org
        reject_rbl_client ix.dnsbl.manitu.net,
        reject_rbl_client dnsbl.njabl.org,
        reject_rhsbl_client abuse.rhsbl.kernel-error.de,
        reject_rhsbl_client postmaster.rhsbl.kernel-error.de,
        reject_rhsbl_client spam.rhsbl.kernel-error.de,
        reject_rhsbl_sender abuse.rhsbl.kernel-error.de,
        reject_rhsbl_sender postmaster.rhsbl.kernel-error.de,
        reject_rhsbl_sender spam.rhsbl.kernel-error.de,
        reject_rbl_client spam.rbl.kernel-error.de,
        reject_rbl_client socks.dnsbl.sorbs.net,
        reject_rbl_client http.dnsbl.sorbs.net,
        reject_rbl_client misc.dnsbl.sorbs.net,
        reject_rbl_client web.dnsbl.sorbs.net,
        reject_rbl_client new.spam.dnsbl.sorbs.net,

Wichtig:

Die Liste *.kernel-error.de ist meine ganz eigene private. Die nur für mich und meine eigenen Zwecke angedacht ist. Als einfachen Test könnt ihr sie natürlich gerne abfragen aber sie sollte niemals produktiv eingesetzt werden. Das wird bestimmt mal Probleme geben. Am besten einfach weg lassen!


Beim Eintragen muss auf das Komma geachtet werden und darauf dass die Einträge eingerückt werden. Sonst wertet Postfix diese als eigenständigen Eintrag, welcher zu Fehlern führen wird!

Ist ein Mailserver „versehentlich“ auf einer Blacklist gelandet wird sich der Administrator des Mailserver natürlich irgendwann wundern, warum sein Mailserver kaum noch E-Mails ausliefern kann. Diesem Administrator wollen wir natürlich die Arbeit etwas erleichtern und sorgen für klare Logeinträge in seinem System. Zudem sollten die Absender auch etwas sinniges bekommen. Daher setzten wir eine Standardrückmeldung für alle Systeme, welche aufgrund der Blackliste abgelehnt werden! Es muss in der Konfigurationsdatei /etc/postfix/main.cf etwas in dieser Art ergänzt werden:

default_rbl_reply = $rbl_code Service unavailable; $rbl_class [$rbl_what] blocked using $rbl_domain${rbl_reason?; $rbl_reason}; !!!! Forward this EMail to -YOUR- System Administrator !!!!; You can reach -OUR- System Administrator by postmaster@$recipient_domain; So long.....

 

Wird die Annahme der E-Mail nun verweigert, bekommt der Absender eine sinnige E-Mail. In dieser steht nun der Grund und dass er die Nachricht bitte an seinen Administrator weiterleiten soll (dieser sollte in der Lage sein sie auch zu verstehen). Zusätzlich wird noch angegeben unter welcher E-Mail Adresse man den Postmaster des Empfängers erreichen kann.

Nach einem Restart von Postfix sollte RBL schon laufen.

tail -f -n 200 /var/log/mail.log

 

Wie gut zu erkennen ist, baut ein Clientsystem mit der IP: 66.220.155.147 (GeoIP City Edition, Rev 1: CA, ON, Petrolia, (null), 42.883301, -82.150002, 0, 0) eine Verbindung zu unserem Mailserver auf. Dieses System befindet sich nun auf eine Blacklist oder kommt aus einem dynamischen Adressbereich, welche auf einer Blacklist steht. Es wird daher sofort ein 554 gesendet. Alle Fehlercodes aus dem Bereich 5XX sind als dauerhafte/fatale Fehlercodes deklariert. Bei allen Fehlern aus dem Bereich 5XX baut unser Server direkt die Verbindung ab und wartet nicht auf ein Beenden der Verbindung vom Client. Diese Verbindung wird somit sofort freigegeben und steht anderen Prozessen zur Verfügung.

Oct 31 16:19:16 postfix/smtpd[7308]: connect from outmail013.ash2.facebook.com[66.220.155.147]
Oct 31 16:19:18 postfix/smtpd[7308]: NOQUEUE: reject: RCPT from outmail013.ash2.facebook.com[66.220.155.147]: 554 5.7.1 Service unavailable; Client host [66.220.155.147] blocked using ix.dnsbl.manitu.net; Your e-mail service was detected by mx.selfip.biz (NiX Spam) as spamming at Wed, 31 Oct 2012 04:20:15 +0100. Your admin should visit http://www.dnsbl.manitu.net/lookup.php?value=66.220.155.147; !!!! Forward this EMail to -YOUR- System Administrator !!!!; You can reach -OUR- System Administrator by postmaster@user.de; So long.....; from=<notification+kr4mss2q24wx@facebookmail.com>; to=<user@user.de>; proto=ESMTP helo=<mx-out.facebook.com>

 

Ich hoffe dieser Beitrag hilft dem einen oder anderen, sich etwas mehr Müll vom Hals zu halten!

Fragen oder Anregungen sehe ich wie immer gerne!

 


 

Ein kleines „Problem“ ist mir bei dieser Technik untergekommen. Einer der RBL Server, welchen ich abgefragt habe, hat (für mich) plötzlich seinen Dienst eingestellt. Dieses ist mir aber erst spät aufgefallen.
Im Postfixlogfile unter: /var/log/mail.log werden dazu Warnmeldungen angezeigt. Nach dem Timeout der Abfrage wurde einfach der nächste Server in der Liste abgefragt. Alles kein Problem, sollte man meinen 😀 Leider ist das Mailaufkommen auf diesem Server doch sehr hoch. Die ständigen Anfragen bis in die Timeouts führten leider in seltenen Fällen zu einer unvollständigen Rückmeldung anderer DNS-Abfragen. Einige E-Mails konnten so nicht richtig zugestellt werden. Die Rückmeldung war folgende:

<kernel-error@kernel-error.de>: Host or domain name not found. Name service error for name=mailserver.maildomain.de type=A: Host found but no data record of requested type

 

Nachdem ich den toten Server entfernt hatte und die DNS Abfragen nicht mehr in die Timeouts liefen, war dieses Problem weg! Ich habe nur leider in den ersten Minuten keinen Zusammenhang zwischen dem toten RBL-Server und einer gescheiterten „Weiterleitung“, wegen einer nicht vollständig aufgelösten DNS-Abfrage, gesehen.

 

 

 

SPF

Sender Policy Framework (früher Sender Permitted From), kurz SPF, ist eine Technik, die das Fälschen des Absenders einer E-Mail auf SMTP-Ebene erschweren soll.

Klingt komplex ist es aber nicht…

Es gibt eine simplen SPF-Generator, welcher einem einen fertigen Eintrag für seinen DNS-Server erstellt.

Einfach mal hier: http://www.spf-record.de/ schauen….

Möchte man seine SPF Konfiguration testen gibt einem folgende Webseite viele Möglichkeiten: http://www.kitterman.com/

Der SPF-Record könnte für meine Zone wie folgendes Beispiel aussehen:

kernel-error.de.    IN  TXT „v=spf1 ip4:212.23.142.146 ip6:2001:7d8:8001:100::2 ptr:smtp.kernel-error.de mx a:smtp.kernel-error.de -all“

 

Bei Fragen oder Problemen, helfe ich natürlich gerne weiter!

Funktionsweise

Dazu wird in der DNS-Zone einer Domäne ein sog. Resource Record vom Typ TXT oder SPF mit Informationen darüber hinterlegt, welche Computer E-Mails für diese Domäne versenden dürfen. Anhand dieser Informationen soll nach RFC 4408 der Empfangs-Server dann sowohl die „MAIL FROM“-Identität als auch die „HELO“-Identität des Senders nachprüfen. Absenderangaben im E-Mail-Header werden nicht überprüft.

Im DNS-Eintrag einer Domäne sind bislang schon normale MX-Einträge vorhanden, die SMTP-Servern sagen, an welchen Host sie E-Mails für diese Domäne senden sollen. Wenn also ein SMTP-Server eine E-Mail an

test@example.org

Diese E-Mail-Adresse ist gegen Spam-Bots geschützt, Sie müssen Javascript aktivieren, damit Sie es sehen können schicken soll, sieht er im MX-Record von example.org nach, an welchen Server er die Mail schicken soll. Mit SPF wird nun ein Record im Stil eines Reverse-MX den DNS-Einträgen einer Domäne hinzugefügt. Empfängt ein Mailserver eine E-Mail mit einem Absender von example.org, sieht er im SPF-Record von example.org nach, ob der zustellende Mailserver laut SPF-Record dazu berechtigt ist, Mails für diese Domain zu versenden. Mit dieser Technik lässt sich die Fälschung von Absenderadressen effektiv verhindern.

SPF kann so durch die leichtere Nachverfolgbarkeit von E-Mails auch zur Bekämpfung von Spam und zur Erschwerung von Phishing beitragen. SPF erhebt jedoch lediglich den Anspruch, Absenderadressfälschungen zu verhindern, nicht aber, direkt Spam zu bekämpfen.

SPF muss nur vom Empfängersystem unterstützt werden – am SMTP-Protokoll der Mailübertragung ändert sich nichts. Die Veröffentlichung von SPF-Records ist für eine Domäne freiwillig, Mails von Domains ohne SPF-Records sollen laut SPF-Spezifikation (RFC 4408) von Empfängern nicht negativ eingestuft werden; allerdings bleiben solche Domänen naturgemäß wie bisher gegen Umschlag-Adressfälschungen ungeschützt.

Mehr zum Lesen:

SPF
SPF-RECORD
SPF-RECORD erkärt

DKIM

Ich gehe davon aus, das eine funktionsfähige amavis, postfix usw… Konstellation vorhanden ist!

Ich habe einen Server im Internet stehen, welcher sich um meine E-Mails und die meiner Verwanden und Bekannten kümmert. Hier liegen mehrere Domains und die E-Mails in lokalen Postfächern. Diese sind per smtp, imap und webmail zu erreichen.

OS ist Debian Lenny, als MTA nutze ich Postfix welcher mit amavis, spamassassin, clamav, dovecot und etwas Krims mehr zusammenarbeitet.

Meine Idee war nun alle ausgehenden E-Mails jeweils mit DKIM zu signieren und alle eingehenden E-Mails zusätzlich auf eine gültige DKIM Signatur zu prüfen.

Es gibt hier nun mehrere Möglichkeiten dieses umzusetzen. Ich habe mehrere Systeme ausprobiert und finde, für mich ist es über amavis am angenehmsten. Seit der Version 2.6 bringt amavis-new diese Funktionalität mit. Na dann wollen wir mal….

Vorbereitung der Signaturprüfung

Ich habe folgende Einträge in meiner 50-user unter /etc/amavis/conf.d/ dafür ergänzt:

$enable_dkim_verification = 1;

Damit überreden wir amavis die DKIM Signaturen zu prüfen. Dieses läuft in Zusammenarbeit mit spamassassin. Hier müssen folgende Einträge vorgenommen werden:

/etc/spamassassin/v320.pre
loadplugin Mail::SpamAssassin::Plugin::DKIM

Ohne diesen Eintrag wird spamassassin nicht das passende Modul laden und versteht überhaupt nicht was man von ihm will (häufige Fehlerquelle).

/etc/spamassassin/local.cf
#DKIM
score DKIM_VERIFIED -3.0
score DKIM_POLICY_TESTING 0
score USER_IN_DKIM_WHITELIST -8.0
whitelist_from_dkim @kernel-error.de

Hier lege ich nun die Punkte fest, welche von spamassassin vergeben werden. Da natürlich auch Spammer eine DKIM Signatur erstellen könnten (was eher selten ist) gebe ich maximal -3 Punkte für eine erfolgreich geprüfte DKIM Signatur.

Es fehlt nur noch ein Paket: libmail-dkim-perl
Dieses installieren wir einfach schnell mit

apt-get install libmail-dkim-perl

nach!

Ab jetzt werden E-Mails schon auf eine gültige DKIM Signatur überprüft.

Ich werfe, nach einiger Zeit, mal ein: cat /var/log/mail.log|grep dkim_id raus um zu sehen ob schon etwas passiert ist:

Mar 11 10:59:56 kernel-error amavis[10736]: (10736-05) Passed CLEAN, [91.194.xxx.xxx] [91.194.xxx.xxx] <e3@xxxxx.net> -> <xxx@xxx-meckenheim.de>, Message-ID: <0.0.10@e3xxys.net>, mail_id: Cf, Hits: -9.187, size: 33396, queued_as: 6883, dkim_id=eBay@reply.ebay.de,eBay@reply.ebay.de, 6951 ms

Schaut gut aus und im MailHeader dieser E-Mail steht:

Authentication-Results: kernel-error.de (amavisd-new); dkim=pass
header.i=eBay@reply.ebay.de
Authentication-Results: kernel-error.de (amavisd-new); domainkeys=pass

Das geht also schon mal 😀

Vorbereitung der Signierung

In /etc/amavis/conf.d/50-user müssen folgende Konfigurationszeilen eingefügt werden:

$enable_dkim_signing = 1;
dkim_key('kernel-error.de', 'kernel-error', '/pfad/kernel-error.key.pem');
@dkim_signature_options_bysender_maps = (
{ '.' => { ttl => 21*24*3600, c => 'relaxed/simple' } } );
@mynetworks = qw(127.0.0.0/8);  # list your internal networks

Zeile 1 bringt amavis dazu E-Mails per DKIM zu signieren.
Zeile 2 sagt amavis wo für die jeweilige Domain (hier kernel-error.de) die Schlüsseldatei liegt.
Zeile 3 gibt vor wie und was signiert werden soll.
Zeile 4 gibt an, welche IP-Netze als lokal behandelt werden sollen. Da dieser Server bei uns im Rechenzentrum steht gibt es kein lokales Netzwerk, bis auf 127…

Jetzt müssen wir noch den Schlüssel erstellen. amavis hilft dabei mit folgendem Befehl:

amavisd-new genrsa /pfad/kernel-error.key.pem

Wir können uns den Schlüssel anschauen und direkt Testen ob amavis alles richtig verstanden hat, mit Hilfe dieses Befehls:

amavisd-new showkeys

Die Ausgabe sollte ähnlich dieser sein:

kernel-error._domainkey.kernel-error.de.        3600 TXT (
"v=DKIM1; p="
"MIGfMCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC/KYIHw8NZNIB"
"SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS6orDC2DzZ7"
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
"qZZZZZZZZZZZZZZZZZZZZZZZZB")

Genau diesen Schlüssel müssen wir nun in den DNS-Eintrag des DNS-Servers eintragen, welcher für die Domain zuständig ist. Der DNS-Server meiner Domain ist ein Bind9. Um diesem meinen Schlüssel schmackhaft zu machen, muss ich ihn noch etwas umformen. Er wird am Ende so ausschauen:

kernel-error._domainkey.kernel-error.de.        3600 TXT  "v=DKIM1; p="MIGfMCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC/KYIHw8NZNIBSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS6orDC2DzZ7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXqZZZZZZZZZZZZZZZZZZZZZZZZB"

Ich habe alle Zeilenumbrüche und ~überfüssige~ ( „ ) sowie die beiden Klammern entfernt. Der Eintrag im Bind schaut nun also so aus:

$ORIGIN .
$TTL 86400      ; 1 day
kernel-error.de         IN SOA  kernel-error.de. root.kernel-error.de. (
xxxxxxxxx ; serial
10000      ; refresh (2 hours 46 minutes 40 seconds)
1800       ; retry (30 minutes)
2419200    ; expire (4 weeks)
86400      ; minimum (1 day)
)
NS      ns1.kernel-error.de.
NS      ns2.kernel-error.org.
A       213.xx.xx.xx
MX      10 smtp.kernel-error.de.

kernel-error._domainkey.kernel-error.de.        3600 TXT  "v=DKIM1; p="MIGfMCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC/KYIHw8NZNIBSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS6orDC2DzZ7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXqZZZZZZZZZZZZZZZZZZZZZZZZB"


$ORIGIN kernel-error.de.
$TTL 300        ; 5 minutes
imap                    A       213.xx.xx.xx
smtp                    A       213.xx.xx.xx

Ein amavisd-new testkeys sollte nun folgendes ergeben:


TESTING: kernel-error._domainkey.kernel-error.de => pass

Ab jetzt werden alle lokalen E-Mails signiert! Hier ist darauf zu achten, dass nur E-Mails signiert werden, welche als lokal eingestuft werden. Wir erinnern uns daran, dass wir 127.0.0.0/8 als lokales Netzwerk eingestuft haben. Wenn also nun E-Mails von Benutzern signiert werden sollen, welche sich mit ihrem E-Mail Client per smtp am Server anmelden und E-Mails verschicken, dann ist noch etwas mehr Arbeit nötig!

Am einfachsten ist es mit zwei verschiedenen IP-Adressen zu arbeiten und für diese Spezielle Regeln anzulegen. Dazu müssen ein paar Einträge in der /etc/postfix/master.cf vorgenommen werden:

213.xx.xx.xx:smtp      inet  n       -       -       -       -       smtpd 
127.0.0.1:10025 inet n  -       -     -       -  smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
-o local_header_rewrite_clients=

Ist hier mein Eintrag für E-Mails, welche über den MX Eintrag an meinen Mailserver gesendet werden, also für die Domains und User bestimmt sein sollten, welche ich über meinen Mailserver verarbeite. Die User sollten über diese Adresse keine E-Mails einliefen!!

### Einlieferung eigene Nutzer
213.xx.xx.xxx:smtp      inet  n       -       y       -       100     smtpd
-o smtpd_proxy_filter=localhost:10028
-o smtpd_etrn_restrictions=reject
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_sasl_auth_enable=yes
-o content_filter=
213.xx.xx.xxx:smtps    inet  n       -       y       -       100       smtpd
-o smtpd_etrn_restrictions=reject
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_tls_wrappermode=yes
-o smtpd_proxy_filter=localhost:10028
-o smtpd_sasl_auth_enable=yes
-o content_filter=

Dieses sind nun meine Einträge für die zweite IP-Adresse. Über welche die User, welche sich per sasl anmelden, ihre E-Mails ins System werfen.

localhost:smtp      inet  n       -       -       -       -       smtpd

Damit auch mein Webmail sauber funktioniert ist dieser Eintrag zuständig. Sonst lauscht halt keiner mehr lokal 😀

Hier ist nun klar zu sehen, das die per smtp angenommenen E-Mails je nach IP anderen Regeln unterliegen und auch lokal an amavis auf anderen Ports weitergeleitet werden. Dieses müssen wir natürlich amavis auch mitteilen. Wenn amavis nicht weiss das es auf weiteren Ports lausch soll, wird es dieses kaum von sich aus tun. Dafür müssen wir einen Eintrag unter /etc/amavis/conf.d/20-debian_defaults ändern.

$inet_socket_port = [10024,10028,10032];  # listen on multiple TCP ports geaendert

Jetzt geben wir in der /etc/amavis/conf.d/50-user noch unsere spezielle Regel für die sasl Benutzer an:

# DKIM
$policy_bank{'SASLNUTZER'} = {   # Einlieferung eigener Nutzer
originating => 1,
os_fingerprint_method => undef,  # eigentlich ueberfluessig
};
$interface_policy{'10028'} = 'SASLNUTZER';

Interessant ist hier im Grunde nur:

originating => 1,

Man könnte originating => 1 auch einfach mit in die 20-debian_defaults werfen und sich das mit der zweiten IP und den amavis Regeln sparen. Damit wird aber jede E-Mail als lokal behandelt. Ob das so gut ist bleibt jedem selbst überlassen 😛

Tja, was soll ich sagen, hier ist nun Ende. Sollte es Fragen oder Probleme geben, könnt ihr euch gerne bei mir melden!

Hier nun noch ein Paar Informationen zu DKIM:

DomainKeys ist ein Identifikationsprotokoll zur Sicherstellung der Authentizität von E-Mail-Absendern, das von Yahoo entwickelt wurde und seit Ende 2004 in Erprobung ist. Es wurde konzipiert, um bei der Eindämmung von unerwünschter E-Mail wie Spam oder Phishing zu helfen.

DomainKeys wurde ursprünglich unter dem Titel Domain-Based Email Authentication Using Public Keys Advertised in the DNS (DomainKeys) im RFC 4870 veröffentlicht und unter dem Titel DomainKeys Identified Mail (DKIM) Signatures durch RFC 4871 abgelöst.

Arbeitsweise

DomainKeys basiert auf asymmetrischer Verschlüsselung. Die E-Mail wird mit einer Digitalen Signatur versehen, die der empfangende Server anhand des öffentlichen Schlüssels, der im Domain Name System (DNS) der Domäne verfügbar ist, verifizieren kann. Schlägt dies fehl, hat der empfangende Mail Transfer Agent (MTA) oder das empfangende Anwendungsprogramm die Möglichkeit, die E-Mail zu verweigern oder auszusortieren.

Kern des Verfahrens ist, dass der sendende MTA jede versendete E-Mail im sogenannten „DomainKey-Signature-Header“ mit einer digitalen Signatur des Inhaltes der E-Mail versieht.

Für die Erzeugung des für die Signatur nötigen Hashwertes unterstützt DKIM die Hashfunktionen SHA-1 und SHA-256, wobei die Verwendung von letzterer empfohlen wird. Die anschließende Verschlüsselung des Hashwertes, die letztlich die digitale Signatur zum Ergebnis hat, wird in beiden Fällen mit dem Verschlüsselungsverfahren RSA realisiert. Damit die Signatur mit dem beim E-Mail-Versand verwendeten ASCII-Zeichensatz dargestellt werden kann, wird sie mit Base64 kodiert.

Die so erzeugte digitale Signatur wird vom empfangenden MTA zunächst base64-dekodiert und dann mit dem öffentlichen Schlüssel der angeblichen Absender-Domäne (z.B. yahoo.com) entschlüsselt, der Hashcode der E-Mail wird neu berechnet. Stimmen der gelieferte entschlüsselte und der selbst berechnete Hashcode überein, stammt die E-Mail wirklich von der angegebenen Domäne. Der oder die verwendeten öffentliche(n) Schlüssel werden hierzu im DNS-Eintrag der sendenden Domäne publiziert. Das heißt, dass der DNS als Zertifizierungsstelle fungiert. Eine mit Hilfe von DomainKeys signierte E-Mail bietet also die Möglichkeit, sicher nachzuprüfen, ob die in der E-Mail-Absenderadresse enthaltene Domäne korrekt ist und dass die E-Mail auf dem Weg der Zustellung nicht verändert wurde.
Spamfilterung

Da es sich bei DomainKeys um einen Authentifizierungsmechanismus handelt, dient DomainKeys nicht dazu, Spam zu filtern. Stattdessen begrenzt DomainKeys die Möglichkeit, E-Mail-Absenderadressen zu verschleiern, da man mit DomainKeys feststellen kann, ob eine E-Mail tatsächlich über die angegebene Domäne versendet wurde.

Diese Nachvollziehbarkeit kann dazu verwendet werden, Bewertungssysteme und Filtertechniken von Spamfiltern wirkungsvoller zu gestalten. Zudem kann DomainKeys den Datendiebstahl durch Phishing begrenzen, da teilnehmende Mailversender ihre E-Mails als Originale zertifizieren können. Fehlt eine solche Zertifizierung, obwohl der vermeintliche Absender angibt, seine E-Mails zu zertifizieren, so kann die E-Mail als mögliche Fälschung betrachtet werden.
Lizenzierung

Yahoo hat das Verfahren patentieren lassen und es bei der IETF zur Standardisierung eingereicht. Das Verfahren wurde mittlerweile als Standard RFC 4871 akzeptiert.

Das DomainKeys-Verfahren kann von Yahoo wahlweise unter den Bedingungen der GPL 2.0 oder den Bedingungen des proprietären Yahoo DomainKeys Patent License Agreement lizenziert und verwendet werden.

Dem DomainKeys-Verfahren werden nach dem Scheitern der Standardisierung von Microsofts Sender ID – bei welchem an keine GNU-Lizenzierung gedacht wurde – gute Chancen eingeräumt, sich neben dem Sender Policy Framework (SPF) im Internet zu etablieren.
Unterstützung

Das DomainKeys-Verfahren erfordert größere Modifikationen am Mailserver – entsprechende Anpassungen existieren derzeit für fast alle gängigen Mail Transfer Agenten. Derzeit wird das DomainKeys-Verfahren nur von sehr wenigen Providern unterstützt; bekannte größere Provider, die Domainkeys einsetzen, sind Yahoo, Gmail und Strato.

Das Problem bei dieser und aller anderen Methoden zur Sicherstellung der Absender-Authentizität ist, dass es einen langen Zeitraum brauchen wird, um ein solches System zu verbreiten, da zuerst die Software angepasst werden muss und diese dann auch noch auf den Mailservern zum Einsatz kommen muss.
Weiterentwicklungen

Im Juli 2005 wurde von Cisco und Yahoo ein gemeinsamer Entwurf mit dem Titel DomainKeys Identified Mail (DKIM) bei der IETF eingereicht. Unterstützt wurde dieser Vorschlag nun auch von anderen Größen der IT-Branche, darunter mit Microsoft und AOL auch von denjenigen, die als Alternativlösung SPF vorschlugen. DKIM wurde im Mai 2007 als RFC 4871 veröffentlicht und ersetzte damit den vorherigen Entwurf RFC 4870.

Samba Projekte

Alt, tot, überholt, nicht nachmachen 🙂


 

 

Projekt Samba­Server

Dieses soll eine kleine Beschreibung über die Gründe, die eigentliche
Installation und Einrichtung meines privaten Samba­Servers werden. Also kein HowTo!

Sollte jemand Fragen oder Anregungen haben, freue ich mich natürlich über jede
E-Mail. Solltest du Fragen stellen achte bitte darauf deine Frage so genau wie irgend
mäglich zu stellen. Beschreibe kurz dein Problem, haue mich nicht mit log und configs
zu und habe etwas Geduld. Ich bekomme nicht nur eine E-Mail am Tag. Darum werde ich ganz
sicher nur auf unfreundliche und ungenaue Fragen antworten. KEINER hat ein Recht drauf von mir
Support zu bekommen!!

Nun, die Situation bei mir schaut ca. so aus: Meine Familie, der Nachbar und ich selbst sitzen
zusammen im Netzwerk. Zu dem kommt immer mal wieder Besuch zu uns. Da wir auch etwas mehr
Platz als der normale Durchschnitt haben, finden auch oft irgendwelche LANs usw. bei uns stat.
Zu dem hängt noch eine Firma und ein geschlossenes WLAN mit drin.

Wenn man mehr als nur einen Rechner hat kommt es schnell vor, dass man bestimmte
Daten nicht nur an einem Rechner braucht. Aus diesem Grund habe ich mir hier einen File­Server
aufgestellt und alle möglichen Daten dort abgelegt. Jetzt stellt sich die Frage wie von
einem anderen Rechner an diesen herankommen? Da ich selbst nur Linux­Systeme nutze (der
File­Server ist also auch Linux basiert) mache ich das ganze über ssh/scp oder
halt über NFS. Jetzt sind aber noch mehr Menschen in meinem Netzwerk. Diese wollen nun
auch ihre Daten dort ablege. Zum Einen, weil dort mehr Platz ist als auf ihrem Rechner und zum
Anderen weil dort täglich eine Datensicherung gefahren wird.
Die Rechte für einen NFS­Share sind schnell angelegt… bringt nur leider nichts,
wenn es Windows­User sind, welche auf die Shares zugreifen wollen. Microsoft
Systeme managen so etwas fast immer über das SMB Protokoll.

Server Message Block (kurz SMB) ist ein Protokoll für Datei­, Druck­ und
andere Serverdienste im Netzwerk unter Microsoft Windows­Betriebssystemen. Es ist
der Kern der Netzwerkdienste von Microsofts LAN­Manager, der Windows­Produktfamilie,
sowie des LAN­Servers von IBM.

Samba ist eine freie Software­Suite, die das Server Message Block ­ Protokoll (SMB)
für Unix­Systeme verfügbar macht. Dieses Protokoll wird manchmal als CIFS (Common
Internet File System), LanManager­ oder NetBIOS­Protokoll bezeichnet.

Samba ist damit in der Lage, Funktionen eines Windows­Server zu übernehmen. Es
gilt als stabiler und performanter als die Windows­Alternative und ist, da zudem noch frei
verfügbar, auch bei vielen Firmen und Organisationen sehr angesehen.

Würde sagen: Ich mach es mit Samba 🙂

Samba wird recht übersichtlich in einer einfachen Konfigurationsdatei konfiguriert. Diese
liegt normalerweise im Ordner /etc/samba und nennt sich smb.conf.

Ich liste erst mal meine hier auf und erläutere dann weiter unten die wichtigsten Einträge!

######### /etc/samba/smb.conf # Anfang #########
[global]
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
#Servername / Domain / usw.
netbios name = kernel­error
server string = HAUPT_Server
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
#Arbeitsgruppe
workgroup = servers
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
#Passwoerter gleichzeitig aedern und Sicherheits..
unix password sync = yes
passwd program = /usr/bin/passwd %U
passwd chat = *password* %n\n *password* %n\n *successfull*
min password length = 2
admin users = kernel
force directory mode = 0750
directory mask = 0750
force create mode = 0750
create mask = 0750
encrypt passwords = Yes
update encrypted = Yes
map to guest = Bad User
host allow 192.168.0. 127.
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
#Server und PDC einstellungen
domain master = Yes
name resolve order = dns host bcast wins
nt acl support = Yes
nt pipe support = Yes
nt smb support = Yes
wins support = Yes
wins proxy = Yes
name resolve order = dns host bcast wins
logon path = \\%L\profiles\%U
time server = Yes
socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY
keepalive = 120
preferred master = Yes
logon script = %U.bat
domain logons = Yes
os level = 65
logon drive = u:
logon home = \\%L\Profiles\%U
# NT RUMMEL
add user script = /usr/bin/useradd ­d /dev/null ­g machines ­c 'Machine Account' ­s /bin/false ­M %u
add user script = /usr/bin/useradd ­s /bin/false %u
username map = /etc/samba/smbusers
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
# Logs
max log size = 250
log file = /var/log/samba/samba.log.%m
debug level = 3
log level = 1
syslog = 0
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
# Speed
read raw = Yes
write raw = Yes
stat cache = Yes
stat cache size = 50
shared mem size = 5242880
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
# sonstiges
interfaces = 192.168.0.10/24
printing = cups
printcap name = CUPS
load printers = yes
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
# Lange Dateinamen und Umlaute
protocol = NT1
default case = lower
mangle case = no
mangled names = yes
case sensitive = no
preserve case = yes
short preserve case = yes

[netlogon]
comment = Logon Scripts
path = /home/netlogon
browseable = no

[homes]
comment = Heimatverzeichnis
writeable = Yes
browseable = No

[system]
comment = Server
path = /
writeable = yes
browseable = no
read only = no
valid users = kernel
write list = kernel
read list = kernel

[pool]
create mask = 0755
directory mask =0755
comment = Der Pool
path = /home/pool
writeable = yes
browseable = no
read only = no

[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mode = 0700
browseable = No
writeable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
create mask = 0664
directory mask = 0775
######### /etc/samba/smb.conf # Ende #########

 

Wie man sehen kann ist die Konfigurationsdatei in mehrere Bereiche aufgeteilt. Ein Berich
beginnt immer mit:

[bereichname]

Der Bereich „global“ sollte immer vorhanden sein. Einstellungen die man nicht vorgibt
werden vom Samba­Deamon mit den Standardwerten gefahren. Im Bereich „global“ werden
nun alle Einstellungen gesetzt die für den Samba­Server selbst gelten. Die ersten beiden
Punkte lasse ich aus, da sie sich selbst erklären sollten.

Interessant wird es meiner Meinung nach hier:
unix password sync = yes
passwd program = /usr/bin/passwd %U
passwd chat = *password* %n\n *password* %n\n *successfull*
min password length = 2

Hiermit gebe ich dem Samba­Server vor, dass die Benutzer welche auf der Unix­ bzw.
Linuxebene angelegt werden auch gleichzeitig im Samba­Server angelegt werden. Natürlich
mit dem gleichen Passwort, welches aber nicht kürzer als zwei Zeichen lang sein darf.
Zu dem können User auf NT­Basierten Systemen ihr Passwort von diesen aus selbst
ändern, sofern es ihnen erlaubt ist versteht sich. Die User können natürlich mit
ihrem Passwort auch auf der Konsole angelegt werden. Man muss aber darauf achten,
dass der Username schon auf der Unixebene existiert. Sie müssen nicht zwingend
die gleichen Kennwörter unter Unix/Linux und Samba haben. Angelegt wird ein User mit:

smbpasswd -a username [als root auf der Konsole]

Sollte der User schon unter Samba existieren wird sein Eintrag mit einfach nur aktualisiert.

admin users = kernel

Dieser Eintrag gibt den Benutzer an, welcher nach seiner Anmeldung auf den Shares, mit den
Rechten des Unix Users Root Dateien und Ordner anlegt / liest / bearbeiten. Hier sollte
man vorsichtig sein. Dieser User hat wirklich die gleichen Rechte wie der ROOT­User!!

map to guest = Bad User

Ist dies so angegeben, können nur User auf den Server zugreifen, welche sich auch anmelden.
Ein User kann sich am System anmelden, muss aber keinen Zugriff auf einen Share haben.

#Server und PDC einstellungen

Ab diesem Eintrag wird dem Samba­Server gesagt das er als PDC für die oben angegebene
Domain arbeiten soll. Die einzelnen Punkte haben schöne passende Namen, daher sollte
man sie auch so verstehen können. Gibt es Fragen? ==> einfach mailen!
Hat man NT­Basierte Systeme, welche sich auch am PDC anmelden sollten, muss man einen
Computeraccount für den jeweiligen Rechner anlegen. Das ist viel Arbeit pro Rechner. Da
NT­Systeme das aber selbst können, sollten sie doch die Arbeit für uns machen, oder?
Daher müssen wir noch folgendes eintragen:

add user script = /usr/bin/useradd ­d /dev/null ­g machines ­c ‚Machine Account‘ ­s /bin/false ­M %u
add user script = /usr/bin/useradd ­s /bin/false %u
username map = /etc/samba/smbusers

Die beiden Schalter:

read raw = Yes
write raw = Yes

Können dem Samba Server etwas einheizen. Sie können den Server um 50% schneller laufen
lassen. Die Hardware sollte aber mitspielen, sonst verliert man Daten.

Zum Drucken unter Linux nutze ich seit einiger Zeit CUPS. Um Windows jetzt auch den Zugriff
auf diese Drucker zu gewähren muss ich Samba angeben, dass ich CUPS zur Druckerverwaltung
nutze. Dieses mache ich mit diesem Eintrag:

interfaces = 192.168.0.10/24
printing = cups
printcap name = CUPS
load printers = yes

Wenn man den Samba­Server als PDC betreibt möchte man natürlich auch für Windows
die Loginscripte nutzen. Damit einfach und schnell die Uhrzeit abgeglichen wird oder Laufwerke und
Drucker beim Anmelden eingebunden werden. Dazu muss ein neuer Bereich mit dem Namen „netlogon“
angelegt werden. Das Ganze schaut dann wie folgt aus.

[netlogon]
comment = Logon Scripts
path = /home/netlogon
browseable = no

Der Text hinter comment wird als kleine Beschreibung bei den Shares angezeigt.
path gibt den Unixpfad zum Ordner an, welcher „freigegeben“ werden soll.
Ist browseable auf no gesetzt wird die Freigabe nicht in der Netzwerkumgebung usw. angezeigt.

Ich habe hier folgendes aufgenommen um es zu beschreiben. Man sollte das aber nicht machen!
[system]
comment = Server
path = /
writeable = yes
browseable = no
read only = no
valid users = kernel
write list = kernel
read list = kernel

Hier wurde der Bereich system angelegt. Vielleicht sollte ich an dieser Stelle sagen, dass der
Bereichsname auch gleichzeitig der Name des Shares ist. Hier taucht der Schalter writeable und
read only auf. Die Schalter machen von der Logik her das gleiche. Ich setzte immer beide um
sicher zu gehen das auch wirklich das passiert was ich will. Sie verhindern oder erlauben
das Schreiben auf Shares. Der Punkt valid users gibt an, welche user überhaupt das Recht
haben auf diesen Share zuzugreifen. write list bestimmt die User die auf dem Share schreiben
oder verändern dürfen. read list erlaubt oder verbietet halt das lesen.

Folgende Einträge geben an, mit welchen Unix­Berechtigungen Daten auf den Shares
geschrieben werden sollen. Unter Daten fallen auch Ordner.

force directory mode = 0750
directory mask = 0750
force create mode = 0750
create mask = 0750

Ich glaube mit diesen Angaben hat jeder nun schon einen kleinen überblick über
dass, was mit dem Samba­Server möglich ist und wie ich es hier eingesetzt habe.

 

 

 

Routenplaner für Linux

Navigationssystem / Routenplaner für Linux

Ich habe lange Zeit ein Navigationssystem mit Routenplaner für mein Linux Notebook gesucht.

Jetzt habe ich es gefunden!

Die Software nennt sich Navigator 4 Europe und kommt von der Firma Directions Ltd aus England.
Genaueres findet ihr unter der Homepage der Firma unter: http://www.directions.ltd.uk/

Die Software läuft unter Linux (QT 3) und Windows. Zusammen mit der Software wurde mir auch eine USB GPS-Maus, von der Firma NAVI Lock, geliefert. Diese Firma hat natürlich auch eine Homepage die ihr unter folgender Adresse findet: http://www.navilock.de/

Die GPS-Maus NL-202U wird als serielles Gerät erkannt. Sofern der Kernel passend konfiguriert ist. Es muss also im Kernel oder als Modul die USB/Seriell Unterstützung mit übersetzt werden. Ist das gemacht, sollte das Gerät unter /dev/ttyUSB0, /dev/ttyUSB1…. zu finden sein.

Tipp:
Bei GPS-Geräten unterscheidet man zwischen einem Warm- und einem Kaltstart. Als Kaltstart wird der erste Start des GPS-Gerätes bezeichnet. Hier stellt dieses eine ganze Menge komplexer Berechnungen an und synchronisiert sich, auch Datum und Zeit lassen sich später vom Gerät nehmen. Der Kaltstart kann je nach der Qualität des Gerätes bis zu 10 Minuten dauern. Beim Warmstart geht es etwas schneller, das System synchronisiert sich aber auch kurz. In diesem Zustand sollte man das GPS-Gerät nicht von der Stelle bewegen. Sonst bekommt man vielleicht überhaupt kein Signal. Erst nach dem Abschluss des Kalt- bzw. Warmstarts wird einem die Anzahl der gefundenen Satelliten angezeigt. Man braucht min. 3!

In der Software kann man die Sprache im Menü von Englisch auf Deutsch umstellen. Die sprachgesteuerte Navigation (Ja, die Software erzählt einem wann und wo man abbiegen muss) ist dann auch auf Deutsch, wenn man es bei der Installation mit installiert hat.

Die Software hält eine Menge Kartenmaterial vor, fast über ganz Europa. Hier eine kleine Auflistung:

Andorra 100 % – Kartengrösse: 1 MB
Belgien 100 % – Kartengrösse: 113 MB
Dänemark 100 % – Kartengrösse: 95 MB
Deutschland 100 % – Kartengrösse: 1212 MB
Frankreich 100 % – Kartengrösse: 1237 MB
Finnland 79.41 % – Kartengrösse: 173 MB
Großbritanien 100 % – Kartengrösse: 776 MB
Luxemburg 100 % – Kartengrösse: 10 MB
Italien 91,74 % – Kartengrösse: 958 MB
Niederlande 100 % – Kartengrösse: 178 MB
Nord Irland 16.46 % / Rep. von Irland 45.09 % – Kartengrösse: 13MB
Norwegen 100 % – Kartengrösse: 200 MB
Österreich 100 % – Kartengrösse: 168 MB
Polen 4.23 % – Kartengrösse: 44 MB
Portugal 41.28 % – Kartengrösse: 54 MB
San Marino 100 % – Kartengrösse: 1 MB
Schweden 100 % – Kartengrösse: 340 MB
Schweiz 100 % – Kartengrösse: 113 MB
Spanien 79.54 % – Kartengrösse: 494 MB
Tschechische Rep. 72.9 % – Kartengrösse: 108 M

Die ganze Software ist bei mir auf einer DVD gekommen. Wobei die Einzelnen Karten auf der DVD mit RAR komprimiert sind. Der konsolenbasierte Installer entpackt diese ohne Probleme von alleine. Man sollte vorher sicherstellen das man unrar auf seinem Linux-System installiert hat. Das Entpacken und Installieren von allen Karten dauert dann natürlich etwas 😛
Leute mit alten Kirsten sollten sich auch beim Arbeiten mit der Software auf längere Wartezeiten einstellen.

In der Software kann man sehr genau und gezielt suchen. Man kann schon vor der Suche viele Filter anwenden und das Suchergebnis wird einem auch recht übersichtlich präsentiert.

Bei der Routenerstellung kann man unbegrenzt viele Wegpunkte setzten und verschiedene Routenarten und Alternativrouten generieren lassen.

Alles ist ohne Probleme auf Papier zu bringen. Karte sowie auch die Streckenliste. Genaue Entfernung, voraussichtlicher Benzinverbrauch und Kosten lassen sich genau so gut ausgeben.

Keine Software ist perfekt. Daher gibt es immer mal wieder neue Updates, welche direkt von der Homepage des Herstellers herunter geladen werden können. Was ich auch empfehlen würde denn mir ist die gelieferte Version ohne Updates ein paar mal abgeschmiert.

Als Systemvoraussetzung wird unter anderem eine der gängigen grossen Linux-Distributionen (Suse bla…) verlangt. Ich bin das Risiko einfach mal eingegangen und habe es auf Gentoo installiert. Ich kann mich dabei über nichts beklagen.

Soooo… da jeder gerne ein paar Bilder sehen möchte folgen hier nun einige! Ach ja, bevor ich es vergesse. Meiner Meinung nach, ist die Software inkl. GPS-Empfänger sein Geld wert und funktioniert prächtig.

Die Einstellungen
GPS-Ortung
USB GPS-Maus von NAVI Lock
Softwareversion und Information (nach Update)
Ich suchte hier nach MC Donalds in Belgien
Kurze berechnete Route
Gestartetes GPS-Routing
Startbildschirm
     
Kartenübersicht der Software
     

IVTV

Wer mit der PVR 350 von Hauppauge einfach nur TV schauen möchte, ohne Mythtv und ohne vdr der wird etwas länger nach einer passenden Anleitung im Internet suchen. Besonders wenn er einen Satelitenresiever oder ähnliches an seinen Composite-Anschluss seiner PVR350 anschliessen will.

Folgene Einstellungen sollten im Kernel gemacht werden:

Ich nutze hier bei mir Gentoo und den Kernel: Linux PC-02 2.6.16-gentoo-r12 #3 PREEMPT Mon Jul 10 23:54:18 CEST 2006 i686 Pentium III (Coppermine) GNU/Linux

Zuerst einmal sollte unter /etc/modules.d/ eine Datei mit dem Namen ivtv angelegt werden, sofern nicht schon vorhanden:

touch /etc/modules.d/ivtv

Der Inhalt dieser Datei sollte nun so abgeänder werden:

alias char-major-81 videodev
alias char-major-81-0 ivtv
alias char-major-61 lirc_i2c
options msp3400 once=1
add below ivtv msp3400 saa7115 saa7127 tuner
add above ivtv ivtv-fb
add above ivtv lirc_dev lirc_i2c

Das ist jetzt auch der Inhalt meiner ivtv-Datei. Diese ist mit den lirc Optionen auch schon ausgelegt auf den Einsatz zusammen mit Mythtv. Es kann aber alles so übernommen werden. Selbst wenn wir am Ende einfach nur TV schauen wollen.

Jetzt sollte der Treiber installiert werden, welcher es ermöglicht den Hauppauge PVR 350 hardware MPEG-2 chip zu „aktivieren“.
Das Treiberpaket nennt sich ivtv. Die offizielle Homepage zu diesem Projekt ist: http://www.ivtvdriver.org/!

Mit der Version 0.4.0-r3 unter Gentoo hatte ich einige Pobleme mit einem Kernel ab Version 2.6.15 aus diesem Grund habe ich zu einer maskierten Version gegriffen. Zu dem ist f�r den Kernel ab Version 2.6.x ja auch die ivtv Version 0.6.x zuständig!

Ich nutze jetzt die Version 0.6.3. Um diese unter Gentoo zu „demaskieren“ hilft folgendes:

echo "media-tv/ivtv ~x86" >> /etc/portage/package.keywords

Nun kann auch schon mit der Installation des Paketes begonnen werden:

emerge -a ivtv

Ist die installation sauber abgeschlossen kann man sein Modul auch schon laden:

modprobe ivtv

Nun sollte man am besten kurz nachschauen ob das mit dem Laden geklappt hat:

dmesg |grep ivtv

Es sollte sich in etwas so etwas in die Konsole erbrechen:

ivtv: ==================== START INIT IVTV ====================
ivtv: version 0.6.3 (tagged release) loading
ivtv: Linux version: 2.6.16-gentoo-r12 preempt PENTIUMIII REGPARM gcc-4.1
ivtv: In case of problems please include the debug info between
ivtv: the START INIT IVTV and END INIT IVTV lines, along with
ivtv: any module options, when mailing the ivtv-users mailinglist.
ivtv0: Autodetected Hauppauge WinTV PVR-350 card (cx23415 based)
tuner 1-0061: chip found @ 0xc2 (ivtv i2c driver #0)
tda9887 1-0043: chip found @ 0x86 (ivtv i2c driver #0)
saa7115 1-0021: saa7115 found @ 0x42 (ivtv i2c driver #0)
saa7127 1-0044: saa7129 found @ 0x88 (ivtv i2c driver #0)
msp3400 1-0040: MSP4418G-B3 found @ 0x80 (ivtv i2c driver #0)
ivtv0: loaded v4l-cx2341x-enc.fw firmware (262144 bytes)
ivtv0: loaded v4l-cx2341x-dec.fw firmware (262144 bytes)
ivtv0: Encoder revision: 0x02050032
ivtv0: Decoder revision: 0x02020023
ivtv0: Allocate DMA encoder MPEG stream: 128 x 32768 buffers (4096KB total)
ivtv0: Allocate DMA encoder YUV stream: 161 x 12960 buffers (2048KB total)
ivtv0: Allocate DMA encoder VBI stream: 80 x 26208 buffers (2048KB total)
ivtv0: Allocate DMA encoder PCM audio stream: 455 x 4608 buffers (2048KB total)
ivtv0: Create encoder radio stream
ivtv0: Allocate DMA decoder MPEG stream: 16 x 65536 buffers (1024KB total)
ivtv0: Allocate DMA decoder VBI stream: 512 x 2048 buffers (1024KB total)
ivtv0: Create decoder VOUT stream
ivtv0: Allocate DMA decoder YUV stream: 20 x 51840 buffers (1024KB total)
ivtv0: loaded v4l-cx2341x-init.mpg firmware (155648 bytes)
ivtv0: Initialized Hauppauge WinTV PVR-350, card #0
ivtv: ==================== END INIT IVTV ====================

Jetzt kann man schon das erste mal probieren ob man Fernsehen schauen kann. Man braucht nur einen Videoplayer der einen mpeg2 Stream abschpielen kann. Ich nutze dazu fast immer mplayer oder kmplayer.

Ein: mplayer /dev/video0 sollte nun Schnee in den Player zaubern. Nun ist es Zeit seinen Satelitenresiever (oder was auch immer) am Composite-Eingang seiner PVR350 in Gang zu setzen.

Folglich müssen wir unserer Karte nur noch sagen das wir einen anderen Eingang für unser Videosignal nutzen wollen!

ivtvctl -P zeigt uns den gerade genutzten Videoeingang. ivtvctl -n zeigt uns alle möglichen Video Ein- und Ausgänge.

Um ihn zu ändern brauchen wir ivtvctl -p der Composite-Eingang sollte auf 5 oder 6 liegen, also:

ivtvctl -p 5

Na? ist das nicht was? Bild und Ton sollte nun den Schnee aus unserem mplayer vertrieben haben.

Natürlich kann man nun auch mit der Karte ein Video aufnehmen! Einfach mal ein:

cat /dev/video0 > /ORDNERmitPASSENDENrechten/video.mpg

In die Konsole hämmern und schon wird aufgebommen. Ist man fertig mit seiner Aufnahmen kann man alles einfach mit STRG + C abbrechen. Die Datei /ORDNERmitPASSENDENrechten/video.mpg ist nun schon ein komplettes mpg Video und man kann damit machen was man will!

Natürlich kann man auch wärend der Aufnahme einfach mal schauen ob alle glatt geht und mit dem mplayer live testen:

mplayer /ORDNERmitPASSENDENrechten/video.mpg

Die Aufnahme kann dabei natürlich weiter laufen. So lässt sich dann auch die „Pause-Funtion“ nutzen, wenn auch etwas umständlich!

Wer Videorekorder, Teletext, TV-Zeitschrift, Pausefunktion, Netzwerkstreamen usw. usw.usw. haben will sollte sich nun doch vielleicht einmal überlegen MythTV oder VDR zu testen. tvtime xawtv und auch kdetv haben wohl zum Teil Plugins für die PVR350, diese kommen aber auch nicht ohne die ivtv-Treiber aus und mir ist noch keines unter die Nase gekommen, welches wirklich sauber Funktioniert hat.

Commodore – PC Projekt

Ich bin beim Aufräumen und Ausmisten meiner „Bastelecke“ über meinen Commodore 128 D und unzähligen Disketten gestolpert. Natürlich schwelgte ich bei dessen Anblick sofort in Erinnerungen. Die ganzen Spiele, die ersten selbst geschriebenen Programme in Basic und Assembler..

Einige Male habe ich mir schon vorgenommen die ganzen Schlabberdisketten irgendwie ordentlich zu archivieren. Tja, aber wie? Von Schlabberdiskette auf Schlabberdiskette kopieren ist nicht das Gelbe vom Ei. Zum Einen sind die Dinger einfach zu empfindlich und zum Anderen gibt es auch Disketten die sich nicht so einfach kopieren lassen. Ich denke da z.B. an GEOS usw…
Also, was machen? Ein PC-Laufwerk für die Schlabberdisketten kann die Commodore beschriebenen leider nicht lesen. Das liegt jetzt nicht am genutzten Dateisystem auf den Datenträgern, sondern an der Art wie der Kontroller die Daten auf die Diskette packen lässt. Daher fällt es schon einmal flach diese einfach mit einem einfachen PC-Laufwerk kopieren bzw. archivieren zu wollen. Vielleicht kann man das Commodore Laufwerk ja einfach in den PC einbauen? Hm, so einfach geht das nicht aber man könnte über ein Kabel die komplette Floppy an seinen Computer anschließen. Zumindest hat mir google so etwas erzählt. Dann könnte ich auch Disketten 1A kopieren und öhm Images von Disketten machen und diese archivieren. Wie viele C64 Diskette (jede Seite hat ~170,8KB) bekomme ich wohl auf eine CD-ROM oder gar DVD *denk*? Diese Idee mit dem Kabel und der ganzen Floppy am PC hat mir gefallen, daher habe ich google mal nach dem Kabel gefragt.

Die Antwort war dieser Schaltplan zu einem XM1541 Kabel:

Gut, schaut ja nicht sonderlich schwer aus. Ich brauche quasi nur:

– 1 x 25 Pol. LPT Stecker
– 1 x 6 Pol. DIN Stecker
– 4 x Diode BAT85 (sind diese Schottky Dioden), die 1N5819 sollten also auch klappen.
– 1 x 5 Pol. geschirmte Leitung (ungeschirmt geht sicher auch. Nur halt nicht bei Leuten mit Hirn)

Hier habe ich mir mal mit Eagle eine Platine dafür zusammengeklickt

Nach 20 Minuten Lötkolbengefummel schaut des ganze nun so aus:

Jetzt kann ich auch schon meine 1541 Floppy an meinen Laptop anstöpseln:

Ja, so gefällt mir das schon. Schaut doch ganz nett aus, oder?

Den Hardwareteil hätten wir damit. Jetzt müssen wir es nur noch schaffen, der Hardware zu sagen was sie machen soll. Also mal wieder google nach Hilfe gefragt. Cbm4linux soll da wohl die Lösung meiner Probleme sein. Auf der Homepage zu cbm4linux schaut alles auch noch recht einfach aus! Herunterladen, entpacken, kompilieren, installieren, fertig.

Also habe ich mir die Version 0.3.2 herunter geladen. Leider hat sich das Kernelmodul nicht kompilieren lassen. Auf der Seite sprang mir gleich ein Patch für den 2.6er Kernel ins Auge. Leider brachte dieser aber auch keine Abhilfe. Das Kernelmodul wollte sich einfach nicht kompilieren lassen.

Also wieder google… Google hat mir nach und nach 5 – 6 weitere Patche an die Hand gegeben und hier und da noch Tipps für Codeänderungen von Hand. Nach einem Tag herumfummeln klappte das komplette kompilieren dann auch mit meinem 2.6.12er Kernel auf meinem Gentoo Notebook. Ach ja, hier bekommt ihr mein komplett gepatchtes und umgefummeltes Quellcodepaket vom cbm4linux, genau so wie es sich bei mir ohne Probleme kompilieren lassen hat.

cbm4linux-0.3.2-kernel-2.6.tar.gz

Und so klappt es dann:
Als User:

tar xzf cbm4linux-0.3.2-kernel-2.6.tar.gz
cd cbm4linux-0.3.2-kernel-2.6.tar.gz
make
Als Root:
make dev
make install

 (nur wenn /usr/local/lib nicht schon in der /etc/ld.so.conf steht)

echo "/usr/local/lib" >> /etc/ld.so.conf 
ldconfig

 Schon kann man probieren das Kernelmodul zu laden:

modprobe cbm

 Kommt eine Fehlermeldung sollte man das Modul lp entladen

rmmod lp

 Und es jetzt noch einmal mit dem laden von cbm probieren. Modul ohne mucken geladen? Wunderbar weiter geht es!

Jetzt kann man so ziemlich alles machen, was man so machen möchte ;-P
Klickt einfach mal die einzelnen Bilder unten durch! Wer mehr Infos zu den einzelnen Befehlen will, sollte vielleicht mal google oder man dazu befragen.

Richtig geil wird es aber erste wenn man einen C64 / C128 oder ähnlich Emulator benutzt. Ich nutze hier VICE. 1A Teil. Dieser unterstützt nämlich die Anbindung von einer echten Commodore Floppy an einen PC. Weil der PC „etwas“ schneller ist als der Commodore 64 mit seiner 1MHz CPU rennt alles (je nach Einstellung) natürlich auch wie Sau. Schaut selbst:

« Ältere Beiträge Neuere Beiträge »

© 2026 -=Kernel-Error=-RSS

Theme von Anders NorénHoch ↑