Archiv für December, 2007
  |  
Markus am 30.12.07 um 4:15 pm Uhr

Hätte ich gar nicht mitbekommen

Wordpress

… dass der 24th Chaos Communication Congress stattfindet.

Wenn die Kollegen nicht meinen blog gecracked hätten :-)

LOGO des CCC

Ich bin jetzt - glaube ich - auch dahinter gekommen, wie der Blog gecracked wurde. Ich hatte(!) Wordpress 2.0.5 installiert. Wordpress 2.0.5 hat eine Schwachstelle, d.h. man kann mit einem Script (gibt’s im Netz, will ich hier aber nicht unnötig verlinken) die Session-Cookies sowie die Password- MD5- Hash- Summen ermitteln. Aus diesem MD5-Hash kann man dann zum Beispiel hier ein Wort machen lassen - für den Fall, dass jemand einen typischen Begriff als Passwort verwendet hat. Anschließend ganz normal damit in Wordpress einloggen.

Das genannte Script erstellt außerdem noch Session-Cookies. Mit diesen Session-Cookies kann man sich vermutlich auch einloggen.

Natürlich habe ich das sofort (bei mir!) probiert. Und siehe da: es geht. Der Output des Scripts sieht wie folgt aus:

[+] Connecting to check if mbstring is installed
[+] ext/mbstring is installed. continue with exploit
[+] Connecting to retrieve cookie hash
[+] Cookie hash found: **********e96ea688bbf73a2416bbc**********
[+] Connecting to lock trackbacks
[+] Connecting to determine mysql table prefix
[+] Table prefix is: ****
[+] Connecting to check if user xyz is present
[+] Retrieving the password hash bit by bit
[+] Done…
The password hash is **********9f4b4cbca52efd9c0**********
The logincookies are:
wordpressuser_**********e96ea688bbf73a2416**********=xyz
wordpresspass_**********96ea688bbf73a2416b**********=**********d4178203e15644db730**********

Fazit: Der Umstieg auf eine neuere Wordpress-Version war nötig! Schließlich und endlich sind die Leute ja über eine Suche bei Yahoo auf meine Seite gekommen. In dem Suchstring kam der Begriff “powered by wordpress 2.0.5″ vor. Diesen String gab es im Footer des Blogs.

Na, und im Ende erzeugt die Spielerei wenigstens Traffic :-)

Markus am 26.12.07 um 8:09 pm Uhr

Konfiguration eines Postfix-Mailservers mit Dovecot als LDA und ohne MySql

Config, Debian, Server, mail

Ziel dieser Beschreibung ist es, einen funktionierenden Postfix-basierten Mailserver zu betreiben. Der LDA (local delivery agent) soll dovecot sein. Der Mailserver soll eingehende Mails annehmen und nach außen Mails ausliefern. Das Ausliefern erfolgt über einen Mail-Relay, da der hier beschriebene Postfix hinter einer dynamischen IP hängt. Die Verwaltung der Domains sowie der User wird nicht mit mysql durchgeführt, sondern erfolgt in Textfiles. Die Installation erfolgt auf einem Debian-Etch-System.
Die Beschreibung basiert auf dem Howto von Christoph Haas. Deshalb werden hier im Wesentlichen die Schritte dokumentiert, die erforderlich sind, um den Mailserver ohne MySql - Unterstützung zu betreiben. Auf jedenFall empfiehlt es sich vorher sein HowTo zu lesen.

Zuerst sind die erforderlichen Pakete zu installieren.

apt-get install postfix
apt-get install dovecot-pop3d
apt-get install dovecot-imapd
apt-get install libsasl2
apt-get install libsasl2-module
s

Schreiten wir zur Postfix-Konfiguration

1. Es ist der user und die group vmail anzulegen, unter dem Postfix bzw. dovecot die virtuellen mail-user verwalten

groupadd vmail -g 5000
useradd vmail -d /home/vmail -g 5000 -m -s /bin/false -m 5000

2. Virtuelle Domains einrichten

Der Postfix-Server gehört zu einer Domain. Er kann aber auch weitere Domains verwalten. Die weiteren Domains sind die virtuellen. Genaueres kann man hier nachlesen oder im Postfix-Manual.

Es ist das File /etc/postfix/virtual_mailbox_domains anzulegen
Es enthält die gehosteten virtual domains. Der Inhalt sieht bei mir wie folgt aus:

gimme-th.at OK
lstr8.dynalias.com OK

Das heißt, der Postfix betreut die Domains: gimme-th.at und lstr8.dynalias.com. (Die zweite Domain ist eine über DynDNS verwaltete Domain - die, die ich vor der TLD hatte.)

Anschliessend ist ein postmap hash:/etc/postfix/virtual_mailbox_domains ausführen, um die Datenbank für den Postfix zu erstellen. (Der Befehlt erstellt die Datei: virtual_mailbox_domains.db. Aus diesem File bezieht postfix die Informationen.)

