Inhaltsverzeichnis

Basiskonfiguration von horde

Nach der erfolgreichen Installation von Horde machen wir uns nun an die Konfiguration unserer Installation.

Apache vHost

vHost Definition

Für unsere Webapplikation richten wir uns nun einen geeigneten vHost ein. Da wir später S/MIME und PGP nutzen wollen, richten wir uns einen SSL-Name Based Virtual Host ein. Im Konfigurationsverzeichnis unseres Apache-Webservers legen wir uns eine neue vHOST-Konfigurationsdatei an.

 # vim /etc/httpd/conf.d/vHost_horde.conf
/etc/httpd/conf.d/vHost_horde.conf
#
# horde.nausch.org - Horde Groupware
#
<VirtualHost *:443>
        ServerAdmin webmaster@nausch.org
        ServerName horde.nausch.org
        ServerPath /
 
        # SSL-stuff
        SSLEngine on
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
        SSLCertificateFile /etc/pki/tls/private/CAcert-class3-certificat.crt
        SSLCertificateKeyFile /etc/pki/tls/private/server.key
        SSLCertificateChainFile /etc/pki/tls/private/CAcert_chain.crt
 
        AddType application/x-httpd-php .php
 
        # ActivSync aliases
        Alias /Microsoft-Server-ActiveSync /var/www/horde/rpc.php
        Alias /autodiscover/autodiscover.xml /var/www/horde/rpc.php
 
        DocumentRoot "/var/www/horde"
        <Directory "/var/www/horde">
                Options Indexes FollowSymLinks
                AllowOverride None
 
                # Exclude file from password protection
                SetEnvIf Request_URI "(rpc.php)$"  allow
                SetEnvIf Request_URI "(sapi/profile/client)$"  allow
                SetEnvIf Request_URI "(devinfo)$"  allow
                SetEnvIf Request_URI "(Microsoft-Server-ActiveSync)$"  allow
 
                # Access-stuff
                Order allow,deny
                Allow from all
 
                # Set exclude all files with env=allow
                Allow from env=allow
                Satisfy any
 
                # ActiveSync
                RewriteEngine On
                RewriteRule ^/Microsoft-Server-ActiveSync /rpc.php [PT,L,QSA]
                RewriteRule .* - [E=HTTP_MS_ASPROTOCOLVERSION:%{HTTP:Ms-Asprotocolversion}]
                RewriteRule .* - [E=HTTP_X_MS_POLICYKEY:%{HTTP:X-Ms-Policykey}]
                RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
 
                # If horde dies while trying to handle large email file attachments, you are probably
                # hitting PHP's memory limit. Raise that limit here, but use caution
                # Set to your preference - memory_limit should be at least 32M and be greater than the
                # value set for post_max_size
                # php_value memory_limit 32M
                # php_value post_max_size 20M
                # php_value upload_max_filesize 10M
 
                # horde.org's recommended PHP settings:
                php_admin_flag safe_mode off
                php_admin_flag magic_quotes_runtime off
                php_flag session.use_trans_sid off
                php_flag session.auto_start off
                php_admin_flag file_uploads on
                # Optional - required for weather block in Horde to function
                php_admin_flag allow_url_fopen on
        </Directory>
 
        # Deny access to files that are not served directly by the webserver
        <DirectoryMatch "^var/www/horde/(.*/)?(config|lib|locale|po|scripts|templates)/(.*)?">
                Order deny,allow
                Deny from all
        </DirectoryMatch>
 
        # Deny access to the test.php files except from localhost
        <LocationMatch "^/horde/(.*/)?test.php">
                Order deny,allow
                Deny from all
        </LocationMatch>
 
        DirectoryIndex index.php
 
        ErrorLog logs/horde_error.log
        CustomLog logs/horde_access.log combined 
</VirtualHost>

Wichtig:

Solange wir unseren vHost noch nicht in der Produktionsumgebung steht und fertig konfiguriert wurde, beschränken wir den Zugriff auf den vHost noch. Hierzu tragen wir in der Directive Directory folgendes ein:

...
                # Access-stuff (Zugriff nur vom Admin-Host aus!)
                Order deny,allow
                Deny from all
                Allow from <Administrations-Host-IP>
...

Nach erfolgter Konfiguration, geben wir dann den Zugriff für alle frei.

