Author Archive
Erklärungen zu EventIDs
Wenn man im Ereignisprotokoll einer Windows-Maschine einen Fehler entdeckt, gibt es oft keine sprechende Fehlermeldung dazu. In Vielen Fällen gibt es jedoch eine EventID, also eine Fehlernummer, unter der man weitere Informationen finden kann. Bisher bin ich gerne auf www.eventid.net gegangen und habe gesucht, wo das Problem liegt. Das Problem: Die Betreiber wollen für alles mögliche, vor allem für die Links zu den entsprechenden Microsoft-Seiten Geld,
Heute habe ich diese Seite bei Microsoft entdeckt:
http://www.microsoft.com/technet/support/ee/ee_advanced.aspx
Man kann die ID und das beteiligte Programm angeben und bekommt Knowledgebase-Einträge oder ähnliches präsentiert. So die Theorie. Ich werde es baldmöglichst ausprobieren.
SSL/TLS-Verbindungen debuggen
Wenn man externe APIs ansprechen muss, zu denen der Zugang auf eine SSL-Verschlüsselte HTTP-Verbindung reduziert ist, kann man bei Problemen nicht einfach einen Sniffer anwerfen, um den Verkehr zu analysieren, weil dieser verschlüsselt ist. Da das aber manchmal unerlässich ist, bietet es sich an, eine art Proxy zu bauen. Ich habe dazu stunnel verwendet, das im Client-Modus TCP-Verbindungen annimmt und diese über einen SSL-Tunnel weiterleitet. So konnte ich einen zweiten Rechner im Netzwerk als Zieladresse angeben (http://rechner2/…) und die Pakete wurden von dort SSL-verschlüsselt weitergereicht (https://externerrechner/…). Diese Kommunikation konnte ich mit Wireshark belauschen.
C# – ungültiges SSL-Zertifikat ignorieren
Um mal schnell eine SSL/TLS-Datenübertragung zu testen, ist es praktisch, wenn man ein ungültiges SSL-Zertifikat auch mal ignorieren kann. Mit diesem Code hier geht das:
using System.Net;
...
ServicePointManager.ServerCertificateValidationCallback =
new RemoteCertificateValidationCallback
(IgnoreCertificateErrorHandler);
...
private bool IgnoreCertificateErrorHandler
(object sender,
System.Security.Cryptography.X509Certificates.X509Certificate certificate,
System.Security.Cryptography.X509Certificates.X509Chain chain,
System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
return true;
}
...
Quelle:
http://en.csharp-online.net/Invalid_HTTPS_certificate
CentOS5 unter Virtual PC 2007
Ich habe CentOS 5.1 auf einer virtuellen Maschine in Microsoft VPC 2007 installiert. Im Textmodus läuft das System, im grafischen Modus nicht.
Um das zu ändern, habe ich in /etc/X11/xorg.conf die Farbtiefe auf 16Bit gesetzt.
Jetzt gilt es noch, die Maus ans Laufen zu bringen …
PHP und Postfix: Return-path setzen
Wenn ein Webserver E-Mails verschickt, kann es sinnvoll sein, die Absender- und Rückläufer-Adresse zu trennen.
Der eigentliche Absender, also der, der in E-Mail-Programmen angezeigt werden soll, wird in Form des From-Headers gesetzt. Hat eine Nachricht nur einen From-Header, so gehen sowohl Antworten, als auch Meldungen über den Status der Zustellung oder Rückläufer an diese Adresse.
Es kann sinnvoll sein, diese beiden Felder zu trennen. Gründe kann es dafür verschiedene geben:
- Für die Domain der From-Adresse existiert ein SPF-Eintrag, der den aktuellen Server nicht zulässt
- Rückläufer sollen nicht vom “eigentlichen” Absender bearbeitet werden
- Die Website schickt Mails im Auftrag der Benutzer an den Betreiber. Diese will direkt antworten können, die Benutzer sollen aber im Problemfall keine Meldung über die fehlgeschlagene Zustellung erhalten.
Das Ziel für Rückläufer wird über die Kopfzeile Return-path bestimmt. Standardmäßig setzt Postfix sort den System-Benutzernamen (z.B. www) – at – %myorigin ein, also z.B. www@myserver.local. Man kann nun Postfix beibringen, diese Adresse auf die des Administrators umzuschreiben, allerdings gibt es Fälle, in denen hier eine andere Adresse stehen muss. Die Lösung des Problems liegt in den Parametern des PHP-Befehls mail:
Als letzten Parameter kann man dort Optionen angeben, die an den Sendmail-Befehl weitergereicht werden. Dort kann man einfach mit -femail@example.com den Return-path festlegen:
mail("info@example.com", "Betreff", "Text", "From: absender@example.com", "-fbounce@example.com");
IE7 does not display Google Maps under W2K3
After I installed Internet Explorer 7 on a Windows Server 2003 machine, Google Maps did not work anymore. The page loaded partly but there maps did not load. After playing around with security zones which did not help anything I discovered that there are special security settings for Internet Explorer which can be disabled easily – if neccessary (believe me, I had a reason):
- Go to Control Panel
- Add or Remove Programs
- Add/Remove Windows Components
- Disable the entry Internet Explorer Enhanced Security Configuration
After that (re)start IE7 and Google Maps should load.
checkurl: Prüfen, ob ein Wort auf einer Webseite vorkommt
Mit dem folgenden Bash-Script kann man prüfen, ob auf einer Webseite ein bestimmtes Wort vorkommt:
#!/bin/bash
if [ $# -ne 2 ]; then
echo "Usage: checkurl [URL] [string to search for]"
echo
echo "Exits with:"
echo " 0=string found"
echo " 1=string not found"
exit 100
fi
cres=`curl -s $1 | grep -c $2`
if [ $cres -lt 1 ]; then
echo "not found"
exit 1
else
echo "found"
exit 0
fi
Voraussetzung: curl sollte installiert sein
Neues E-Mail-Zertifikat unter Vista mit IE 7 und Firefox
Heute wollte ich mir bei Thawte ein neues E-Mail-Zertifikat besorgen. Früher war das nicht schwer: Einfach im Browser meiner Wahl auf deren Seiten gehen, den Bestellvorgang starten, dieser öffnet das Browser-Crypto-Plugin, generiert meinen Key und fordert das Zertifikat an. Warten, bis es ausgestellt (issued) ist und auf “Fetch” klicken, fertig.
Erst habe ich es mit IE 7 probiert: Der steigt an der Stelle, an der ich den Verschlüsselungsgrad wählen kann, aus: “VBScript Error 424 – Objekt benötigt” (oder so). Andere Sicherheitszone? Keine Chance. Nicht im geschützten Modus? Keine Chance, also, nächster Versuch:
Firefox: Bis zum Button “Fetch” hat alles funktioniert, dann klicke ich drauf und lustigerweise fühlt sich plötzlich Windows für die Anforderung verantwortlich. Das bringt mir halt nichts, weil der Key nur in Firefox sitzt. Das Zertifikat konnte ich auch nicht von Hand im Firefox-Manager importieren.
Die Lösung – oder nennen wir es besser “Workaround”: Firefox im Kompatibilitätsmodus für Windows XP starten, dann das Zertifikat importieren (klappt super), dann das Zertifikat aus Firefox exportieren und im Windows Zert-Manager importieren und man kann es in Outlook verwenden. Schon.
Der HttpHandler und die Session [update]
Heute habe ich bemerkt, dass ich in einem IHttpHandler (ashx) an den HttpContext komme, allerdings die Session darin immer null ist.
Das scheint in HttpHandler-Kreisen so üblich, aber es gibt eine Abhilfe:
Die Klasse muss das Interface IRequiresSessionState implementieren.
Das ist garnicht schwierig, da die Implementierung keinen weiteren Code erfordert. Einfach die Klasse folgendermaßen definieren:
public class MyHandler : IHttpHandler, IRequiresSessionState
Nachtrag:
Damit es funktioniert, sollte man noch System.Web.SessionState includen:
using System.Web.SessionState;
Linux: Befehl später ausführen mit at
Eben habe ich auf einer weniger wichtigen Maschine ein Kernelupdate gemacht. Da ich sie nicht gleich durchstarten wollte, sondern erst heute Nacht (und auch nicht periodisch mit cron) habe ich den atd verwendet, um den Job zu planen.
Die Verwendung ist denkbar einfach:
at 23:30
at>reboot
at> ### [Strg]+[d] drücken ###
Dass man Strg+d drücken muss, habe ich erst nach etwas Suchen heruasgefunden. Probiert mal eine Google-Suche nach “at”
Mein Favourite ist übrigens:
at teatime
… führt Befehle um 16:00 Uhr aus.
Zwei Seiten, die den Befehl näher erklären:
http://www.linuxjournal.com/article/4087
http://www.linux.org/lessons/interm/c622.html