Dies ist eine alte Version des Dokuments!


Basiskonfiguration des Frameworks Horde 5 unter CentOS 7.x

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

Für unsere WEB-Applikation richten wir uns nun einen geeigneten SSL-Name Based Virtual Host ein. Im Konfigurationsverzeichnis unseres Apache-Webservers 2.4 legen wir uns eine neue vHOST-Konfigurationsdatei an.

 # vim /etc/httpd/conf.d/vhost_443_horde.conf
/etc/httpd/conf.d/vhost_443_horde.conf
#
# horde.sec-mail.guru (Horde Groupware Version 5)
#
<VirtualHost *:80>
        ServerAdmin webmaster@nausch.org
        ServerName horde.sec-mail.guru
	ServerAlias xn--bro-hoa.sec-mail.guru
        ServerPath /
 
        <Location />
                Options -Indexes +FollowSymLinks
		Require all granted
        </Location>
 
        RewriteEngine on
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
 
        DirectoryIndex index.php
 
        ErrorLog logs/horde_error.log
        CustomLog logs/horde_access.log combined
</VirtualHost>
<VirtualHost *:443>
        ServerAdmin webmaster@nausch.org
        ServerName horde.sec-mail.guru
        ServerAlias xn--bro-hoa.sec-mail.guru	
        ServerPath /
        DocumentRoot "/usr/share/horde"
 
        AddType application/x-httpd-php .php
 
	# Link to system Javascript Libraries
	Alias /horde/js/scriptaculous     /usr/share/scriptaculous
	Alias /horde/js/prototype.js      /usr/share/prototype/prototype.js
	Alias /horde/js/syntaxhighlighter /usr/share/syntaxhighlighter
 
        # Link to Micro$oft stuff
        Alias /Microsoft-Server-ActiveSync /usr/share/horde/rpc.php
        Alias /autodiscover/autodiscover.xml /usr/share/horde/rpc.php
 
        # 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, so please remember
        # ----------------------------------------------------------
        # -- DO NOT DELETE THE FOLLOWING LINES, STARTING WITH SSL --
        # --         WHEN USING .htaccess or LDAP-Access!         --
        # ----------------------------------------------------------
        SSLEngine on
	SSLProtocol -ALL +SSLv3 +TLSv1
	SSLCipherSuite EECDH+AES256:DHE+AES256:EECDH+AES:EDH+AES:-SHA1:EECDH+RC4:EDH+RC4:RC4-SHA:AES256-SHA:!aNULL:!eNULL:!EXP:!LOW:!MD5
	SSLHonorCipherOrder on
        SSLCertificateFile /etc/pki/tls/private/CAcert-class3-wildcard.crt
        SSLCertificateKeyFile /etc/pki/tls/private/ca.key
        SSLCertificateChainFile /etc/pki/tls/private/CAcert_chain.crt
 
	<Directory /usr/share/horde/>
                <IfModule mod_authz_core.c>
                        # Access-stuff (Zugriff von überall erlauben.)
                	#Require all granted
                        # Access-stuff (Zugriff nur vom Admin-Netz aus!)
			Require host nausch.org
                </IfModule>
                Options All
		AllowOverride All
 
                # Rewrite the requestet URI, when it is with german "Umlaute".
                RewriteEngine On
                RewriteCond %{REQUEST_URI} ^/$
                RewriteCond %{HTTP_HOST} ^xn--bro-hoa.sec-mail.guru$ [NC]
                RewriteRule ^$ https://horde.sec-mail.guru [L,R=301]
 
                # Exclude file from password protection
                SetEnvIf Request_URI "(rpc.php)$"  allow
                SetEnvIf Request_URI "(rpc.php/turba/mailsystem/)$"  allow
                SetEnvIf Request_URI "(rpc.php/nag/mailsystem/)$" allow
                SetEnvIf Request_URI "(sapi/profile/client)$"  allow
                SetEnvIf Request_URI "(devinfo)$"  allow
                SetEnvIf Request_URI "(Microsoft-Server-ActiveSync)$"  allow
 
                # 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}]
	</Directory>
 
        # Deny access to the test.php files except from localhost
        <LocationMatch "^/horde/(.*/)?test.php">
		Require local
        </LocationMatch>
 
        # Deny access to directories that are not served directly by the webserver
        <DirectoryMatch "^var/www/horde/(.*/)?(config|lib|locale|po|scripts|templates)/(.*)?">
                Require all denied
        </DirectoryMatch>
 
	<Directory /usr/share/horde/rpc>
		<IfModule mod_rewrite.c>
			RewriteEngine On
			RewriteCond   %{REQUEST_FILENAME}  !-d
			RewriteCond   %{REQUEST_FILENAME}  !-f
			RewriteRule   ^(.*)$ index.php/$1 [QSA,L]
 		</IfModule>
	</Directory>
 
        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:

...
                <IfModule mod_authz_core.c>
                        # Access-stuff (Zugriff von überall erlauben.)
                	#Require all granted
                        # Access-stuff (Zugriff nur vom Admin-Netz aus!)
			Require host nausch.org
                </IfModule>
...

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

...
                <IfModule mod_authz_core.c>
                        # Access-stuff (Zugriff von überall erlauben.)
                	Require all granted
                        # Access-stuff (Zugriff nur vom Admin-Netz aus!)
			#Require host nausch.org
                </IfModule>
...

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

 # apachectl -t
 Syntax OK

Abschließend führen wir einen Reload sdes Daemon durch.

 # systemctl reload httpd.service

Bei Bedarf können wir auch den Status des Apche Webservers abfragen.

 # systemctl status httpd.service
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
   Active: active (running) since Tue 2014-09-09 18:26:47 CEST; 1 day 15h ago
  Process: 20019 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
  Process: 22718 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
 Main PID: 20024 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─20024 /usr/sbin/httpd -DFOREGROUND
           ├─22721 /usr/sbin/httpd -DFOREGROUND
           ├─22722 /usr/sbin/httpd -DFOREGROUND
           ├─22723 /usr/sbin/httpd -DFOREGROUND
           ├─22724 /usr/sbin/httpd -DFOREGROUND
           └─22725 /usr/sbin/httpd -DFOREGROUND

Sep 10 19:45:20 vml000097.dmz.nausch.org systemd[1]: Reloading The Apache HTTP Server.
Sep 10 19:45:21 vml000097.dmz.nausch.org systemd[1]: Reloaded The Apache HTTP Server.

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

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 mysql.dmz.nausch.org -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 217075
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, 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 horde5;
 Query OK, 1 row affected (0.00 sec)

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.97' IDENTIFIED BY 'rbgsDK39DeM2b2btx9iMHfzd';
 Query OK, 0 rows affected (0.00 sec)

und

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

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 horde5.* TO 'horde_admin_user'@'10.0.0.97' 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 horde5.* TO 'horde_admin_user'@'vml000097.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) 

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

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

Wir können uns nun vom Datenbank-Server wieder abmelden.

 mysql> quit
 Bye

Als nächstes überprüfen wir, ob der zuvor angelegt User/Zugang vom WEB-Server aus auch funktioniert.

   # mysql -D horde5 -h mysql.dmz.nausch.org -u horde_admin_user -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 217265
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

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

MySQL [horde5]>

Die Verbindung klappt schon mal, daher lassen wir uns mal ansehen, welche Datenbanken der administrative Horde-User sehen kann.

MySQL [horde5]> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| horde5             |
+--------------------+
2 rows in set (0.01 sec)

MySQL [horde5]>

Auch dieser Test fiel positiv aus, wir können uns daher die Verbindung zum Datenbank-Server beenden und uns der weiteren konfiguration widmen.

 MySQL [horde5]> quit
 Bye

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 legen wir uns die besagte Backup-Datei für die Konfiguration an.

 # touch /usr/share/horde/config/conf.php.bak

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

 # chown -R root:apache /usr/share/horde/config
 # chmod g+w -R /usr/share/horde/config

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

 $ firefox https://horde.sec-mail.guru

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 Horde Settings

$conf[vhosts]                                                   [ ]

FIXME

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • centos/mail_c7/horde_2.1410428366.txt.gz
  • Zuletzt geändert: 11.09.2014 09:39.
  • von django