...
                # Access-stuff (Zugriff von überall erlauben.)
                Order allow,deny
                Allow from all
...

Konfiguration aktivieren

Bevor unseren Webserver starten, damit der neue vHost auch bedient werden kann, überprüfen wir die Konfiguration noch auf syntaktische Fehler.

 # service httpd configtest
 Syntax OK

Abschließend starten wir den Webserver einmal durch.

 # service httpd restart
 Stopping httpd:                                            [  OK  ]
 Starting httpd:                                            [  OK  ]

mySQL Datenbank

Ein Großteil der Benutzer-Konfigurationsdaten werden in einer mySQL-Datenbank gespeichert und vorgehalten.

Datenbank anlegen

Diese mySQL-Datenbank und der zugehörige Datenbankuser werden wird nun im ersten Schritt anlegen.

Wir melden uns also als berechtigter Datenbankuser an der mySQL-Datenbank an.

  # mysql -h localhost -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1942
Server version: 5.1.67 Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Dort legen wir als aller erst einmal eine Datenbank mit dem Namen horde an.

 mysql> create database horde;
 Query OK, 1 row affected (0.03 sec)

Datenuserbank anlegen

Anschließend legen wir uns einen Datenbankuser an, denen wir entsprechende Rechte an der, gerade angelegten Datenbank horde einräumen. Als Namen nehme wir einfach hode_admin_user.

 mysql> CREATE USER 'horde_admin_user'@'10.0.0.90' IDENTIFIED BY 'rbgsDK39DeM2b2btx9iMHfzd';
 Query OK, 0 rows affected (0.00 sec)

und

 mysql> CREATE USER 'horde_admin_user'@'vml000090.dmz.nausch.org' IDENTIFIED BY 'rbgsDKMS39DeM2b2btx9iMHfzd';
 Query OK, 0 rows affected (0.00 sec)
 

Nutzerberechtigungen setzen

Dem gerade angelebtem Datenbankuser für Horde gewähren wir nun die nötigen Rechte, damit dieser vom Webserver aus, Tabellen anlegen, befüllen und verändern darf.

 mysql> GRANT ALL PRIVILEGES ON horde.* TO 'horde_admin_user'@'10.0.0.90' IDENTIFIED BY 'rbgsDKMS39DeM2b2btx9iMHfzd' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
 Query OK, 0 rows affected (0.00 sec)

und

 mysql> GRANT ALL PRIVILEGES ON horde.* TO 'horde_admin_user'@'vml000090.dmz.nausch.org' IDENTIFIED BY 'rbgsDKMS39DeM2b2btx9iMHfzd' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
 Query OK, 0 rows affected (0.00 sec) 

Nutzerberechtigungen zuweisen

Zum Ende unserer mySQL-Userkonfiguration weisen wir unserem Nutzer die Berechtigungen zu.

 mysql> FLUSH PRIVILEGES;
 Query OK, 0 rows affected (0.00 sec)

Zugriff testen

Als nächstes überprüfen wir, ob der zuvor angelegt User/Zugang auch funktioniert.

 # mysql -D horde -h mysql.dmz.nausch.org -u hordeuser -p
Enter password: 
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 19824
Server version: 5.1.67 Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show tables;
+---------------------------+
| Tables_in_horde           |
+---------------------------+
| horde_datatree            | 
| horde_datatree_attributes | 
| horde_datatree_seq        | 
| horde_histories           | 
| horde_histories_seq       | 
| horde_prefs               | 
| horde_sessionhandler      | 
| horde_tokens              | 
| horde_users               | 
| horde_vfs                 | 
| horde_vfs_seq             | 
+---------------------------+
11 rows in set (0.00 sec)

mysql>

Da der Test positiv ausgefallen ist, können wie uns wieder von unserem Datenbankserver abmelden.

mysql> quit
Bye

vorbereitende Konfiguration

Die Konfiguration von Horde, wie auch den nachfolgenden Module/Projects, erfolgt über die GUI des Horde-Framworks. Bevor wir uns daran machen können, benötigen wir noch eine entsprechende (leere) Backupdatei für die mitgelieferte Vorgabekonfigurationsdatei. Ferner müssen wir dafür sorgen, dass unser Apache-Webserver die Änderungen im Konfigurationsverzeichnis ablegen kann. Zunächst kopieren wir uns die Vorlagedatei, die bei der Hordeinstallation mit kam.

 # cp -a /var/www/horde/config/menu.php.dist /var/www/horde/config/menu.php

