Mailserver für IPFire mit Roundcube Dovecot und Postfixadmin

Anregungen & Feature Requests
User avatar
gocart
Posts: 458
Joined: December 16th, 2013, 4:43 pm
Location: Germany

Mailserver für IPFire mit Roundcube Dovecot und Postfixadmin

Post by gocart » November 25th, 2015, 8:32 pm

Dies ist ein in der Entwicklung befindliches Addon für IPFire. Es funktioniert soweit und wird ständig weiterentwickelt. Dieser Mailserver nutzt Postfix als MTA und Amavsid sowie Spamassassin zur Mailfilterung. Als Frontend (Webseite) wird Roundcube genutzt und als Datenbankserver MariaDB. Zur Administration wird Postfixadmin verwendet (anlegen der Domains und Postfächer). Der Mailserver ist Multi-Domain sowie Domian- und Postfachquota fähig. Postfachregeln (Sieve / Pigonhole) werden unterstützt. Apache 2.4.x ist HTTP2 fähig. (schneller Seitenaufbau und auch die IPFire eigene Verwaltungswebseite wird dadurch deutlich schneller ;) )

Minimale Systemvorraustzungen:
Min 2GB Ram besser 3 bis 4GB
Min 4GB Platz für Mails in /var Partition (je nach geschätzter Postfach und Mailmenge auch deutlich mehr )
Kein SD-Card System! Auch wenn das grundsätzlich gehen würde. Intel i586 oder x64 System. ARM-Systeme werden nicht unterstützt auch wenn es IPFire für ARM gibt. Es ist sinnvoll, diesen Mailserver in einer separaten VM bzw. Installation zu betreiben, da dieser durch die verwendeten Softwarekomponenten durchaus skaliert. (kann mehr als nur drei Postfächer verwalten)

Installation:
Die Installation erfolgt über einen Kommandozeileninstaller. Dieser Installer aktualisiert vor der Installation der Mailserver Komponenten zwangsweise Apache auf die Version 2.4.x, php auf die Version 7.1.x. sowie Perl auf 5.26.x mit dem kompletten Modulpaket welches im IPFire vorhanden ist. (alles größtenteils sowieso neuer) Wer das nicht will/möchte kann den Mailserver nicht installieren. Diese Updates sind keine offiziellen IPFire Updates!!! Es ist die Möglichkeit eingebaut die Installation an der Stelle mit "CTRL+C" abzubrechen. Es wird auch keinen Installer geben welcher mit den von IPFire ausgelieferten Versionen von Apache/PHP geht!

Durch das Perl Update wird das Installieren von Perl-Modulen aus dem Pakfire wirkungslos. Es sind alle notwendigen Module sowie die Module aus dem Pakfire in diesem Paket enthalten. Das Mysql wird sofern nicht installiert durch MariaDB 10.1.x ersetzt. InnoDB ist die Standard DB-Engine. Es wird grundsätzlich die vorherige Deinstallation des alten MySQL empfohlen! Das DB-Verzeichnis ist von /srv/mysql nach /var/mysql verlegt, sofern MariaDB genutzt wird. Die IPfire Partition ist dafür schlicht zu klein mit 2GB.

Die notwendigen Einrichtungsschritte in der Firewall sind identisch zum Mailproxy. Port 25 nach draußen (Mail verschicken und senden), Für Razor2 Port 2703 nach draußen und wenn Roundcube im Internet gehen soll dann natürlich noch Port 443. Manchmal braucht ClamAV ewig bis es seine Signaturen aktialsiert hat. Es ist besser das vorher von Hand zu installieren.

Bitte die Anweisungen im Installer-Endtext beachten, da abschließende Einrichtungsschritte notwendig sind. Viel Spaß beim testen und ich freue mich über jegliches konstruktives Feedback. Es sei auch nochmals erwähnt, das alles hier ist in Entwicklung, funktioniert aber soweit ich das getestet habe/testen konnte augenscheinlich ohne Probleme.

Nutzung:
Nach dem Anlegen der Domains und der Postfächer mit Postfixadmin kann man mit https://[IPfire IP-Adresse] Roundcube aufrufen und sich wie bei einem Webmailer anmelden. In der Dovecot Konfiguration sind auch POP3 und IMAP aktiviert (mit TLS). Dadurch kann der Mailserver auch ganz normal mit z.B. Outlook und Thunderbird genutzt werden. (Roundcube nutzt auch IMAP um auf Dovecot zuzugreifen) Die Anmeldedaten sind dieselben wie für Roundcube. Die Firewallanpassungen für POP3/S und IMAP/S nicht vergessen.

