Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| centos:mail_c7:roundcube_1 [09.09.2014 21:08. ] – [Installations-/Konfigurationsdokumentation] django | centos:mail_c7:roundcube_1 [18.11.2024 19:10. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 13: | Zeile 13: | ||
| # yum install php-pspell aspell-de php-mcrypt GraphicsMagick -y | # yum install php-pspell aspell-de php-mcrypt GraphicsMagick -y | ||
| - | Für die deutsche Rechtschreibkorrektur gibt es im [[centos: | + | Für die deutsche Rechtschreibkorrektur gibt es im [[centos: |
| - | Alternativ kann man natürlich acu das Paket manuell installieren. Hierzu laden wir das Paket [[http:// | + | Alternativ kann man natürlich acu das Paket manuell installieren. Hierzu laden wir das Paket [[http:// |
| # cd / | # cd / | ||
| - | # wget http:// | + | # wget http:// |
| Anschließend installieren wir dieses RPM mit Hilfe von **yum**. | Anschließend installieren wir dieses RPM mit Hilfe von **yum**. | ||
| Zeile 29: | Zeile 29: | ||
| # yum install roundcubemail -y | # yum install roundcubemail -y | ||
| - | ===== Konfiguration ===== | + | ==== Installations-/ |
| - | ==== Apachekonfig aus dem RPM ==== | + | |
| - | Da wir einen eigenen vHOST für den WEB-Mailer anbieten wollen und keine Unterverzeichniss-Konfiguration, | + | |
| - | # vim / | + | |
| - | + | ||
| - | <file apache / | + | |
| - | ## Round Cube Webmail is a browser-based multilingual IMAP client | + | |
| - | ## | + | |
| - | # | + | |
| - | #Alias / | + | |
| - | # | + | |
| - | ## Define who can access the Webmail | + | |
| - | ## You can enlarge permissions once configured | + | |
| - | # | + | |
| - | #< | + | |
| - | # < | + | |
| - | # # Apache 2.4 | + | |
| - | # Require local | + | |
| - | # </ | + | |
| - | # < | + | |
| - | # # Apache 2.2 | + | |
| - | # Order Deny, | + | |
| - | # Deny from all | + | |
| - | # Allow from 127.0.0.1 | + | |
| - | # Allow from ::1 | + | |
| - | # </ | + | |
| - | #</ | + | |
| - | # | + | |
| - | ## Define who can access the installer | + | |
| - | ## keep this secured once configured | + | |
| - | # | + | |
| - | #< | + | |
| - | # < | + | |
| - | # # Apache 2.4 | + | |
| - | # Require local | + | |
| - | # </ | + | |
| - | # < | + | |
| - | # # Apache 2.2 | + | |
| - | # Order Deny, | + | |
| - | # Deny from all | + | |
| - | # Allow from 127.0.0.1 | + | |
| - | # Allow from ::1 | + | |
| - | # </ | + | |
| - | #</ | + | |
| - | # | + | |
| - | ## Those directories should not be viewed by Web clients. | + | |
| - | #< | + | |
| - | # Order Allow, | + | |
| - | # Deny from all | + | |
| - | #</ | + | |
| - | #< | + | |
| - | # Order Allow, | + | |
| - | # Deny from all | + | |
| - | #</ | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | ==== Apache vHost ==== | + | |
| - | Für unsere Webmailer richten wir uns nun einen geeigneten vHost ein. Im Konfigurationsverzeichnis unseres [[centos: | + | |
| - | # vim / | + | |
| - | <file apache / | + | |
| - | # roundcubemail.sec-mail.guru | + | |
| - | # | + | |
| - | < | + | |
| - | ServerAdmin webmaster@nausch.org | + | |
| - | ServerName roundcubemail.sec-mail.guru | + | |
| - | ServerPath / | + | |
| - | + | ||
| - | < | + | |
| - | Options -Indexes +FollowSymLinks | + | |
| - | Require all granted | + | |
| - | </ | + | |
| - | + | ||
| - | RewriteEngine on | + | |
| - | RewriteCond %{HTTPS} off | + | |
| - | RewriteRule (.*) https:// | + | |
| - | + | ||
| - | DirectoryIndex index.php | + | |
| - | + | ||
| - | ErrorLog logs/ | + | |
| - | CustomLog logs/ | + | |
| - | </ | + | |
| - | < | + | |
| - | ServerAdmin webmaster@nausch.org | + | |
| - | ServerName roundcubemail.sec-mail.guru | + | |
| - | ServerPath / | + | |
| - | DocumentRoot "/ | + | |
| - | + | ||
| - | # Django | + | |
| - | # Required, because there is a host with same ServerName and | + | |
| - | # ServerAlias LISTENING ON PORT 80, - and if these lines are | + | |
| - | # not present, and .htaccess-Files or LDAP-Access is enabled | + | |
| - | # for one or more Directory the host on PORT 443 and PORT 80 | + | |
| - | # will ASK for .htaccess ord LDAP-Access, | + | |
| - | # ---------------------------------------------------------- | + | |
| - | # -- DO NOT DELETE THE FOLLOWING LINES, STARTING WITH SSL -- | + | |
| - | # -- WHEN USING .htaccess or LDAP-Access! | + | |
| - | # ---------------------------------------------------------- | + | |
| - | SSLEngine on | + | |
| - | SSLProtocol -ALL +SSLv3 +TLSv1 | + | |
| - | SSLCipherSuite EECDH+AES256: | + | |
| - | SSLHonorCipherOrder on | + | |
| - | SSLCertificateFile / | + | |
| - | SSLCertificateKeyFile / | + | |
| - | SSLCertificateChainFile / | + | |
| - | + | ||
| - | # Define who can access the Webmail | + | |
| - | # You can enlarge permissions once configured | + | |
| - | < | + | |
| - | < | + | |
| - | # before configuration | + | |
| - | Require local | + | |
| - | # after configuration | + | |
| - | # Require all granted | + | |
| - | </ | + | |
| - | </ | + | |
| - | + | ||
| - | # Define who can access the installer | + | |
| - | # keep this secured once configured | + | |
| - | < | + | |
| - | < | + | |
| - | # while configuration | + | |
| - | Require host nausch.org | + | |
| - | # after configuration | + | |
| - | # Require local | + | |
| - | </ | + | |
| - | </ | + | |
| - | + | ||
| - | # Those directories should not be viewed by Web clients. | + | |
| - | < | + | |
| - | Require all denied | + | |
| - | </ | + | |
| - | < | + | |
| - | Require all denied | + | |
| - | </ | + | |
| - | + | ||
| - | DirectoryIndex index.php | + | |
| - | ErrorLog logs/ | + | |
| - | CustomLog logs/ | + | |
| - | </ | + | |
| - | </ | + | |
| - | + | ||
| - | <WRAP round important> | + | |
| - | + | ||
| - | Solange wir unseren vHost noch nicht in der Produktionsumgebung steht und fertig konfiguriert wurde, beschränken wir den Zugriff auf den vHost noch. In der obigen Apache-vHOST ist dies bereits berücksichtigt! | + | |
| - | + | ||
| - | Erst nach erfolgter Konfiguration geben wir den vHOST für unsere Nutzer frei; hierzu tragen wir in der **Directive // | + | |
| - | <code apache> | + | |
| - | + | ||
| - | # Define who can access the Webmail | + | |
| - | # You can enlarge permissions once configured | + | |
| - | + | ||
| - | < | + | |
| - | < | + | |
| - | # before configuration | + | |
| - | # Require local | + | |
| - | # after configuration | + | |
| - | Require all granted | + | |
| - | </ | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | # Define who can access the installer | + | |
| - | # keep this secured once configured | + | |
| - | < | + | |
| - | < | + | |
| - | # while configuration | + | |
| - | # Require host 10.0.0 | + | |
| - | # after configuration | + | |
| - | Require local | + | |
| - | </ | + | |
| - | </ | + | |
| - | + | ||
| - | ... | + | |
| - | </ | + | |
| - | </ | + | |
| - | + | ||
| - | Bevor unseren Webserver starten, damit der neue vHost auch bedient werden kann, überprüfen wir die Konfiguration noch auf syntaktische Fehler. | + | |
| - | # apachectl -t | + | |
| - | + | ||
| - | Ist alles O.K. dann steht einem Reload des Apache httpd nichts mehr im Wege. | + | |
| - | # systemctl reload httpd.service | + | |
| - | + | ||
| - | Wollen wir den Reload kontrollieren, | + | |
| - | # systemctl status httpd.service | + | |
| - | + | ||
| - | < | + | |
| - | | + | |
| - | | + | |
| - | Process: 20019 ExecStop=/ | + | |
| - | Process: 20368 ExecReload=/ | + | |
| - | Main PID: 20024 (httpd) | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | Sep 09 22:15:07 vml000097.dmz.nausch.org systemd[1]: Reloading The Apache HTTP Server. | + | |
| - | Sep 09 22:15:07 vml000097.dmz.nausch.org systemd[1]: Reloaded The Apache HTTP Server. | + | |
| - | </ | + | |
| - | + | ||
| - | ===== Installations-/ | + | |
| Im RPM finden wir eine ausführliche Dokumentation zur Konfiguration von **roundcubemail** | Im RPM finden wir eine ausführliche Dokumentation zur Konfiguration von **roundcubemail** | ||
| # cat / | # cat / | ||
| - | < | + | <file / |
| ============ | ============ | ||
| Zeile 481: | Zeile 276: | ||
| in main configuration file. ESEARCH implementation in this server is broken (#1489184). | in main configuration file. ESEARCH implementation in this server is broken (#1489184). | ||
| </ | </ | ||
| + | |||
| + | ===== Konfiguration ===== | ||
| + | ==== Apachekonfig aus dem RPM ==== | ||
| + | Da wir einen eigenen vHOST für den WEB-Mailer anbieten wollen und keine Unterverzeichniss-Konfiguration, | ||
| + | # vim / | ||
| + | |||
| + | <file apache / | ||
| + | ## Round Cube Webmail is a browser-based multilingual IMAP client | ||
| + | ## | ||
| + | # | ||
| + | #Alias / | ||
| + | # | ||
| + | ## Define who can access the Webmail | ||
| + | ## You can enlarge permissions once configured | ||
| + | # | ||
| + | #< | ||
| + | # < | ||
| + | # # Apache 2.4 | ||
| + | # Require local | ||
| + | # </ | ||
| + | # < | ||
| + | # # Apache 2.2 | ||
| + | # Order Deny,Allow | ||
| + | # Deny from all | ||
| + | # Allow from 127.0.0.1 | ||
| + | # Allow from ::1 | ||
| + | # </ | ||
| + | #</ | ||
| + | # | ||
| + | ## Define who can access the installer | ||
| + | ## keep this secured once configured | ||
| + | # | ||
| + | #< | ||
| + | # < | ||
| + | # # Apache 2.4 | ||
| + | # Require local | ||
| + | # </ | ||
| + | # < | ||
| + | # # Apache 2.2 | ||
| + | # Order Deny,Allow | ||
| + | # Deny from all | ||
| + | # Allow from 127.0.0.1 | ||
| + | # Allow from ::1 | ||
| + | # </ | ||
| + | #</ | ||
| + | # | ||
| + | ## Those directories should not be viewed by Web clients. | ||
| + | #< | ||
| + | # Order Allow,Deny | ||
| + | # Deny from all | ||
| + | #</ | ||
| + | #< | ||
| + | # Order Allow,Deny | ||
| + | # Deny from all | ||
| + | #</ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Apache vHost ==== | ||
| + | Für unsere Webmailer richten wir uns nun einen geeigneten vHost ein. Im Konfigurationsverzeichnis unseres [[centos: | ||
| + | # vim / | ||
| + | <file apache / | ||
| + | # roundcubemail.sec-mail.guru | ||
| + | # | ||
| + | < | ||
| + | ServerAdmin webmaster@nausch.org | ||
| + | ServerName roundcubemail.sec-mail.guru | ||
| + | ServerPath / | ||
| + | |||
| + | < | ||
| + | Options -Indexes +FollowSymLinks | ||
| + | Require all granted | ||
| + | </ | ||
| + | |||
| + | RewriteEngine on | ||
| + | RewriteCond %{HTTPS} off | ||
| + | RewriteRule (.*) https:// | ||
| + | |||
| + | DirectoryIndex index.php | ||
| + | |||
| + | ErrorLog logs/ | ||
| + | CustomLog logs/ | ||
| + | </ | ||
| + | < | ||
| + | ServerAdmin webmaster@nausch.org | ||
| + | ServerName roundcubemail.sec-mail.guru | ||
| + | ServerPath / | ||
| + | DocumentRoot "/ | ||
| + | |||
| + | # Django | ||
| + | # Required, because there is a host with same ServerName and | ||
| + | # ServerAlias LISTENING ON PORT 80, - and if these lines are | ||
| + | # not present, and .htaccess-Files or LDAP-Access is enabled | ||
| + | # for one or more Directory the host on PORT 443 and PORT 80 | ||
| + | # will ASK for .htaccess ord LDAP-Access, | ||
| + | # ---------------------------------------------------------- | ||
| + | # -- DO NOT DELETE THE FOLLOWING LINES, STARTING WITH SSL -- | ||
| + | # -- WHEN USING .htaccess or LDAP-Access! | ||
| + | # ---------------------------------------------------------- | ||
| + | SSLEngine on | ||
| + | SSLProtocol -ALL +SSLv3 +TLSv1 | ||
| + | SSLCipherSuite EECDH+AES256: | ||
| + | SSLHonorCipherOrder on | ||
| + | SSLCertificateFile / | ||
| + | SSLCertificateKeyFile / | ||
| + | SSLCertificateChainFile / | ||
| + | |||
| + | # Define who can access the Webmail | ||
| + | # You can enlarge permissions once configured | ||
| + | < | ||
| + | < | ||
| + | # before configuration | ||
| + | Require local | ||
| + | # after configuration | ||
| + | # Require all granted | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | # Define who can access the installer | ||
| + | # keep this secured once configured | ||
| + | < | ||
| + | < | ||
| + | # while configuration | ||
| + | Require host nausch.org | ||
| + | # after configuration | ||
| + | # Require local | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | # Those directories should not be viewed by Web clients. | ||
| + | < | ||
| + | Require all denied | ||
| + | </ | ||
| + | < | ||
| + | Require all denied | ||
| + | </ | ||
| + | |||
| + | DirectoryIndex index.php | ||
| + | ErrorLog logs/ | ||
| + | CustomLog logs/ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP round important> | ||
| + | |||
| + | Solange wir unseren vHost noch nicht in der Produktionsumgebung steht und fertig konfiguriert wurde, beschränken wir den Zugriff auf den vHost noch. In der obigen Apache-vHOST ist dies bereits berücksichtigt! | ||
| + | |||
| + | Erst nach erfolgter Konfiguration geben wir den vHOST für unsere Nutzer frei; hierzu tragen wir in der **Directive // | ||
| + | <code apache> | ||
| + | |||
| + | # Define who can access the Webmail | ||
| + | # You can enlarge permissions once configured | ||
| + | |||
| + | < | ||
| + | < | ||
| + | # before configuration | ||
| + | # Require local | ||
| + | # after configuration | ||
| + | Require all granted | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | # Define who can access the installer | ||
| + | # keep this secured once configured | ||
| + | < | ||
| + | < | ||
| + | # while configuration | ||
| + | # Require host 10.0.0 | ||
| + | # after configuration | ||
| + | Require local | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ... | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Bevor unseren Webserver starten, damit der neue vHost auch bedient werden kann, überprüfen wir die Konfiguration noch auf syntaktische Fehler. | ||
| + | # apachectl -t | ||
| + | |||
| + | Ist alles O.K. dann steht einem Reload des Apache httpd nichts mehr im Wege. | ||
| + | # systemctl reload httpd.service | ||
| + | |||
| + | Wollen wir den Reload kontrollieren, | ||
| + | # systemctl status httpd.service | ||
| + | |||
| + | < | ||
| + | | ||
| + | | ||
| + | Process: 20019 ExecStop=/ | ||
| + | Process: 20368 ExecReload=/ | ||
| + | Main PID: 20024 (httpd) | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | Sep 09 22:15:07 vml000097.dmz.nausch.org systemd[1]: Reloading The Apache HTTP Server. | ||
| + | Sep 09 22:15:07 vml000097.dmz.nausch.org systemd[1]: Reloaded The Apache HTTP Server. | ||
| + | </ | ||
| + | |||
| ==== mySQL Datenbank ==== | ==== mySQL Datenbank ==== | ||
| Zeile 579: | Zeile 580: | ||
| Enter password: | Enter password: | ||
| - | ==== Datenbank-Anbindung | + | ==== PHP Date.Timezone |
| - | Damit roundcube | + | Damit der Installer |
| + | # vim / | ||
| + | |||
| + | <code php> | ||
| + | |||
| + | [Date] | ||
| + | ; Defines the default timezone used by the date functions | ||
| + | ; http:// | ||
| + | ; Django : 2014-09-09 | ||
| + | ; default: ; | ||
| + | date.timezone = " | ||
| + | |||
| + | ; http:// | ||
| + | ; | ||
| + | |||
| + | ; http:// | ||
| + | ; | ||
| + | |||
| + | ; http:// | ||
| + | ; | ||
| + | |||
| + | ; http:// | ||
| + | ; | ||
| + | |||
| + | ... | ||
| + | </ | ||
| + | |||
| + | Haben wir eine Änderung vorgenommen, | ||
| + | # systemctl reload httpd.service | ||
| + | |||
| + | ==== Roundcube Konfiguration ==== | ||
| + | Die Konfiguration von Roundcube erfolgt über die zentrale Konfigurationsdatei **config.inc.php** im Verzeichnis // | ||
| + | |||
| + | Die einfachste Variante diese Konfigurationsdatei zu erstellen ist über die WEB-GUI. Alternativ kann man natürlich auch die Datei direkt per Hand installieren. Werfen wir zu erst einmal einen Blick auf die Konfiguration mit Hilfe der WEB-GUI; hierzu rufen wir die **/ | ||
| + | $ firefox https:// | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Auf der ersten Seite **//Check environment// | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Hat man alle Angaben für die Konfiguration unseres WEB-Mailers eingetragen, | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Hier haben wir zwei Möglichkeiten. Entweder wir kopieren den Text direkt aus dem Anzeigefenster und fügen den kopierten Text dann in die Datei // | ||
| + | |||
| + | # less / | ||
| + | <file php / | ||
| + | |||
| + | /* Local configuration for Roundcube Webmail */ | ||
| + | |||
| + | // ---------------------------------- | ||
| + | // SQL DATABASE | ||
| + | // ---------------------------------- | ||
| + | // Database connection string (DSN) for read+write operations | ||
| + | // Format (compatible with PEAR MDB2): db_provider:// | ||
| + | // Currently supported db_providers: | ||
| + | // For examples see http:// | ||
| + | // NOTE: for SQLite use absolute path: ' | ||
| + | $config[' | ||
| + | |||
| + | // ---------------------------------- | ||
| + | // IMAP | ||
| + | // ---------------------------------- | ||
| + | // The mail host chosen to perform the log-in. | ||
| + | // Leave blank to show a textbox at login, give a list of hosts | ||
| + | // to display a pulldown menu or set one host as string. | ||
| + | // To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// | ||
| + | // Supported replacement variables: | ||
| + | // %n - hostname ($_SERVER[' | ||
| + | // %t - hostname without the first part | ||
| + | // %d - domain (http hostname $_SERVER[' | ||
| + | // %s - domain name after the ' | ||
| + | // For example %n = mail.domain.tld, | ||
| + | // WARNING: After hostname change update of mail_host column in users table is | ||
| + | // required to match old user data records with the new host. | ||
| + | $config[' | ||
| + | |||
| + | // ---------------------------------- | ||
| + | // SMTP | ||
| + | // ---------------------------------- | ||
| + | // SMTP server host (for sending mails). | ||
| + | // To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// | ||
| + | // If left blank, the PHP mail() function is used | ||
| + | // Supported replacement variables: | ||
| + | // %h - user's IMAP hostname | ||
| + | // %n - hostname ($_SERVER[' | ||
| + | // %t - hostname without the first part | ||
| + | // %d - domain (http hostname $_SERVER[' | ||
| + | // %z - IMAP domain (IMAP hostname without the first part) | ||
| + | // For example %n = mail.domain.tld, | ||
| + | $config[' | ||
| + | |||
| + | // provide an URL where a user can get support for this Roundcube installation | ||
| + | // PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE! | ||
| + | $config[' | ||
| + | |||
| + | // automatically create a new Roundcube user when log-in the first time. | ||
| + | // a new user will be created once the IMAP login succeeds. | ||
| + | // set to false if only registered users can use this service | ||
| + | $config[' | ||
| + | |||
| + | // this key is used to encrypt the users imap password which is stored | ||
| + | // in the session record (and the client cookie if remember password is enabled). | ||
| + | // please provide a string of exactly 24 chars. | ||
| + | $config[' | ||
| + | |||
| + | // ---------------------------------- | ||
| + | // PLUGINS | ||
| + | // ---------------------------------- | ||
| + | // List of active plugins (in plugins/ directory) | ||
| + | $config[' | ||
| + | |||
| + | // the default locale setting (leave empty for auto-detection) | ||
| + | // RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR | ||
| + | $config[' | ||
| + | |||
| + | // store spam messages in this mailbox | ||
| + | // NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) | ||
| + | $config[' | ||
| + | |||
| + | // display these folders separately in the mailbox list. | ||
| + | // these folders will also be displayed with localized names | ||
| + | // NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) | ||
| + | $config[' | ||
| + | |||
| + | // Set the spell checking engine. Possible values: | ||
| + | // - ' | ||
| + | // - ' | ||
| + | // - ' | ||
| + | // - ' | ||
| + | // Since Google shut down their public spell checking service, you need to | ||
| + | // connect to a Nox Spell Server when using ' | ||
| + | $config[' | ||
| + | |||
| + | // prefer displaying HTML messages | ||
| + | $config[' | ||
| + | |||
| + | // Encoding of long/ | ||
| + | // 0 - Full RFC 2231 compatible | ||
| + | // 1 - RFC 2047 for ' | ||
| + | // 2 - Full 2047 compatible | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | Anschließend passen wir noch die Dateirechte der konfigurationsdatei an. | ||
| + | # chmod 640 / | ||
| + | |||
| + | # chown root.apache / | ||
| + | |||
| + | Nun können wir auf der WEB-GUI die Schaltfläche **[ CONTINUE ]** anklicken um zum dritten Schritt //**Test config**// zu gelangen. | ||
| + | |||
| + | |||
| + | {{ : | ||
| + | |||
| + | Sind alle Tests bestanden, können wir den **installer** deaktivieren und die Anwendung für den abschließenden Test " | ||
| + | |||
| + | <WRAP round tip> | ||
| + | Wir ändern nun die **Directive // | ||
| + | < | ||
| + | |||
| + | # Define who can access the Webmail | ||
| + | # You can enlarge permissions once configured | ||
| + | |||
| + | < | ||
| + | < | ||
| + | # before configuration | ||
| + | # Require local | ||
| + | # after configuration | ||
| + | Require all granted | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | # Define who can access the installer | ||
| + | # keep this secured once configured | ||
| + | < | ||
| + | < | ||
| + | # while configuration | ||
| + | # Require host 10.0.0 | ||
| + | # after configuration | ||
| + | Require local | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ... | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Ob die Sperrung des **installer** passt, kontrollieren wir einfach durch einen erneuten Aufruf der betreffenden URL. | ||
| + | $ firefox https:// | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Test eins ist schon mal bestanden, wir rufen also als nächstes die URL unseres Webmailers auf. | ||
| + | $ firefox https:// | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Wir erreichen die Anmeldemaske und nun steht nur noch der Test an, ob wir uns auch anmelden können. | ||
| + | |||
| + | |||
| + | {{ : | ||
| + | |||
| + | ===== Plugins ===== | ||
| + | Mit Hilfe von Plugins | ||
| + | # / | ||
| + | |||
| + | < | ||
| + | ├── acl | ||
| + | ├── additional_message_headers | ||
| + | ├── archive | ||
| + | ├── attachment_reminder | ||
| + | ├── autologon | ||
| + | ├── database_attachments | ||
| + | ├── debug_logger | ||
| + | ├── emoticons | ||
| + | ├── enigma | ||
| + | ├── example_addressbook | ||
| + | ├── filesystem_attachments | ||
| + | ├── help | ||
| + | ├── hide_blockquote | ||
| + | ├── http_authentication | ||
| + | ├── identity_select | ||
| + | ├── jqueryui | ||
| + | ├── managesieve | ||
| + | ├── markasjunk | ||
| + | ├── newmail_notifier | ||
| + | ├── new_user_dialog | ||
| + | ├── new_user_identity | ||
| + | ├── password | ||
| + | ├── redundant_attachments | ||
| + | ├── show_additional_headers | ||
| + | ├── squirrelmail_usercopy | ||
| + | ├── subscriptions_option | ||
| + | ├── userinfo | ||
| + | ├── vcard_attachments | ||
| + | ├── virtuser_file | ||
| + | ├── virtuser_query | ||
| + | └── zipdownload | ||
| + | </ | ||
| + | |||
| + | In unserem konfigurationsbeispiel beschränken wir uns dabei auf die drei wichtigsten Plugins, nämlich **Password** und **Managesieve** und **ACL**. Hierzu tragen wir die drei Plugins bei der Konfigurations-Array **plugins** ein. | ||
| + | |||
| + | # vim / | ||
| + | <code php> | ||
| + | |||
| + | // ---------------------------------- | ||
| + | // PLUGINS | ||
| + | // ---------------------------------- | ||
| + | // List of active plugins (in plugins/ directory) | ||
| + | $config[' | ||
| + | |||
| + | ... | ||
| + | </ | ||
| + | ==== Password ==== | ||
| + | Damit unsere User später Ihr **[[centos: | ||
| + | Als erstes kopieren wir die Vorgabedatei, | ||
| + | # cp -a / | ||
| + | |||
| + | Anschließend bearbeiten wir diese Datei und tragen dort die Datenbankanbindung | ||
| + | # vim / | ||
| + | <file php / | ||
| + | |||
| + | // Password Plugin options | ||
| + | // ----------------------- | ||
| + | // A driver to use for password change. Default: " | ||
| + | // See README file for list of supported driver names. | ||
| + | $config[' | ||
| + | |||
| + | // Determine whether current password is required to change password. | ||
| + | // Default: false. | ||
| + | $config[' | ||
| + | |||
| + | // Require the new password to be a certain length. | ||
| + | // set to blank to allow passwords of any length | ||
| + | // Django : 2014-09-10 | ||
| + | // default: $config[' | ||
| + | $config[' | ||
| + | |||
| + | // Require the new password to contain a letter and punctuation character | ||
| + | // Change to false to remove this check. | ||
| + | // Django : 2014-09-10 | ||
| + | // default: $config[' | ||
| + | $config[' | ||
| + | |||
| + | // Enables logging of password changes into logs/ | ||
| + | $config[' | ||
| + | |||
| + | // Comma-separated list of login exceptions for which password change | ||
| + | // will be not available (no Password tab in Settings) | ||
| + | $config[' | ||
| + | |||
| + | // Array of hosts that support password changing. Default is NULL. | ||
| + | // Listed hosts will feature a Password option in Settings; others will not. | ||
| + | // Example: | ||
| + | // | ||
| + | $config[' | ||
| + | |||
| + | // Enables saving the new password even if it matches the old password. Useful | ||
| + | // for upgrading the stored passwords after the encryption scheme has changed. | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // SQL Driver options | ||
| + | // ------------------ | ||
| + | // PEAR database DSN for performing the query. By default | ||
| + | // Roundcube DB settings are used. | ||
| + | // Django : 2014-09-10 | ||
| + | // default: $config[' | ||
| + | $config[' | ||
| + | |||
| + | // The SQL query used to change the password. | ||
| + | // The query can contain the following macros that will be expanded as follows: | ||
| + | // %p is replaced with the plaintext new password | ||
| + | // %c is replaced with the crypt version of the new password, MD5 if available | ||
| + | // | ||
| + | // | ||
| + | // %D is replaced with the dovecotpw-crypted version of the new password | ||
| + | // %o is replaced with the password before the change | ||
| + | // %n is replaced with the hashed version of the new password | ||
| + | // %q is replaced with the hashed password before the change | ||
| + | // %h is replaced with the imap host (from the session info) | ||
| + | // %u is replaced with the username (from the session info) | ||
| + | // %l is replaced with the local part of the username | ||
| + | // (in case the username is an email address) | ||
| + | // %d is replaced with the domain part of the username | ||
| + | // (in case the username is an email address) | ||
| + | // Escaping of macros is handled by this module. | ||
| + | // Default: " | ||
| + | // Django : 2014-09-10 | ||
| + | // default: $config[' | ||
| + | $config[' | ||
| + | |||
| + | // By default the crypt() function which is used to create the ' | ||
| + | // parameter uses the md5 algorithm. To use different algorithms | ||
| + | // you can choose between: des, md5, blowfish, sha256, sha512. | ||
| + | // Before using other hash functions than des or md5 please make sure | ||
| + | // your operating system supports the other hash functions. | ||
| + | $config[' | ||
| + | |||
| + | // By default domains in variables are using unicode. | ||
| + | // Enable this option to use punycoded names | ||
| + | $config[' | ||
| + | |||
| + | // Path for dovecotpw (if not in $PATH) | ||
| + | // $config[' | ||
| + | |||
| + | // Dovecot method (dovecotpw -s ' | ||
| + | // Django : 2014-09-10 | ||
| + | // default: $config[' | ||
| + | $config[' | ||
| + | |||
| + | // Enables use of password with crypt method prefix in %D, e.g. {MD5}$1$LUiMYWqx$fEkg/ | ||
| + | $config[' | ||
| + | |||
| + | // Using a password hash for %n and %q variables. | ||
| + | // Determine which hashing algorithm should be used to generate | ||
| + | // the hashed new and current password for using them within the | ||
| + | // SQL query. Requires PHP's ' | ||
| + | $config[' | ||
| + | |||
| + | // You can also decide whether the hash should be provided | ||
| + | // as hex string or in base64 encoded format. | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // Poppassd Driver options | ||
| + | // ----------------------- | ||
| + | // The host which changes the password | ||
| + | $config[' | ||
| + | |||
| + | // TCP port used for poppassd connections | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // SASL Driver options | ||
| + | // ------------------- | ||
| + | // Additional arguments for the saslpasswd2 call | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // LDAP and LDAP_SIMPLE Driver options | ||
| + | // ----------------------------------- | ||
| + | // LDAP server name to connect to. | ||
| + | // You can provide one or several hosts in an array in which case the hosts are tried from left to right. | ||
| + | // Exemple: array(' | ||
| + | // Default: ' | ||
| + | $config[' | ||
| + | |||
| + | // LDAP server port to connect to | ||
| + | // Default: ' | ||
| + | $config[' | ||
| + | |||
| + | // TLS is started after connecting | ||
| + | // Using TLS for password modification is recommanded. | ||
| + | // Default: false | ||
| + | $config[' | ||
| + | |||
| + | // LDAP version | ||
| + | // Default: ' | ||
| + | $config[' | ||
| + | |||
| + | // LDAP base name (root directory) | ||
| + | // Exemple: ' | ||
| + | $config[' | ||
| + | |||
| + | // LDAP connection method | ||
| + | // There is two connection method for changing a user's LDAP password. | ||
| + | // ' | ||
| + | // ' | ||
| + | // Default: ' | ||
| + | $config[' | ||
| + | |||
| + | // LDAP Admin DN | ||
| + | // Used only in admin connection mode | ||
| + | // Default: null | ||
| + | $config[' | ||
| + | |||
| + | // LDAP Admin Password | ||
| + | // Used only in admin connection mode | ||
| + | // Default: null | ||
| + | $config[' | ||
| + | |||
| + | // LDAP user DN mask | ||
| + | // The user's DN is mandatory and as we only have his login, | ||
| + | // we need to re-create his DN using a mask | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // Exemple: ' | ||
| + | $config[' | ||
| + | |||
| + | // LDAP search DN | ||
| + | // The DN roundcube should bind with to find out user's DN | ||
| + | // based on his login. Note that you should comment out the default | ||
| + | // password_ldap_userDN_mask setting for this to take effect. | ||
| + | // Use this if you cannot specify a general template for user DN with | ||
| + | // password_ldap_userDN_mask. You need to perform a search based on | ||
| + | // users login to find his DN instead. A common reason might be that | ||
| + | // your users are placed under different ou's like engineering or | ||
| + | // sales which cannot be derived from their login only. | ||
| + | $config[' | ||
| + | |||
| + | // LDAP search password | ||
| + | // If password_ldap_searchDN is set, the password to use for | ||
| + | // binding to search for user's DN. Note that you should comment out the default | ||
| + | // password_ldap_userDN_mask setting for this to take effect. | ||
| + | // Warning: Be sure to set approperiate permissions on this file so this password | ||
| + | // is only accesible to roundcube and don't forget to restrict roundcube' | ||
| + | // your directory as much as possible using ACLs. Should this password be compromised | ||
| + | // you want to minimize the damage. | ||
| + | $config[' | ||
| + | |||
| + | // LDAP search base | ||
| + | // If password_ldap_searchDN is set, the base to search in using the filter below. | ||
| + | // Note that you should comment out the default password_ldap_userDN_mask setting | ||
| + | // for this to take effect. | ||
| + | $config[' | ||
| + | |||
| + | // LDAP search filter | ||
| + | // If password_ldap_searchDN is set, the filter to use when | ||
| + | // searching for user's DN. Note that you should comment out the default | ||
| + | // password_ldap_userDN_mask setting for this to take effect. | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // Example: ' | ||
| + | // Example: ' | ||
| + | $config[' | ||
| + | |||
| + | // LDAP password hash type | ||
| + | // Standard LDAP encryption type which must be one of: crypt, | ||
| + | // ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, ad or clear. | ||
| + | // Please note that most encodage types require external libraries | ||
| + | // to be included in your PHP installation, | ||
| + | // Default: ' | ||
| + | $config[' | ||
| + | |||
| + | // LDAP password attribute | ||
| + | // Name of the ldap's attribute used for storing user password | ||
| + | // Default: ' | ||
| + | $config[' | ||
| + | |||
| + | // LDAP password force replace | ||
| + | // Force LDAP replace in cases where ACL allows only replace not read | ||
| + | // See http:// | ||
| + | // Default: true | ||
| + | $config[' | ||
| + | |||
| + | // LDAP Password Last Change Date | ||
| + | // Some places use an attribute to store the date of the last password change | ||
| + | // The date is meassured in "days since epoch" (an integer value) | ||
| + | // Whenever the password is changed, the attribute will be updated if set (e.g. shadowLastChange) | ||
| + | $config[' | ||
| + | |||
| + | // LDAP Samba password attribute, e.g. sambaNTPassword | ||
| + | // Name of the LDAP's Samba attribute used for storing user password | ||
| + | $config[' | ||
| + | |||
| + | // LDAP Samba Password Last Change Date attribute, e.g. sambaPwdLastSet | ||
| + | // Some places use an attribute to store the date of the last password change | ||
| + | // The date is meassured in " | ||
| + | // Whenever the password is changed, the attribute will be updated if set | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // DirectAdmin Driver options | ||
| + | // -------------------------- | ||
| + | // The host which changes the password | ||
| + | // Use ' | ||
| + | // The host can contain the following macros that will be expanded as follows: | ||
| + | // %h is replaced with the imap host (from the session info) | ||
| + | // %d is replaced with the domain part of the username (if the username is an email) | ||
| + | $config[' | ||
| + | |||
| + | // TCP port used for DirectAdmin connections | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // vpopmaild Driver options | ||
| + | // ----------------------- | ||
| + | // The host which changes the password | ||
| + | $config[' | ||
| + | |||
| + | // TCP port used for vpopmaild connections | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // cPanel Driver options | ||
| + | // -------------------------- | ||
| + | // The cPanel Host name | ||
| + | $config[' | ||
| + | |||
| + | // The cPanel admin username | ||
| + | $config[' | ||
| + | |||
| + | // The cPanel admin password | ||
| + | $config[' | ||
| + | |||
| + | // The cPanel port to use | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // XIMSS (Communigate server) Driver options | ||
| + | // ----------------------------------------- | ||
| + | // Host name of the Communigate server | ||
| + | $config[' | ||
| + | |||
| + | // XIMSS port on Communigate server | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // chpasswd Driver options | ||
| + | // --------------------- | ||
| + | // Command to use | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // XMail Driver options | ||
| + | // --------------------- | ||
| + | $config[' | ||
| + | $config[' | ||
| + | $config[' | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // hMail Driver options | ||
| + | // ----------------------- | ||
| + | // Remote hMailServer configuration | ||
| + | // true: HMailserver is on a remote box (php.ini: com.allow_dcom = true) | ||
| + | // false: Hmailserver is on same box as PHP | ||
| + | $config[' | ||
| + | // Windows credentials | ||
| + | $config[' | ||
| + | 'Server' => ' | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | |||
| + | |||
| + | // Virtualmin Driver options | ||
| + | // ------------------------- | ||
| + | // Username format: | ||
| + | // 0: username@domain | ||
| + | // 1: username%domain | ||
| + | // 2: username.domain | ||
| + | // 3: domain.username | ||
| + | // 4: username-domain | ||
| + | // 5: domain-username | ||
| + | // 6: username_domain | ||
| + | // 7: domain_username | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // pw_usermod Driver options | ||
| + | // -------------------------- | ||
| + | // Use comma delimited exlist to disable password change for users | ||
| + | // Add the following line to visudo to tighten security: | ||
| + | // www ALL=NOPASSWORD: | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // DBMail Driver options | ||
| + | // ------------------- | ||
| + | // Additional arguments for the dbmail-users call | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // Expect Driver options | ||
| + | // --------------------- | ||
| + | // Location of expect binary | ||
| + | $config[' | ||
| + | |||
| + | // Location of expect script (see helpers/ | ||
| + | $config[' | ||
| + | |||
| + | // Arguments for the expect script. See the helpers/ | ||
| + | // This is probably a good starting default: | ||
| + | // | ||
| + | $config[' | ||
| + | |||
| + | |||
| + | // smb Driver options | ||
| + | // --------------------- | ||
| + | // Samba host (default: localhost) | ||
| + | // Supported replacement variables: | ||
| + | // %n - hostname ($_SERVER[' | ||
| + | // %t - hostname without the first part | ||
| + | // %d - domain (http hostname $_SERVER[' | ||
| + | $config[' | ||
| + | // Location of smbpasswd binary | ||
| + | $config[' | ||
| + | </ | ||
| + | |||
| + | Über den Menüpunkt **Einstellungen / Passwort** können wir nun vom Webmailer aus das Passwort ändern. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | |||
| + | ==== Managesieve ==== | ||
| + | Damit unsere Mailkunden ihre **[[centos: | ||
| + | |||
| + | Auch hier kopieren wir als erstes die Vorgabedatei aus dem RPM-Paket. | ||
| + | # cp / | ||
| + | |||
| + | Anschließend bearbeiten wir diese Datei und tragen dort die benötigten sieve-Konfigurationsdetail ein. Auch hier sind in dem nachfolgenden Beispiel die Änderungen mit // | ||
| + | # vim / | ||
| + | <file php / | ||
| + | |||
| + | // managesieve server port. When empty the port will be determined automatically | ||
| + | // using getservbyname() function, with 4190 as a fallback. | ||
| + | // Django : 2014-09-10 | ||
| + | // default: $config[' | ||
| + | $config[' | ||
| + | |||
| + | // managesieve server address, default is localhost. | ||
| + | // Replacement variables supported in host name: | ||
| + | // %h - user's IMAP hostname | ||
| + | // %n - http hostname ($_SERVER[' | ||
| + | // %d - domain (http hostname without the first part) | ||
| + | // For example %n = mail.domain.tld, | ||
| + | // Django : 2014-09-10 | ||
| + | // default: $config[' | ||
| + | $config[' | ||
| + | |||
| + | // authentication method. Can be CRAM-MD5, DIGEST-MD5, PLAIN, LOGIN, EXTERNAL | ||
| + | // or none. Optional, defaults to best method supported by server. | ||
| + | $config[' | ||
| + | |||
| + | // Optional managesieve authentication identifier to be used as authorization proxy. | ||
| + | // Authenticate as a different user but act on behalf of the logged in user. | ||
| + | // Works with PLAIN and DIGEST-MD5 auth. | ||
| + | $config[' | ||
| + | |||
| + | // Optional managesieve authentication password to be used for imap_auth_cid | ||
| + | $config[' | ||
| + | |||
| + | // use or not TLS for managesieve server connection | ||
| + | // Note: tls:// prefix in managesieve_host is also supported | ||
| + | // Django : 2014-09-10 | ||
| + | // default: $config[' | ||
| + | $config[' | ||
| + | |||
| + | // default contents of filters script (eg. default spam filter) | ||
| + | $config[' | ||
| + | |||
| + | // The name of the script which will be used when there' | ||
| + | $config[' | ||
| + | |||
| + | // Sieve RFC says that we should use UTF-8 endcoding for mailbox names, | ||
| + | // but some implementations does not covert UTF-8 to modified UTF-7. | ||
| + | // Defaults to UTF7-IMAP | ||
| + | $config[' | ||
| + | |||
| + | // I need this because my dovecot (with listescape plugin) uses | ||
| + | // ':' | ||
| + | $config[' | ||
| + | |||
| + | // disabled sieve extensions (body, copy, date, editheader, encoded-character, | ||
| + | // envelope, environment, | ||
| + | // mailbox, mboxmetadata, | ||
| + | // spamtest, spamtestplus, | ||
| + | // Note: not all extensions are implemented | ||
| + | $config[' | ||
| + | |||
| + | // Enables debugging of conversation with sieve server. Logs it into < | ||
| + | $config[' | ||
| + | |||
| + | // Enables features described in http:// | ||
| + | $config[' | ||
| + | |||
| + | // Script name extension used for scripts including. Dovecot uses ' | ||
| + | // Cyrus uses ' | ||
| + | $config[' | ||
| + | |||
| + | // List of reserved script names (without extension). | ||
| + | // Scripts listed here will be not presented to the user. | ||
| + | $config[' | ||
| + | |||
| + | // List of domains limiting destination emails in redirect action | ||
| + | // If not empty, user will need to select domain from a list | ||
| + | $config[' | ||
| + | |||
| + | // Enables separate management interface for vacation responses (out-of-office) | ||
| + | // 0 - no separate section (default), | ||
| + | // 1 - add Vacation section, | ||
| + | // 2 - add Vacation section, but hide Filters section | ||
| + | $config[' | ||
| + | |||
| + | // Supported methods of notify extension. Default: ' | ||
| + | $config[' | ||
| + | </ | ||
| + | |||
| + | Über den Menüpunkt **Einstellungen / Filter** können wir nun vom Webmailer aus das Passwort ändern. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | |||
| + | ==== ACL ==== | ||
| + | Für die Verwaltung von **[[centos: | ||
| + | Als erstes kopieren wir die Konfigurationsdatei aus dem RPM. | ||
| + | # cp / | ||
| + | |||
| + | Anschließend bearbeiten wir nun diese neue Datei. | ||
| + | # vim / | ||
| + | <file php / | ||
| + | |||
| + | // Default look of access rights table | ||
| + | // In advanced mode all access rights are displayed separately | ||
| + | // In simple mode access rights are grouped into four groups: read, write, delete, full | ||
| + | $config[' | ||
| + | |||
| + | // LDAP addressbook that would be searched for user names autocomplete. | ||
| + | // That should be an array refering to the $config[' | ||
| + | // or complete addressbook configuration array. | ||
| + | $config[' | ||
| + | |||
| + | // The LDAP attribute which will be used as ACL user identifier | ||
| + | $config[' | ||
| + | |||
| + | // The LDAP search filter will be &' | ||
| + | $config[' | ||
| + | |||
| + | // Include the following ' | ||
| + | // Defaults to array(' | ||
| + | // Example: array(' | ||
| + | // Set to an empty array to exclude all special aci subjects. | ||
| + | $config[' | ||
| + | |||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | Über den Menüpunkt **Einstellungen / Ordner / Ordnereigenschaften / Freigabe** können wir nun vom Webmailer aus die Zugriffsrechte für andere auf einzelne Ordner verwalten. | ||
| + | |||
| + | {{ : | ||
| - | Im Verzeichnis //**/ | + | ====== Links ====== |
| - | # vim /etc/roundcubemail/db.inc.php | + | |
| + | | ||
| + | | ||