Dann legen wir also die besagte Backup-Datei für die Konfiguration an.

 # touch /var/www/horde/config/conf.php.bak

Zum Schluß weisen wir noch die Datei und Besitzrechte für die Konfigurationsdatei- und dessen Verzeichnis zu.

 # chown -R root:apache /var/www/horde/config
 # chmod g+w -R /var/www/horde/config

Konfiguration über die WEB-GUI

Die eigentliche Konfigurationsarbeit erledigen wir dann über die GUI des Web-Frameworks. Dazu rufen wir unseren angelegten VHOST im Webbrowser auf.

 $ firefox https://buero.nausch.org

Bild: Bildschirmhardcopy Horde "Erstanmeldung"

Mit einem Klick auf das Zahnradsysmbol Bild: Horde Menüpunkt Administration erreichen wir den Menüpunkt Administration.

Bild: Bildschirmhardcopy Horde "Menüpunkt Administration"

Hier wählen wir den Menüpunkt Configuration aus.

Bild: Bildschirmhardcopy Horde "Configuration"

Da wir den Menüpukt Configuration noch nie vorher aufgerufen und noch keine Konfiguration vorgenommen haben, sind die beiden Fehlermeldungen normal. Um zur Konfiguration von Horde zu gelangen, klicken wir nun auf den Punkt Horde (horde).

Bild: Bildschirmhardcopy Horde "Configuration"

Auf den nun zur Verfügung stehenden Reitern, erfolgt die Konfiguration des Horde-Frameworks (Basis-Modul).

General

General Horde Settings

$conf[vhosts]                                                   [ ]

PHP Settings

$conf[debug_level]                                              E_ALL & ~E_NOTICE
$conf[max_exec_time]                                            0
$conf[compress_pages]                                           [✔]
$conf[secret_key] 	                                        50fd8699-d00f-4a35-a900-7b290a00005a
$conf[umask]                                                    077
$conf[testdisable]                                              [✔]
$conf[tmpdir]

URL Settings