Achtung:
Die Aktualisierung dieses Mailservers erfolgt immer über die Aktualisierung des Installers. Über Pakfire werden derzeit nur veraltete Pakete bereit gestellt. Sollte es doch zur Installation des alten Postfix sowie Amavisd aus dem Pakfire kommen, wird die Konfiguration der Mailserverinstallation zerschossen. Dies kann aber durch ein erneutes vollständiges Ausführen des Installers einfach repariert werden. Dieser Mailserver hat auch nichts mit dem Cyrus-IMAP basierten Mailserver aus dem IPFire Wiki zu tun. Er ist ein völlig eigenständiges Projekt!

Entwicklungslog:

15.10.2017 Version 14 Installation nur mit Core 114!
Änderungen:
- Apache 2.4.28
- PHP 7.1.10
- libgd 2.2.5 (CVE fixes)
- Redis-4.0.2
- Roundcube 1.3.1
- PHPmyAdmin 4.7.4
- Download der Installationsdateien auf https umgestellt.

10.08.2017 Version 14 Installation nur mit Core 112!
Änderungen:
- nghttp2 1.24.0 (Damit wird Apache HTTP/2 fähig und deutlich schneller)
- Apache 2.4.27
- PHP 7.1.8
- MariaDB 10.1.25
- Dovecot 2.2.31
- BerkeleyDB 6.2.32
- Postfix 3.2.2
- pcre2 10.23
- Redis-3.2.9
- libpng 1.2.57, libpng 1.6.29, libgd 2.2.4 - Wie immer CVE Fixes...
- ICU 58.2 (International Components for Unicode)
- Roundcube 1.3.0 !! (fühlt sich jetzt wie Outlook an)
- PHPmyAdmin 4.7.3 (MariaDB Frontend) Aufzurufen über https://[GreenIP]/phpmyadmin

Die Postfix Konfiguration ist identisch zum Mail Gateway. Also mit heinlein-support SA Dankenbanken,
regex Filterlisten und auch den anderen Änderungen an der main.cf
https://forum.ipfire.org/viewtopic.php? ... 33#p101233

29.01.2017 Version 13
Änderungen:
- Apache 2.4.25
- PHP 7.0.15
- Postfix 3.1.4
- pcre2 10.22
- libpng 1.2.57 und 1.6.28 (letztere wird von Apache und PHP genutzt)
- libgd-2.2.3
- ICU 58.2 (International Components for Unicode)
- clamav 0.99.2 mit pcre2 kompiliert
- PHPmyAdmin 4.6.5.2

Bitte diesen Post beachten:
viewtopic.php?f=17&t=15328&start=45#p104803

24.12.2016 Version 12
Änderungen:
- MariaDB 10.1.19
- PHP 5.6.29
- Dovecot 2.2.27
- Dovecot-sieve 0.4.16 (pigonhole)
- mailutils-3.1.1
- Roundcube 1.2.3 Security Update!!!

Vor dem Update bitte prüfen ob "mysql -u root" sich ohne Fehler starten lässt!
Wenn nicht, schlägt das MariaDB-Update fehl! Es wird ein Backup der SQL-Datenbanken erstellt.

*** Installation ***
Per ssh oder putty mit IPfire verbinden und folgendes Skipt bzw. Text nach /tmp oder /var/tmp in eine Datei mit Namen start.sh kopieren. Die Datei mit chmod +x start.sh ausführbar machen und starten.

Das Startscript für die Installation: http://people.ipfire.org/~mlorenz/ms/start.txt

Und noch mal so:

Code: Select all

#!/bin/bash
PACKAGE="ms-installer_15.tar.xz";
SUM="d0f6f492d352644de7952ce23d6afb1b";
WORKDIR=${PWD};