3. Das File mit den Speicherorten für die User-Mailboxen erstellen: /etc/postfix/virtual_mailbox_maps

mrre [ät] gimme-th.at gimme-th.at/mrre
mrre [ät] lstr8.dynalias.com lstr8.dynalias.com/mrre
trashbin [ät] gimme-th.at gimme-th.at/trashbin

Es werden alle gültigen email-Adressen aufgeführt. Achtung! Aus Spam-Gründen habe ich den Klammeraffen (@) durch ” [ät] ” ersetzt! Bitte berücksichtigen!
In diesem File bitte keine Umleitungen für Mailboxen einrichten. Dazu kommt es später noch!
Um das Datenbank-File zu erstellen der Aufruf:
postmap hash:/etc/postfix/virtual_mailbox_maps

4. Das File mit den Umleitungen für die Mailboxen anlegen: /etc/postfix/virtual_alias_maps

abuse [ät] gimme-th.at mrre [ät] gimme-th.at
complaints [ät] gimme-th.at trashbin [ät] gimme-th.at

postmap hash:/etc/postfix/virtual_alias_maps

Das heißt, dass die email-Adresse abuse [ät] gimme-th.at auf
mrre [ät] gimme-th.at umgeleitet wird.

Mit postmap kann man jetzt seine Files auf Funktionsweise testen. Die Anfrage:
postmap -q complaints [ät] gimme-th.at hash:/etc/postfix/virtual_alias_maps
liefert dann: trashbin [ät] gimme-th.at

Jetzt wären also die wichtigsten Files für die Postfix-Konfiguration erstellt.

5. Nun geht es an die Konfiguration von postfix /etc/postfix/main.cf

Es sind (zusätzlich) folgende Einträge notwendig. Ein Großteil der default-Einstellungen kann übernommen werden bzw. so bleiben!

# ————————- Virtual Domain options
virtual_mailbox_domains=hash:/etc/postfix/virtual_mailbox_domains
virtual_mailbox_base = /home/vmail
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps
virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_transport = dovecot
dovecot_destination_recipient_limit=1

An dieser Stelle die ersten Kommentare:
virtual_mailbox_base = /home/vmail Hier wird das root-Verzeichnis für die Speicherung der virtuellen Mailboxen gesetzt. D.h. dieser Pfad wird vor die unter 3. genannten Pfade gesetzt.

virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_transport = dovecot

Hier wird die uid und die gid vom User vmail angegeben. Der LDA wird dem Postfix bekannt gegeben: dovecot!
Und weiter geht’s mit der main.cf

# SMTP - AUTH
smtpd_sasl_type=dovecot
smtpd_sasl_path=private/auth
smtpd_sasl_auth_enable=yes
smtpd_recipient_restrictions=permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

Hier werden die Parameter für’s SMTP-Auth über dovecot angegeben.


#relaying via selfhost
relayhost = [mail.selfhost.de]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
smtp_sasl_security_options = noanonymous
smtp_sasl_type=cyrus

Diese Zeilen sind erforderlich, wenn man über einen externen Mail-Relay gehen möchte, der ein SMTP-Auth erfordert. Ich relaye über Selfhost., da selfhost die DNS-Einträge für meine Domain verwaltet. Achtung! Wenn sich der Postfix-Server selbst an einem anderen mail-Server via SMTP-AUTH authentifizieren muss, dann geht das nicht über dovecot, sondern nur über cyrus! Deshalb die letzte Zeile.

Konfiguration von dovecot


# Authentication configuration
auth_verbose = yes

auth default {
mechanisms = plain login
passdb passwd-file {
args = /etc/dovecot/passwd
}
userdb static {
args = uid=vmail gid=vmail home=/home/vmail/%d/%n allow_all_users=yes
}

Die restlichen Konfigurationhinweise kann man von Workaround entnehmen.

Nun ist noch die Datei /etc/dovecot/passwd zu erstellen, in der die Passwörter gespeichert sind. Die könnte so aussehen:

mrre [ät] gimme-th.at:{Plain}MeinSicheresPasswort
thrashbin [ät] gimme-th.at:{Plain}MeinAnderesSicheresPasswort

Nun sind sowohl dovecot, als auch postfix zu starten.

/etc/init.d/postfix start
/etc/init.d/dovecot start

Anschließend sollte man testen, ob das mail-System funktioniert. Mit telnet auf dem Mail-Server einloggen:
telnet gimme-th.at smtp
ehlo mein.Server.com
mail from: You@yourdomain.com
rcpt to: mrre [ät] gimme-th.at
data
Hi mrre
.
quit

Damit loggt man sich per telnet auf dem mail-Server ein und versendet eine email an den mrre.

Ein weiteres gutes Werkzeug, um seinen mail-Server zu testen gibt es bei pingability. Dort werden sämtliche Funktionen getestet. Auch, ob der Server etwa ein open-Relay ist!

Anschließend der Hinweis: Sämtliche Probleme, die bei meiner Konfiguration aufgefallen sind, lagen an falschen Berechtigungen auf Dateien! Also: immer genau checken, ob der User vmail überall schreiben, bzw lesen darf, wo er möchte! :-)

