E-Mail-Setup · 14 min read · Jan 12, 2026
Virtuelle Benutzer und Domains mit Postfix, Courier, MySQL und SquirrelMail (Mandriva 2010.0 x86_64) - Seite 5
15 Installation von SquirrelMail
SquirrelMail ist eine Webmail-Oberfläche, die es Ihren Benutzern ermöglicht, E-Mails in einem Browser zu senden und zu empfangen. Dieses Kapitel zeigt, wie man es installiert und an unser Setup anpasst, sodass Benutzer sogar ihr E-Mail-Konto-Passwort über die SquirrelMail-Oberfläche ändern können.
Um SquirrelMail zu installieren, geben wir einfach ein:
urpmi squirrelmail
SquirrelMail wird mit einigen vorinstallierten Plugins geliefert, leider ist keines von ihnen in der Lage, unser E-Mail-Passwort in unserer MySQL-Datenbank zu ändern. Aber es gibt das Change SQL Password-Plugin, das wir manuell installieren können:
cd /var/www/squirrelmail/plugins/ wget http://squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fchange_sqlpass-3.3-1.2.tar.gz tar xvfz change_sqlpass-3.3-1.2.tar.gz cd change_sqlpass cp config.php.sample config.php
Jetzt müssen wir die config.php bearbeiten und an unser Setup anpassen. Bitte passen Sie die Variablen $csp_dsn, $lookup_password_query, $password_update_queries, $password_encryption, $csp_salt_static und $csp_delimiter wie folgt an und kommentieren Sie $csp_salt_query aus:
vi config.php
| [...] $csp_dsn = 'mysql://mail_admin:mail_admin_password@localhost/mail'; [...] $lookup_password_query = 'SELECT count(*) FROM users WHERE email = "%1" AND password = %4'; [...] $password_update_queries = array('UPDATE users SET password = %4 WHERE email = "%1"'); [...] $password_encryption = 'MYSQLENCRYPT'; [...] $csp_salt_static = 'LEFT(password, 2)'; [...] //$csp_salt_query = 'SELECT salt FROM users WHERE username = "%1"'; [...] $csp_delimiter = '@'; [...] |
Die vollständigen Dateien sehen wie folgt aus:
| * 2002-2005 Paul Lesneiwski <[email protected]> * Dieses Programm ist unter GPL lizenziert. Siehe COPYING für Details * * @package plugins * @subpackage Change SQL Password * */ // Globale Variablen, fassen Sie diese nicht an, es sei denn, Sie möchten das Plugin beschädigen // global $csp_dsn, $password_update_queries, $lookup_password_query, $force_change_password_check_query, $password_encryption, $csp_salt_query, $csp_salt_static, $csp_secure_port, $csp_non_standard_http_port, $csp_delimiter, $csp_debug, $min_password_length, $max_password_length, $include_digit_in_password, $include_uppercase_letter_in_password, $include_lowercase_letter_in_password, $include_nonalphanumeric_in_password; // csp_dsn // // Theoretisch sollte jede SQL-Datenbank, die von Pear unterstützt wird, hier unterstützt werden. // Der DSN (Data Source Name) muss die Informationen enthalten, die benötigt werden, // um sich mit Ihrem Datenbank-Backend zu verbinden. Ein MySQL-Beispiel ist unten enthalten. // Für weitere Details zur DSN-Syntax und zur Liste der unterstützten Datenbanktypen, // siehe: // http://pear.php.net/manual/en/package.database.db.intro-dsn.php // //$csp_dsn = 'mysql://user:password@localhost/email_users'; $csp_dsn = 'mysql://mail_admin:mail_admin_password@localhost/mail'; // lookup_password_query // // Dieses Plugin überprüft immer das alte Passwort des Benutzers // gegen ihr Anmeldepasswort, aber eine zusätzliche Überprüfung kann auch // gegen die Datenbank für mehr Sicherheit durchgeführt werden, wenn Sie // dies wünschen. Wenn Sie die zusätzliche Passwortüberprüfung nicht benötigen, // stellen Sie sicher, dass diese Einstellung leer ist. // // Dies ist eine Abfrage, die einen positiven Wert zurückgibt, wenn ein Benutzer // und Passwortpaar in der Datenbank gefunden wird. // // Diese Abfrage sollte einen Wert zurückgeben (eine Zeile, eine Spalte), der // Wert sollte idealerweise eine Eins oder eine Null sein, die einfach angibt, dass // das Benutzer-/Passwortpaar tatsächlich in der Datenbank existiert. // // %1 in dieser Abfrage wird durch den vollständigen Benutzernamen ersetzt // (einschließlich Domain), wie z.B. "[email protected]" // %2 in dieser Abfrage wird durch den Benutzernamen (ohne // irgendeinen Domainanteil) ersetzt, wie "jose" // %3 in dieser Abfrage wird durch den Domainnamen ersetzt, // wie "example.com" // %4 in dieser Abfrage wird durch das aktuelle (alte) // Passwort in welchem Verschlüsselungsformat auch immer benötigt wird, gemäß den anderen // Plugin-Konfigurationseinstellungen ersetzt (Beachten Sie, dass die Syntax des // Passworts je nach Ihren Verschlüsselungsentscheidungen bereitgestellt wird, // sodass Sie NIE Anführungszeichen um diesen Wert in der Abfrage hier angeben müssen.) // %5 in dieser Abfrage wird durch das aktuelle (alte) // Passwort im unverschlüsselten Klartext ersetzt. Wenn Sie keine // Passwortverschlüsselung verwenden, werden %4 und %5 die gleichen Werte sein, // außer dass %4 Anführungszeichen um sich hat und %5 nicht. // //$lookup_password_query = ''; // SCHLECHTE SICHERHEIT: $lookup_password_query = 'SELECT count(*) FROM users WHERE username = "%1" AND plain_password = "%5"'; //$lookup_password_query = 'SELECT count(*) FROM users WHERE username = "%1" AND crypt_password = %4'; $lookup_password_query = 'SELECT count(*) FROM users WHERE email = "%1" AND password = %4'; // password_update_queries // // Ein Array von SQL-Abfragen, die alle ausgeführt werden, // wann immer ein Versuch zur Passwortänderung unternommen wird. // // Hier können beliebig viele Abfragen enthalten sein. // Die Abfragen werden in der hier angegebenen Reihenfolge ausgeführt. // // %1 in allen Abfragen wird durch den vollständigen Benutzernamen ersetzt // (einschließlich Domain), wie z.B. "[email protected]" // %2 in allen Abfragen wird durch den Benutzernamen (ohne // irgendeinen Domainanteil) ersetzt, wie "jose" // %3 in allen Abfragen wird durch den Domainnamen ersetzt, // wie "example.com" // %4 in allen Abfragen wird durch das neue Passwort // in welchem Verschlüsselungsformat auch immer benötigt wird, gemäß den anderen // Plugin-Konfigurationseinstellungen ersetzt (Beachten Sie, dass die Syntax des // Passworts je nach Ihren // Verschlüsselungsentscheidungen bereitgestellt wird, sodass Sie NIE Anführungszeichen // um diesen Wert in den Abfragen hier angeben müssen.) // %5 in allen Abfragen wird durch das neue Passwort // im unverschlüsselten Klartext ersetzt - VORSICHT! Wenn Sie keine // Passwortverschlüsselung verwenden, werden %4 und %5 die gleichen // Werte sein, außer dass %4 Anführungszeichen um sich hat // und %5 nicht. // //$password_update_queries = array( // 'UPDATE users SET crypt_password = %4 WHERE username = "%1", // 'UPDATE user_flags SET force_change_pwd = 0 WHERE username = "%1", // 'UPDATE users SET crypt_password = %4, force_change_pwd = 0 WHERE username = "%1", // ); $password_update_queries = array('UPDATE users SET password = %4 WHERE email = "%1"'); // force_change_password_check_query // // Eine Abfrage, die nach einem Flag prüft, das angibt, ob ein Benutzer // gezwungen werden sollte, sein Passwort zu ändern. Diese Abfrage // sollte einen Wert zurückgeben (eine Zeile, eine Spalte), der // Null ist, wenn der Benutzer sein Passwort NICHT ändern muss, // oder Eins, wenn der Benutzer gezwungen werden sollte, es jetzt zu ändern. // // Diese Einstellung sollte eine leere Zeichenfolge sein, wenn Sie diese Funktionalität // nicht aktivieren möchten. // // %1 in dieser Abfrage wird durch den vollständigen Benutzernamen ersetzt // (einschließlich Domain), wie z.B. "[email protected]" // %2 in dieser Abfrage wird durch den Benutzernamen (ohne // irgendeinen Domainanteil) ersetzt, wie "jose" // %3 in dieser Abfrage wird durch den Domainnamen ersetzt, // wie "example.com" // //$force_change_password_check_query = 'SELECT IF(force_change_pwd = "yes", 1, 0) FROM users WHERE username = "%1"'; //$force_change_password_check_query = 'SELECT force_change_pwd FROM users WHERE username = "%1"'; $force_change_password_check_query = ''; // password_encryption // // Welche Verschlüsselungsmethode verwenden Sie, um Passwörter // in Ihrer Datenbank zu speichern? Bitte verwenden Sie eine der folgenden, // genau so, wie Sie sie sehen: // // NONE Passwörter werden nur im Klartext gespeichert // MYSQLPWD Passwörter werden mit der MySQL password()-Funktion gespeichert // MYSQLENCRYPT Passwörter werden mit der MySQL encrypt()-Funktion gespeichert // PHPCRYPT Passwörter werden mit der PHP crypt()-Funktion gespeichert // MD5CRYPT Passwörter werden mit dem verschlüsselten MD5-Algorithmus gespeichert // MD5 Passwörter werden als MD5-Hash gespeichert // //$password_encryption = 'MYSQLPWD'; $password_encryption = 'MYSQLENCRYPT'; // csp_salt_query // csp_salt_static // // Verschlüsselungstypen, die ein Salt benötigen, müssen wissen, woher sie // dieses Salt erhalten. Wenn Sie einen konstanten, bekannten Salt-Wert haben, // sollten Sie ihn in $csp_salt_static definieren. Andernfalls lassen Sie diesen // Wert leer und definieren Sie einen Wert für die $csp_salt_query. // // Lassen Sie beide Werte leer, wenn Sie keine (oder keine) Salze // zur Verschlüsselung Ihrer Passwörter benötigen. // // Die Abfrage sollte einen Wert zurückgeben (eine Zeile, eine Spalte), der // der Salt-Wert für das Passwort des aktuellen Benutzers ist. Diese // Abfrage wird ignoriert, wenn $csp_salt_static etwas anderes als leer ist. // // %1 in dieser Abfrage wird durch den vollständigen Benutzernamen ersetzt // (einschließlich Domain), wie z.B. "[email protected]" // %2 in dieser Abfrage wird durch den Benutzernamen (ohne // irgendeinen Domainanteil) ersetzt, wie "jose" // %3 in dieser Abfrage wird durch den Domainnamen ersetzt, // wie "example.com" // //$csp_salt_static = 'LEFT(crypt_password, 2)'; //$csp_salt_static = '"a4"'; // verwenden Sie dieses Format mit MYSQLENCRYPT //$csp_salt_static = '$2$blowsomefish$'; // verwenden Sie dieses Format mit PHPCRYPT //$csp_salt_static = ''; $csp_salt_static = 'LEFT(password, 2)'; //$csp_salt_query = 'SELECT SUBSTRING_INDEX(crypt_password, '$', 1) FROM users WHERE username = "%1"'; //$csp_salt_query = 'SELECT SUBSTRING(crypt_password, (LENGTH(SUBSTRING_INDEX(crypt_password, '$', 2)) + 2)) FROM users WHERE username = "%1"'; //$csp_salt_query = 'SELECT salt FROM users WHERE username = "%1"'; //$csp_salt_query = ''; // csp_secure_port // // Sie können sicherstellen, dass SSL-Verschlüsselung während der Passwortänderung // verwendet wird, indem Sie dies auf den Port setzen, auf dem Ihr HTTPS bereitgestellt wird // (443 ist typisch). Setzen Sie auf Null, wenn Sie keine HTTPS-Verbindung erzwingen möchten, // wenn Benutzer ihre Passwörter ändern. // // Sie können diesen Wert für bestimmte Domains, Benutzer oder // Dienstebenen über das Virtual Host Login (vlogin)-Plugin überschreiben, // indem Sie einen Wert(e) für $vlogin_csp_secure_port in der vlogin // Konfiguration festlegen. // $csp_secure_port = 0; //$csp_secure_port = 443; // csp_non_standard_http_port // // Wenn Sie Standard-HTTP-Webanfragen auf einem nicht-standardmäßigen // Port (alles außer Port 80) bereitstellen, sollten Sie diese // Portnummer hier angeben. Andernfalls auf Null setzen. // // Sie können diesen Wert für bestimmte Domains, Benutzer oder // Dienstebenen über das Virtual Host Login (vlogin)-Plugin überschreiben, // indem Sie einen Wert(e) für $vlogin_csp_non_standard_http_port // in der vlogin-Konfiguration festlegen. // //$csp_non_standard_http_port = 8080; $csp_non_standard_http_port = 0; // min_password_length // max_password_length // include_digit_in_password // include_uppercase_letter_in_password // include_lowercase_letter_in_password // include_nonalphanumeric_in_password // // Sie können die minimalen und maximalen Passwortlängen festlegen, die // Sie akzeptieren oder diese Einstellungen auf Null lassen, um anzuzeigen, dass // keine Begrenzung angewendet werden sollte. // // Aktivieren Sie eine der anderen Einstellungen hier, um zu überprüfen, dass das // neue Passwort mindestens eine Ziffer, einen Großbuchstaben, // einen Kleinbuchstaben und/oder ein nicht-alphanumerisches Zeichen enthält. // $min_password_length = 6; $max_password_length = 0; $include_digit_in_password = 0; $include_uppercase_letter_in_password = 0; $include_lowercase_letter_in_password = 0; $include_nonalphanumeric_in_password = 0; // csp_delimiter // // wenn Ihr System Benutzernamen mit etwas anderem als // einem "@"-Zeichen hat, das den Benutzer- und Domainanteil trennt, // geben Sie dieses Zeichen hier an // //$csp_delimiter = '|'; $csp_delimiter = '@'; // Debug-Modus // $csp_debug = 0; ?> |
Jetzt müssen wir in die SquirrelMail-Konfiguration gehen und SquirrelMail mitteilen, dass wir Courier als unseren POP3- und IMAP-Server verwenden (wenn Sie dies nicht tun, sehen Sie wahrscheinlich Fehler wie
ERROR: Anfrage konnte nicht abgeschlossen werden. Abfrage: CREATE "Sent" Gegebener Grund: Ungültiger Mailbox-Name.
wenn Sie sich bei SquirrelMail anmelden) und das Change SQL Password-Plugin aktivieren und die anderen Passwort-Plugins deaktivieren:
/var/www/squirrelmail/conf/conf.pl
Sie sehen das folgende Menü. Geben Sie D ein, um den IMAP/POP3-Server zu ändern:
SquirrelMail-Konfiguration : Lesen: config.php (1.4.0) --------------------------------------------------------- Hauptmenü -- 1. Organisationseinstellungen 2. Servereinstellungen 3. Ordnerstandards 4. Allgemeine Optionen 5. Themen 6. Adressbücher 7. Nachricht des Tages (MOTD) 8. Plugins 9. Datenbank 10. Sprachen
D. Vordefinierte Einstellungen für bestimmte IMAP-Server festlegen
C Farbe ausschalten S Daten speichern Q Beenden
Befehl >> <– D
SquirrelMail-Konfiguration : Lesen: config.php --------------------------------------------------------- Während wir SquirrelMail aufgebaut haben, haben wir einige Einstellungen entdeckt, die mit einigen Servern besser funktionieren, die nicht so gut mit anderen funktionieren. Wenn Sie Ihren IMAP-Server auswählen, wird diese Option einige vordefinierte Einstellungen für diesen Server festlegen.
Bitte beachten Sie, dass Sie dennoch alles überprüfen müssen, um sicherzustellen, dass alles korrekt ist. Dies ändert nicht alles. Es gibt nur einige Einstellungen, die sich dadurch ändern.
Bitte wählen Sie Ihren IMAP-Server: bincimap = Binc IMAP-Server courier = Courier IMAP-Server cyrus = Cyrus IMAP-Server dovecot = Dovecot Secure IMAP-Server exchange = Microsoft Exchange IMAP-Server hmailserver = hMailServer macosx = Mac OS X Mailserver mercury32 = Mercury/32 uw = IMAP-Server der University of Washington
beenden = Nichts ändern
Befehl >> <– courier
imap_server_type = courier
default_folder_prefix = INBOX.
trash_folder = Trash
sent_folder = Sent
draft_folder = Drafts
show_prefix_option = false
default_sub_of_inbox = false
show_contain_subfolders_option = false
optional_delimiter = .
delete_folder = true
Drücken Sie eine Taste, um fortzufahren… <– drücken Sie eine Taste
SquirrelMail-Konfiguration : Lesen: config.php (1.4.0) --------------------------------------------------------- Hauptmenü -- 1. Organisationseinstellungen 2. Servereinstellungen 3. Ordnerstandards 4. Allgemeine Optionen 5. Themen 6. Adressbücher 7. Nachricht des Tages (MOTD) 8. Plugins 9. Datenbank 10. Sprachen
D. Vordefinierte Einstellungen für bestimmte IMAP-Server festlegen
C Farbe ausschalten S Daten speichern Q Beenden
Befehl >> <– 8
SquirrelMail-Konfiguration : Lesen: config.php (1.4.0) --------------------------------------------------------- Plugins Installierte Plugins 1. delete_move_next 2. squirrelspell 3. newmail 4. filters 5. address_add 6. change_pass 7. quota_usage 8. change_ldappass 9. avelsieve 10. windows 11. folder_sizes 12. archive_mail 13. empty_folders
Verfügbare Plugins: 14. abook_import_export 15. administrator 16. block_sender 17. bookmarks 18. bug_report 19. calendar 20. change_sqlpass 21. compatibility 22. demo 23. fortune 24. info 25. junkfolder 26. ldifimport 27. listcommands 28. login_image 29. mail_fetch 30. message_details 31. rewrap 32. secure_login 33. select_range 34. sent_subfolders 35. spam_buttons 36. spamassassin 37. spamcop 38. test 39. translate 40. username
R Zurück zum Hauptmenü C Farbe ausschalten S Daten speichern Q Beenden
Befehl >> <– 21 (oder welche Nummer das Kompatibilitätsplugin hat - es wird vom change_sqlpass-Plugin benötigt)
SquirrelMail-Konfiguration : Lesen: config.php (1.4.0)
Plugins
Installierte Plugins
- delete_move_next
- squirrelspell
- newmail
- filters
- address_add
- change_pass
- quota_usage
- change_ldappass
- avelsieve
- windows
- folder_sizes
- archive_mail
- empty_folders
- compatibility
Verfügbare Plugins: - abook_import_export
- administrator
- block_sender
- bookmarks
- bug_report
- calendar
- change_sqlpass
- demo
- fortune
- info
- junkfolder
- ldifimport
- listcommands
- login_image
- mail_fetch
- message_details
- rewrap
- secure_login
- select_range
- sent_subfolders
- spam_buttons
- spamassassin
- spamcop
- test
- translate
- username
R Zurück zum Hauptmenü
C Farbe ausschalten
S Daten speichern
Q BeendenBefehl >> <-- 21 (die Nummer des change_sqlpass-Plugins) SquirrelMail-Konfiguration : Lesen: config.php (1.4.0) --------------------------------------------------------- Plugins Installierte Plugins 1. delete_move_next 2. squirrelspell 3. newmail 4. filters 5. address_add 6. change_pass 7. quota_usage 8. change_ldappass 9. avelsieve 10. windows 11. folder_sizes 12. archive_mail 13. empty_folders 14. compatibility 15. change_sqlpass
Verfügbare Plugins: 16. abook_import_export 17. administrator 18. block_sender 19. bookmarks 20. bug_report 21. calendar 22. demo 23. fortune 24. info 25. junkfolder 26. ldifimport 27. listcommands 28. login_image 29. mail_fetch 30. message_details 31. rewrap 32. secure_login 33. select_range 34. sent_subfolders 35. spam_buttons 36. spamassassin 37. spamcop 38. test 39. translate 40. username
R Zurück zum Hauptmenü C Farbe ausschalten S Daten speichern Q Beenden
Befehl >> <– 6 (die Nummer des change_pass-Plugins)
SquirrelMail-Konfiguration : Lesen: config.php (1.4.0)
Plugins
Installierte Plugins
- delete_move_next
- squirrelspell
- newmail
- filters
- address_add
- quota_usage
- change_ldappass
- avelsieve
- windows
- folder_sizes
- archive_mail
- empty_folders
- compatibility
- change_sqlpass
Verfügbare Plugins: - abook_import_export
- administrator
- block_sender
- bookmarks
- bug_report
- calendar
- change_pass
- demo
- fortune
- info
- junkfolder
- ldifimport
- listcommands
- login_image
- mail_fetch
- message_details
- rewrap
- secure_login
- select_range
- sent_subfolders
- spam_buttons
- spamassassin
- spamcop
- test
- translate
- username
R Zurück zum Hauptmenü
C Farbe ausschalten
S Daten speichern
Q BeendenBefehl >> <-- 7 (die Nummer des change_ldappass-Plugins) SquirrelMail-Konfiguration : Lesen: config.php (1.4.0) --------------------------------------------------------- Plugins Installierte Plugins 1. delete_move_next 2. squirrelspell 3. newmail 4. filters 5. address_add 6. quota_usage 7. avelsieve 8. windows 9. folder_sizes 10. archive_mail 11. empty_folders 12. compatibility 13. change_sqlpass
Verfügbare Plugins: 14. abook_import_export 15. administrator 16. block_sender 17. bookmarks 18. bug_report 19. calendar 20. change_ldappass 21. change_pass 22. demo 23. fortune 24. info 25. junkfolder 26. ldifimport 27. listcommands 28. login_image 29. mail_fetch 30. message_details 31. rewrap 32. secure_login 33. select_range 34. sent_subfolders 35. spam_buttons 36. spamassassin 37. spamcop 38. test 39. translate 40. username
R Zurück zum Hauptmenü C Farbe ausschalten S Daten speichern Q Beenden
Befehl >> <– S
Daten in config.php gespeichert
Drücken Sie die Eingabetaste, um fortzufahren… <– EINGABETASTE
SquirrelMail-Konfiguration : Lesen: config.php (1.4.0) --------------------------------------------------------- Plugins Installierte Plugins 1. delete_move_next 2. squirrelspell 3. newmail 4. filters 5. address_add 6. quota_usage 7. change_ldappass 8. avelsieve 9. windows 10. folder_sizes 11. archive_mail 12. empty_folders 13. compatibility 14. change_sqlpass
Verfügbare Plugins: 15. abook_import_export 16. administrator 17. block_sender 18. bookmarks 19. bug_report 20. calendar 21. change_ldappass 22. change_pass 23. demo 24. fortune 25. info 26. junkfolder 27. ldifimport 28. listcommands 29. login_image 30. mail_fetch 31. message_details 32. rewrap 33. secure_login 34. select_range 35. sent_subfolders 36. spam_buttons 37. spamassassin 38. spamcop 39. test 40. username
R Zurück zum Hauptmenü C Farbe ausschalten S Daten speichern Q Beenden
Befehl >> <– Q
Jetzt können Sie http://server1.example.com/squirrelmail oder http://192.168.0.100/squirrelmail in Ihrem Browser eingeben, um auf SquirrelMail zuzugreifen.
Melden Sie sich mit Ihrer E-Mail-Adresse (z.B. [email protected]) und Ihrem Passwort an:

Sie sollten die Willkommens-E-Mail in Ihrem Posteingang finden:


Um Ihr Passwort zu ändern, gehen Sie zu Optionen und wählen Sie dann Passwort ändern:

Geben Sie Ihr aktuelles Passwort ein und dann Ihr neues Passwort zweimal:

SquirrelMail wird Ihnen mitteilen, ob das Passwort erfolgreich geändert wurde:

16 Referenzen
Tutorial: ISP-ähnlicher E-Mail-Dienst mit Debian-Sarge und Postfix 2.1: http://workaround.org/articles/ispmail-sarge/
Postfix + Quota: http://vhcs.net/new/modules/newbb/viewtopic.php?topic_id=3496&forum=17
Mail-Passwörter verschlüsselt mit saslauthd: http://www.syscp.de/docs/public/contrib/cryptedmailpws
17 Links
- Postfix MTA: http://www.postfix.org/
- Postfix Quota Patch: http://vda.sourceforge.net/
- phpMyAdmin: http://www.phpmyadmin.net/
- SquirrelMail: http://www.squirrelmail.org/
- Mandriva: http://www.mandriva.com/
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.