check_package() {
 if [[ ! -e $WORKDIR/$PACKAGE ]]; then
    echo -e "\033[32mDownloading file...\033[0m";
    curl -sS --connect-timeout 30 -O https://people.ipfire.org/~mlorenz/ms/${PACKAGE};
    echo -e "\033[32mFile download success...\033[0m";
 else 
    echo "$PACKAGE local found...";
 fi;
 echo -e "\033[1;36mCheck the MD5 sum now...\033[0m";
 CHECK=$(md5sum "$WORKDIR/${PACKAGE}"| awk '{print $1}');
 if [[ "${SUM}" = "${CHECK}" ]]; then
    echo "Check MD5 sum of file: ${PACKAGE}";
    echo -e "MD5 sum is \033[32m${CHECK}\033[0m  \033[92mOK\033[0m  ";
    echo "MD5 sum is correct! Continuing installer...";
    echo " ";
 else
    echo -e "MD5 sum should be \033[92m${CHECK}\033[0m";
    echo -e "MD5 sum is        \033[91m${SUM}\033[0m and is not correct\033[0m ";
    echo -e "\033[1;31mShit happens :-( the MD5 sum is incorrect, please report this here\033[0m";
    echo " ";
    echo "--> http://forum.ipfire.org/viewtopic.php?f=17&t=15328";
    echo;
    exit 1;
 fi;
 echo -en "\033[32mUnpack files now...\033[0m";
 tar xf $WORKDIR/${PACKAGE};
 rm -f $WORKDIR/${PACKAGE};
 unset SUM PACKAGE CHECK;
 echo -e "\033[92mdone...\033[0m";
}

clear;
echo -e "\033[1;36m--------------------------------------------------------------------------------\033[0m";
echo -e "\033[1;36m-              This is the Mail Server file tester and downloader              -\033[0m";
echo -e "\033[1;36m--------------------------------------------------------------------------------\033[0m";
echo " ";
PLATFORM=$(uname -m);
if [[ $PLATFORM == armv5tel || $PLATFORM == armv5tejl || $PLATFORM == armv6l || $PLATFORM == armv7l ]]; then
  echo -e "\033[91mInstallation only on Intel platforms. ARM based systems are not supported!\033[0m";
  unset PLATFORM;
  exit 0;
fi;
check_package;
if [[ -e $WORKDIR/msstart.sh  ]]; then
  chmod +x $WORKDIR/msstart.sh
  echo -e "\033[32mStarting installer now...\033[0m";
  $WORKDIR/msstart.sh |tee $WORKDIR/msstart.log;
  rm -f $WORKDIR/ms_installer* $WORKDIR/msstart.sh;
else 
  echo "msstart.sh not found! quit installer!"
fi;
unset WORKDIR;
exit 0;
#End of start.sh
Wenn irgendwas nicht will oder es Probleme gibt, einfach hier Rückmeldung im Thread.
Grüße, gocart
Last edited by gocart on October 16th, 2017, 8:36 am, edited 161 times in total.

User avatar
gocart
Posts: 458
Joined: December 16th, 2013, 4:43 pm
Location: Germany

Re: Mailserver für IPFire mit Roudcube Frontend

Post by gocart » November 25th, 2015, 8:34 pm

Platzhalter...
Last edited by gocart on June 13th, 2016, 10:51 am, edited 5 times in total.

User avatar
gocart
Posts: 458
Joined: December 16th, 2013, 4:43 pm
Location: Germany

Re: Mailserver für IPFire mit Roudcube Frontend

Post by gocart » November 26th, 2015, 8:00 am

gelöscht / Platzhalter
Last edited by gocart on January 12th, 2016, 12:41 pm, edited 1 time in total.

dhr
Community Developer
Community Developer
Posts: 117
Joined: July 27th, 2009, 6:51 am

Re: Mailserver für IPFire mit Roudcube Frontend

Post by dhr » November 26th, 2015, 12:47 pm

das start script (start.sh) hat dabei einen neuen SHA1 Wert erhalten - man muss also den hier oben beschriebenen Wert einsetzen, sollte man die start.sh von vor ein paar Tagen haben

User avatar
gocart
Posts: 458
Joined: December 16th, 2013, 4:43 pm
Location: Germany

Re: Mailserver für IPFire mit Roudcube Frontend

Post by gocart » November 28th, 2015, 3:54 pm

Hallo... Der Mailserver-Installer in der Version 02 ist da... :)
Alles dazu im ersten Post. gocart

Friedemann
Posts: 9
Joined: May 10th, 2015, 9:24 pm

Re: Mailserver für IPFire mit Roudcube Frontend

Post by Friedemann » November 28th, 2015, 8:47 pm

Hallo gocart!