Markus am 18.12.07 um 12:14 am Uhr

Da geht sie dahin, meine Uptime

Debian, Linux Tools

Da war ich so stolz drauf, dass der Server seit 252 Tagen non-Stop lief - und dann muss ein Reboot her. Hätte nicht sein müssen, aber ich wollte den neuen Kernel haben - und da geht eben ohne Reboot nix. Bei der Gelegenheit habe ich das ganze System gleich upgegraded.

Dazu vorher das ganze System auf einem zweiten Rechner gespiegelt. Als der wirklich einsatzbereit war (Webserver, Mailserver, FTP-Server aktiv und funktionsfähig), dann habe ich sämtliche IP-Tables auf der FritzBox so geändert, dass sie auf den Zweit-Rechner gezeigt haben. Somit dürfte also niemand von außen mitbekommen haben, dass die ursprüngliche Maschine nicht am Netz war.

Um das Upgrade durchzuführen, sind zuerst die Zeilen in der /etc/apt/sources.list zu modifizieren.

deb http://ftp.uni-bayreuth.de/linux/Debian/debian/ etch main contrib non-free
deb-src http://ftp.uni-bayreuth.de/linux/Debian/debian/ etch main contrib non-free

deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib

Dann ein apt-get update, um das neue sources.list - File einzulesen.

Anschließend den neuen Kernel installieren

apt-cache search linux-image
apt-get install linux-image-2.6.18-5-486

Daraufhin empfiehlt es sich in /boot/grub/menu.lst nachzuschauen, ob der neue Kernel incl. dem Kernel-Image als Option angeboten wird. War so:

title Debian GNU/Linux, kernel 2.6.18-5-486
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-5-486 root=/dev/hda1 ro
initrd /boot/initrd.img-2.6.18-5-486
savedefault
boot

Anschließend mit etwas Bauchschmerzen in den neuen Kernel gebootet - und es ging!
Also jetzt den Rest des Systems upgraden mit: apt-get dist-upgrade

Das hat dann einige Zeit gedauert. Im Anschluss ist das System neu zu booten - fertig. Nur noch die IP-Tables auf der FritzBox zurückstellen, und dann kann die Reserve-Maschine wieder vorübergehend in den Ruhezustand geschickt werden. (Zumindest bis zum nächsten Upgrade…)

Das einzige, worum es mir bei der Aktion wirklich leid tut, ist die schöne Uptime. Und als Beweis hier noch der Screenshot:


252-Tage-Uptime

Markus am 16.12.07 um 4:57 pm Uhr

Konqueror langsamer als Iceweasel

Linux Tools

Ich habe festgestellt, dass der Konqueror deutlich langsamer ist, als der Iceweasel. Der Aufbau und die Verbindung zu Websites dauert wesentlich länger.

Ursache: Der DNS-Server bietet eine ungenügende IPv6-Auflösung. Das kann man umgehen, indem man eine Umgebungsvariable KDE_NO_IPV6=true erstellt.

Für Bash-Style-Shells:
export KDE_NO_IPV6=true

für C-Style-Shells

setenv KDE_NO_IPV6 true

Damit das bei jedem Start von KDE verfügbar wird, habe ich in ~/.kde/Autostart folgendes Script untergebracht:

#!/ bin/ bash

export KDE_NO_IPV6=true

Auf diese Weise umgeht man das Problem, dass der Konqueror langsamer ist, als der Iceweasel.

Markus am 15.12.07 um 11:17 pm Uhr

Spam - Ein Testversuch mit einer separaten mail-Adresse (mail-me@gimme-th.at)

mail

Spam ist bekanntlich ein großes Ärgernis. Und immer wieder wird darüber referiert, dass man seine mail-Adresse nicht auf Websites veröffentlichen sollte, um die Menge an Spam zu reduzieren.

Um die o.g. Tatsache mal zu überprüfen, habe ich mir eine mail-Adresse angelegt. Diese mail-Adresse werde ich nur auf dieser Website veröffenlichen. Sie wird auch nicht dazu genutzt, mails zu versenden.

Meine Idee ist nun, einfach mal zu testen, wie lange es dauert, bis sich ein gewisses Spamaufkommen für diese Mail-Adresse zeigt.

Sollte es wirklich Spam geben, dann werde ich dazu bestimmt eine Statistik vom Zaune brechen :-)

Also, here it comes:

mail-me@gimme-th.at

Bitte keine sinnvollen mails an diese Adresse schicken! Und bitte, bitte, die Adresse nicht noch irgendwo anders veröffentlichen - sonst stimmt die Statistik nicht!

  |