$conf[use_ssl]                                                  Attempt to auto-detect, and generate URLs appropriately
$conf[server][name]                                             $_SERVER['SERVER_NAME']
$conf[server][port]
$conf[urls][token_lifetime]                                     30
$conf[urls][hmac_lifetime                                       30
$conf[urls][pretty]                                             No (Get-based URLs)
$conf[safe_ips]

Session Settings

$conf[session][name]                                            Horde
$conf[session][use_only_cookies]                                [✔]
$conf[session][cache_limiter]                                   nocache
$conf[session][timeout]                                         0
$conf[session][max_time]                                        0
$conf[cookie][domain]                                           $_SERVER['SERVER_NAME']
$conf[cookie][path]                                             /


Database

Database Settings

$conf[sql][phptype]                                             MySQL (mysqli)
$conf[sql][username]                                            hordesystemuser
$conf[sql][password]                                            Django-1$-a-G33k!
$conf[sql][protocol]                                            TCP/IP
$conf[sql][hostspec]                                            mysql.dmz.nausch.org
$conf[sql][port]                                                3306
$conf[sql][database]                                            horde
$conf[sql][charset]                                             utf-8
$conf[sql][ssl]                                                 [ ]
$conf[sql][ca]
$conf[sql][splitread]                                           Disabled


LDAP

LDAP Settings

$conf[ldap][useldap]                                                           [no]


Authentication

Authentication Settings

$conf[auth][admins]                                                            Administrator
$conf[auth][checkip]                                                           [✔]
$conf[auth][checkbrowser]                                                      [✔]
$conf[auth][resetpassword]                                                     [✔]
$conf[auth][alternate_login]                                                   false
$conf[auth][redirect_on_logout]                                                false
$conf[auth][list_users]                                                        Showan input field
$conf[auth][driver]                                                            Automatic authentication as a certain user
$conf[auth][params][username]                                                  Administrator
$conf[auth][params][password]
$conf[auth][params][requestuser]                                               [ ]
$conf[auth][params][count_bad_logins]                                          [ ]
$conf[auth][params][login_block]                                               [ ]
$conf[auth][params][login_block_count                                          5
$conf[auth][params][login_block_time]                                          5

Terms of Service Agreement

$conf[tos][file]


Sign Up

Sign Up Settings

$conf[signup][allow]                                                           No


Logging

Logging Settings

$conf[log][enabled]                                                            Yes
$conf[log][priority]                                                           INFO
$conf[log][ident]                                                              HORDE
$conf[log][time_format]
$conf[log][type]                                                               Syslog
$conf[log][name]                                                               LOG_USER
$conf[log][log_accesskeys]                                                     [ ]


Preference System

Preference System Settings

$conf[prefs][maxsize]
$conf[prefs][driver]                                                           SQL Database
$conf[prefs][params][driverconfig]                                             Horde defaults
$conf[prefs][params][table]                                                    horde_prefs


Alarm System

Alarm System Settings

$conf[alarms][driver]                                                          SQL Database
$conf[alarms][params][driverconfig]                                            Horde defaults
$conf[alarms][params][table]                                                   horde_alarms
$conf[alarms][params][ttl]                                                     300


Groups

Groups Settings

$conf[group][driver]                                                           SQL
$conf[group][driverconfig]                                                     Horde defaults

Group Caching

GROUP CACHING HAS NOT BEEN IMPLEMENTED FOR HORDE 5 YET

Permissions

Permissions Settings

$conf[perms][driver]                                                           SQL
$conf[perms][driverconfig]                                                     Horde defaults


Shares

Allow Sharing?

$conf[share][no_sharing]                                                       [ ]
$conf[share][auto_create]                                                      [✔]
$conf[share][world]                                                            [ ]
$conf[share][any_group]                                                        [ ]
$conf[share][hidden]                                                           [ ]

Share Caching

$conf[share][cache]                                                            [✔]

Shares Driver

$conf[share][driver]                                                           Next-Generation SQL


Cache System

Cache System Settings

$conf[cache][default_lifetime]                                                 86400
$conf[cache][driver]                                                           SQL-based cache storage
$conf[cache][params][driverconfig]                                             Horde defaults
$conf[cache][params][table]                                                    horde_cache
$conf[cache][compress]                                                         [✔]
$conf[cache][use_memorycache]                                                  none

CSS Caching

$conf[cachecss]                                                                Yes
$conf[cachecssparams][driver]                                                  Filesystem (recommended)
$conf[cachecssparams][lifetime]                                                86400
$conf[cachecssparams][compress]                                                Built-in compressor (Good compression, good speed)

Javascript Caching

$conf[cachejs]                                                                 Yes
$conf[cachejsparams][driver]                                                   Filesystem (recommended)
$conf[cachejsparams][compress]                                                 Built-in compressor (Good compression, good speed)
$conf[cachejsparams][lifetime]                                                 86400

Theme Caching

$conf[cachethemes]                                                             Yes
$conf[cachethemesparams][check]                                                Application versions
$conf[cachethemesparams][lifetime]                                             86400


Lock System

Lock System Settings

$conf[lock][driver] 	                                                       SQL-based locking
$conf[lock][params][driverconfig]                                              Horde defaults
$conf[lock][params][table]                                                     horde_locks


Token System

Token System Settings

$conf[token][timeout]                                                          180
$conf[token][driver]                                                           SQL-based token storage
$conf[token][params][driverconfig]                                             Horde defaults
$conf[token][params][table]                                                    horde_tokens


Mailer

Mailer Settings

$conf[mailer][type]                                                            Use a SMTP server (HIGHLY RECOMMENDED)
$conf[mailer][params][host]                                                    smtp.dmz.nausch.org
$conf[mailer][params][port]                                                    25
$conf[mailer][params][localhost] 	                                         vml000090.dmz.nausch.org
$conf[mailer][params][auth]                                                    No authentication
$conf[mailer][params][username]
$conf[mailer][params][password]

Format

$conf[mailformat][brokenrfc2231]                                               [ ]

Virtual File Storage

Virtual File Storage Settings

$conf[vfs][type]                                                               SQL database
$conf[vfs][params][driverconfig]                                               Horde defaults


Custom Session Handler

Custom Session Handler Settings

$conf[sessionhandler][type]                                                    SQL database
$conf[sessionhandler][params][driverconfig]                                    Horde defaults
$conf[sessionhandler][params][table]                                           horde_sessionhandler
$conf[sessionhandler][memcache] 	                                       [ ]


HTTP Proxy

HTTP Proxy Settings

$conf[http][proxy][proxy_host]
$conf[http][proxy][proxy_port]
$conf[http][proxy][proxy_user]
$conf[http][proxy][proxy_pass]


Spell Checker

Spell Checker Settings

$conf[spell][driver]                                                           aspell (command line)
$conf[spell][params][path]                                                     /usr/bin/aspell


GnuPG

GnuPG Settings

$conf[gnupg][path]                                                             /usr/bin/gpg
$conf[gnupg][keyserver]                                                        pool.sks-keyservers.net, subkeys.pgp.net, pgp.mit.edu
$conf[gnupg][timeout]                                                          10


OpenSSL

$conf[openssl][cafile]                                                         /etc/pki/tls/certs/ca-bundle.crt
$conf[openssl][path]                                                           /usr/bin/openssl


Themes

Theme Settings

$conf[nobase64_img]                                                            [ ]


Image Manipulation

Image Manipulation Settings

$conf[image][driver] 	                                                       The PECL Imagick Library (recommended)

Image Metadata Driver Settings

$conf[exif][driver]                                                            Exiftool (recommended)
$conf[exif][params][exiftool]                                                  /usr/bin/exiftool


MIME Detection

MIME Detection Settings

$conf[mime][magic_db]                                                          /usr/share/misc/magic


Country Lookup

Country Lookup Settings

$conf[geoip][datafile]                                                        /usr/share/GeoIP/geoIP.dat


Timezone Lookup

Timezone Lookup Settings

$conf[timezone][location]                                                     ftp://ftp.iana.org/tz/tzdata-latest.tar.gz


Problem Reporting

Problem Reporting Settings

$conf[problems][tickets]                                                      No
$conf[problems][email]                                                        webmaster@nausch.org
$conf[problems][maildomain]                                                   nausch.org
$conf[problems][username]
$conf[problems][password]
$conf[problems][attachments]                                                  [✔]


$conf[menu][links][help]                                                      All users
$conf[menu][links][prefs]                                                     Authenticated users
$conf[menu][links][problem]                                                   All users
$conf[menu][links][login]                                                     All users
$conf[menu][links][logout]                                                    Authenticated users


Portal Blocks

Portal Blocks Settings

$conf[portal][fixed_blocks] 	                                              Horde: Metar Weather

Fortune Configuration

$conf[fortune][exec_path]                                                     /usr/bin/fortune

Account Info Configuration

$conf[accounts][driver]                                                       None


User Capabilities and Constraints

User Capabilities and Constraints Settings

$conf[user][verify_from_addr]                                                 [ ]
$conf[user][select_view]                                                      Yes


API Keys

API Keys Settings

$conf[api][googlemaps]
$conf[api][googlesafebrowsing]
$conf[api][googlesearch] 	
$conf[api][yahoomaps]
$conf[api][cloudmade]
$conf[api][bing]

Facebook Integration Settings

$conf[facebook][enabled] 	                                              Disabled

Twitter Integration Settings

$conf[twitter][enabled]  	                                              Disabled

Url Shortening

$conf[urlshortener]                                                           None

Weather Services

$conf[weather][provider]                                                      None


IMAP Server

IMAP Server Settings

$conf[imap][enabled]                                                          Disabled


IMSP Server

IMSP Server Settings

$conf[imsp][enabled]                                                          Disabled


Kolab Server

Kolab Server Settings

$conf[kolab][enabled]                                                         Disabled


Memcache Server

Memcache Server Settings

$conf[memcache][enabled]                                                      Disabled


ActiveSync

ActiveSync Settings

$conf[activesync][enabled]                                                    Disabled

Am Ende unserer Konfigurationsarbeit, sichern wir die Konfiguration mit einem Klick auf die Schaltfläche: Bild: Schaltfläche "Konfiguration erzeugen" Die erfolgreiche Sicherung wird uns entsprechend angezeigt. Bild: Bestätigung der erfolgreichen Sicherung

Links