Beim Studium deines neuen Installer02 ist mir aufgefallen, dass die letzte
Zeile rm -f msstart.sh ms_installer01.tar.xz; in ....installer02... geändert werden
müßte.
Falls ich Unrecht haben sollte, nehme ich alles zurück und behaupte das Gegenteil.
;)
L.G. Friedemann

User avatar
gocart
Posts: 458
Joined: December 16th, 2013, 4:43 pm
Location: Germany

Re: Mailserver für IPFire mit Roudcube Frontend

Post by gocart » November 29th, 2015, 8:41 am

@Friedemann
du hast natürlich recht. Danke. Das sind so die kleinen Oberflächlichkeiten... ;)

@all
Ich bin am überlegen das Speicherformat von Dovecot zu ändern. Mein Favorit ist inzwischen "mdbox". Da "maildir" tausende kleine Dateien anlegt was nicht so schön ist, wenn die Postfächer größer werden. Ich bräuchte mal ein paar Meinungen. Belesen dazu kann man sich hier: http://wiki2.dovecot.org/MailboxFormat

ps. Das hin und her zu konvertieren in kein großes Problem. Habe ich schon getestet.

gocart

dhr
Community Developer
Community Developer
Posts: 117
Joined: July 27th, 2009, 6:51 am

Re: Mailserver für IPFire mit Roudcube Frontend

Post by dhr » November 29th, 2015, 10:27 am

gocart wrote: @all
Ich bin am überlegen das Speicherformat von Dovecot zu ändern. Mein Favorit ist inzwischen "mdbox". Da "maildir" tausende kleine Dateien anlegt was nicht so schön ist, wenn die Postfächer größer werden. Ich bräuchte mal ein paar Meinungen.
gocart
moin gocart,
hatte ich mir auch schon überlegt - bislang bin ich 'noch' davon abgekommen ...
Grund: 'This also means that you must not lose the dbox index files, they can't be regenerated without data loss' - die index-files dieses Formats halten nicht nur den index, sondern auch weitere Informationen.
Der zweite Grund: Ich wollte zunächst einmal eine saubere Migration der bisherigen Mails von cyrus-imap -> dovecot.

Andererseits bietet das dbox-Format einen Riesen-Vorteil bezüglich 'alternate-Storage' - man kann auf diese Weise seine Archive sehr schön auslagern, muss sie nicht ständig gemountet haben, und die Clients haben trotzdem alle benötigten Informationen.

just my 2cents for the moment

Dirk

User avatar
gocart
Posts: 458
Joined: December 16th, 2013, 4:43 pm
Location: Germany

Re: Mailserver für IPFire mit Roudcube Frontend

Post by gocart » November 30th, 2015, 5:44 pm

@dhr
kannst du mir das mit "alternate Storage" vielleicht kurz erläutern bzw. was du genau meinst. Steck in dieser Teilmaterie noch nicht so drin... :)
gocart

dhr
Community Developer
Community Developer
Posts: 117
Joined: July 27th, 2009, 6:51 am

Re: Mailserver für IPFire mit Roudcube Frontend

Post by dhr » December 1st, 2015, 8:07 am

Moin gocart,

steht eigentlich alles im Dovecot Wiki drinnen http://wiki2.dovecot.org/MailboxFormat/dbox.

kurz gesagt, hat man mit dbox die Möglichkeit für einen Mailfolder zwei locations anzugeben - einen wo drinnen sich normalerweise die Mails befinden, und einen der z.B. auf einem langsameren NAS liegt (über NFS oder wie auch immer angebunden). Mittels cron und 'doveadm altmove' schiebst Du dann Deine Mails die z.B. älter als 3 Monate sind auf das langsamere Speichermedium. Es werden aber nur die Daten 'gemoved', Indexe etc. bleiben erhalten, so dass nahezu keine Performanceverluste zu verzeichnen sind - für den Mailclient absolut transparent. Funktioniert sowohl mit sdbox als auch mit mdbox.

Gruss Dirk

dhr
Community Developer
Community Developer
Posts: 117
Joined: July 27th, 2009, 6:51 am

Re: Mailserver für IPFire mit Roundcube Frontend

Post by dhr » December 7th, 2015, 4:50 pm

@gocart + UE

habe jetzt bei uns die bisherigen maildir(s) zu mdbox(en) konvertiert. Auch damit läuft alles problemlos !!! inkl. Auslagerung älterer Mails per NFS auf langsameres Speichermedium (alternate storage).
Derzeit drei virtuelle Domänen mit (privaten) Mailboxen. Mail wird per 'fetchmail' von den verschiedenen Servern (web.de, gmx, gmail etc.) geholt. Weiterhin verschiedene 'shared Mailboxen' und in einer Domäne einen 'public' Bereich. Werde mir demnächst noch 'pigeonhole/sieve' als dovecot-plugin bauen, um die Unterverteilung der User-emails bereits auf dem Server machen zu können.
Spiele derzeit ein noch wenig mit dovecot herum - backup jobs bauen etc. - alles im Allem ist gocart da ein guter Wurf gelungen.

Gruss Dirk

User avatar
gocart
Posts: 458
Joined: December 16th, 2013, 4:43 pm
Location: Germany

Re: Mailserver für IPFire mit Roundcube Frontend

Post by gocart » December 7th, 2015, 8:15 pm

@dhr

Ok, dann ist im nächten Release das auf mdbox in den Templates umgestellt. Danke für testen.
Ja das pigeonhole/sieve fehlt noch / hatte ich noch keine Muße dazu, kommt aber noch.

Ich habe mich erst mal mit dem SALS Auth intensiver auseinander gesetzt. Also die Anmeldung an Postfix zum versenden von Mails mit Mailclients (Ausguck und Donnervogel 8) ). Und dass das AUTH erst angeboten wird, wenn TLS aktiv ist. Es gibt also ein neues Template für die main.cf von Postfix. Aber ich hab schon mal zu testen über Outlook mit STRG-C und STRG-V in das Dovecot IMAP-Konto eine große Menge an Mails "migriert" :)

Auch Quota ist von mir noch nicht getestet. Auch auf der to do-Liste.
Kontake ist da auch noch so eine spannende Frage... Es gibt noch viel zu tun...

gocart

dhr
Community Developer
Community Developer
Posts: 117
Joined: July 27th, 2009, 6:51 am

Re: Mailserver für IPFire mit Roundcube Frontend

Post by dhr » December 8th, 2015, 6:41 am

moin gocart,

ja, es gibt es viele spannende Sachen, die noch offen sind. Quota ist besonders spannend - ich habe derzeit quotas im dict - dict wiederum wird von der maria befeuert (damit die auch mal was zu tun hat, und ich keine Lust habe lokale user.dbs (passwd) zu führen, sondern alles via postfixadmin zu steuern).
Ein Problem ist, das bei der Einlieferung einer Mail, der MTA (Postfix) keine Ahnung von einer Quota-Regelung im MDA (Dovecot) hat, was im worst case zu einem 'late-bounce' führt. Bei dovecot ab v2.2 kann man allerdings einen Quota-Policy-Server einrichten, der von Postfix vor Annahme der email abgefragt wird.

Ich schicke Dir meine Anpassungen (main.cf, Datenbankstruktur etc.) mit Erklärung, sowie sie fertig sind (dauert noch ein paar Tage).

Gruss Dirk

User avatar
gocart
Posts: 458
Joined: December 16th, 2013, 4:43 pm
Location: Germany

Re: Mailserver für IPFire mit Roundcube Frontend

Post by gocart » December 12th, 2015, 4:37 pm

hallo @all
Die 03 ist da zum testen.... :)
gocart

dhr
Community Developer
Community Developer
Posts: 117
Joined: July 27th, 2009, 6:51 am

Re: Mailserver für IPFire mit Roundcube Frontend

Post by dhr » December 13th, 2015, 10:34 am

@gocart
dhr wrote:moin gocart,
Ich schicke Dir meine Anpassungen (main.cf, Datenbankstruktur etc.) mit Erklärung, sowie sie fertig sind (dauert noch ein paar Tage).
Gruss Dirk
da warst Du ja mal wieder schneller ;) Ich hatte es ganz ähnlich gelöst, nur domain-Quota anders und das funktionierte bisher bei mir nicht richtig ... Ich sehe Du hast das trash plugin aktiviert, aber ich finde keine Konfiguration dazu :o

plugin {
trash = /etc/dovecot/dovecot-trash.conf
}
Beispiel für dovecot-trash.conf:

Code: Select all

# Junk mailbox is emptied before Trash
1 Junk
# Trash mailbox is emptied before Drafts
2 Trash
3 Drafts
4 Sent Messages
Gruss Dirk

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest