309 lines
10 KiB
Markdown
309 lines
10 KiB
Markdown
NextCloud bringt ihnen eine erweiterte Funktionalität der Bereitstellung
|
|
und Synchronisierung ihrer Daten für Mitarbeiter. NextCloud biete über
|
|
Erweiterungen und Plug-Ins die Möglichkeit auch in anderen Teilen ihres
|
|
Unternehmens Verbesserungen der Zusammenarbeit zu schaffen. Prinzipiell
|
|
ist NextCloud aber ihre Private Cloud - Sie wissen, wo die Daten liegen
|
|
und Sie wissen wer darauf zugreifen kann und darf.
|
|
|
|
## Vorbereitungen
|
|
|
|
NextCloud benötigt ergänzend zu dem evtl. massiven Speicherplatzbedarf
|
|
auch noch eine funktionierend SQL-Datenbank. Hierfür wird der reine
|
|
Open-Source mySQL Ableger MariaDB empfohlen.
|
|
|
|
## Installation Datenbank mit Webmanagement und weiterer benötigter Komponenten
|
|
|
|
```bash
|
|
sudo apt install apache2 mariadb-server libapache2-mod-php php php-mysql php-xml php-gd php-curl php-zip php-mbstring php-intl php-bcmath php-gmp php-imagick php-redis redis-server php-ldap php-smbclient unzip phpmyadmin
|
|
```
|
|
|
|
Abfragen nach dem zu verwendenden Webserver: apache2
|
|
|
|
Konfiguriere phpmyadmin: Ja Datenbank Konfigurieren
|
|
|
|
Passwort setzen
|
|
|
|
Im Anschluss muss die Datenbank noch gesichert werden um etwaigen
|
|
Missbrauch zu unterbinden und auch das Root-Passwort wird hier gesetzt
|
|
|
|
```bash
|
|
sudo mysql_secure_installation
|
|
```
|
|
1. Abfrage des aktuellen Passwortes NICHTS EINGEBEN NUR BESTÄTIGEN
|
|
|
|
2. Soll ein Root-Passwort gesetzt werden? Y
|
|
|
|
3. Passwort eingeben und wiederholen
|
|
|
|
4. Soll der Anonyme User entfernt werden? Y
|
|
|
|
5. Remote-Login für Root deaktivieren? Y
|
|
|
|
6. test-Datenbank entfernen? Y
|
|
|
|
7. Änderungen übernehmen? Y
|
|
|
|
Jetzt muss einmalig in die SQL-Datenbank der Login für root über das
|
|
Webinterface aktiviert werden:
|
|
|
|
````bash
|
|
sudo mysql -u root -p
|
|
````
|
|
|
|
````sql
|
|
use mysql;
|
|
update user set plugin='' where User='root';
|
|
flush privileges;
|
|
\q
|
|
````
|
|
|
|
Zugriff auf ihre Datebank per Webinterface:
|
|
|
|
http://IP/phpmyadmin
|
|
|
|
Legen Sie einen neuen Nutzer für NextCloud an und gewähren Sie dem Nutzer alle Rechte an seiner Datenbank „Nextcloud".
|
|
/newpage
|
|
|
|
## NextCloud installieren
|
|
|
|
NextCloud bietet derzeit keine externe Paketquellen an. Deshalb muss Nextcloud als Zip-Archiv heruntergeladen werden und im Anschluss passend entpackt werden.
|
|
|
|
```bash
|
|
wget https://download.nextcloud.com/server/releases/latest.zip
|
|
unzip latest.zip
|
|
sudo cp -r nextcloud /var/www/
|
|
sudo chown -R www-data:www-data /var/www/nextcloud/
|
|
```
|
|
|
|
Jetzt legen wir noch ein Separates Datenverzeichnis an. Dies bringt den Vorteil, dass dieses sich auch auf einer separaten Partition befinden kann.
|
|
|
|
```bash
|
|
sudo mkdir /srv/cloud
|
|
sudo chown www-data:www-data -R /srv/cloud
|
|
```
|
|
|
|
erstellen ````/etc/apache2/sites-available/nextcloud.conf```` mit Inhalt:
|
|
```apacheconf
|
|
|
|
<VirtualHost *:80>
|
|
DocumentRoot "/var/www/nextcloud"
|
|
ServerName nextcloud.hensel.dom
|
|
ErrorLog ${APACHE_LOG_DIR}/error.log
|
|
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
|
<Directory /var/www/nextcloud/>
|
|
Options +FollowSymlinks
|
|
AllowOverride All
|
|
<IfModule mod_dav.c>
|
|
Dav off
|
|
</IfModule>
|
|
SetEnv HOME /var/www/nextcloud
|
|
SetEnv HTTP_HOME /var/www/nextcloud
|
|
Satisfy Any
|
|
</Directory>
|
|
</VirtualHost>
|
|
|
|
```
|
|
Speichern und aktivieren mit
|
|
|
|
```bash
|
|
sudo a2ensite nextcloud
|
|
sudo a2dissite 000-default.conf
|
|
```
|
|
|
|
Aktivieren der benötigten Apache2-Module
|
|
|
|
```bash
|
|
sudo a2enmod rewrite
|
|
sudo a2enmod headers
|
|
sudo a2enmod env
|
|
sudo a2enmod dir
|
|
sudo a2enmod mime
|
|
sudo a2enmod setenvif
|
|
sudo a2enmod ssl
|
|
sudo systemctl restart apache2
|
|
```
|
|
|
|
Nun können Sie per http auf den Webserver zugreifen
|
|
http://nextcloud.hensel.dom
|
|
|
|
{ align=left }
|
|
|
|
Hier legen Sie nun das Administrator-Konto ein, wobei natürlich Admin und ein schwaches Passwort hier Tabu sind.
|
|
|
|
Geben Sie als Datenverzeichnis das gerade angelegte Verzeichnis an und geben Sie die entsprechenden Daten die beim Anlagen der Datenbank gesetzt wurden ein.
|
|
|
|
Nach dem Klick auf Installation abschließen werden Sie auch schon ihr eigenes Datenverzeichnis befördert, wobei ihnen erst noch ein Hinweis angezeigt wird wie Sie Desktop- und Mobile-Apps nutzen können.
|
|
|
|
Wechseln Sie als nächstes in der rechten oberen Ecke in das Administrator-Menü.
|
|
|
|
Im oberen Bereich begrüßen Sie dabei gleich einige Konfigurationsfehler:
|
|
|
|
Wir nutzen noch kein SSL und keinen Cache.
|
|
|
|
Kümmern wir uns erst einmal um den Cache, wobei wir den Redis-Server bereits installiert haben. Somit muss nur noch die Nextcloud-Configuration angepasst werden:
|
|
|
|
```bash
|
|
sudo nano /var/www/nextcloud/config/config.php
|
|
```
|
|
Fügen Sie eine weitere Zeile vor der schließenden Klammer ein:
|
|
...
|
|
````php
|
|
'dbtype' => 'mysql',
|
|
'version' => '12.0.0.29',
|
|
'dbname' => 'NextCloud',
|
|
'dbhost' => 'localhost',
|
|
'dbport' => '',
|
|
'dbtableprefix' => 'oc_',
|
|
'dbuser' => 'NextCloud',
|
|
'dbpassword' => 'passw0rd#',
|
|
'logtimezone' => 'UTC',
|
|
'installed' => true,
|
|
'memcache.distributed' => '\OC\Memcache\Redis',
|
|
'memcache.local' => '\OC\Memcache\Redis',
|
|
'memcache.locking' => '\OC\Memcache\Redis',
|
|
'redis' => array(
|
|
'host' => 'localhost',
|
|
'port' => 6379,
|
|
),
|
|
);
|
|
````
|
|
Laden Sie Sie Administrator-Seite neu -- Der Fehler sollte weg sein.
|
|
|
|
## SSL-Zertifikat
|
|
|
|
Für die https / SSL Übertragung benötigen wir noch ein selbst-signiertes Zertifikat welches dem Browser übergeben werden kann.
|
|
|
|
```bash
|
|
sudo -s
|
|
openssl req -new -x509 -days 365 -nodes -out /etc/ssl/certs/NextCloud.pem -keyout /etc/ssl/private/NextCloud.key
|
|
```
|
|
### Konfiguration Apache für das SSL-Zertifikat
|
|
|
|
Konfiguration der Benötigten Module:
|
|
|
|
Bearbeiten der Datei ````/etc/apache2/sites-available/nextcloud.conf````
|
|
|
|
````apacheconf
|
|
<VirtualHost *:80>
|
|
Redirect permanent / https://nextcloud.hensel.dom
|
|
</VirtualHost>
|
|
|
|
<IfModule mod_ssl.c>
|
|
<VirtualHost *:443>
|
|
SSLEngine on
|
|
SSLCertificateFile /etc/ssl/certs/NextCloud.pem
|
|
SSLCertificateKeyFile /etc/ssl/private/NextCloud.key
|
|
|
|
<IfModule mod_headers.c>
|
|
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
|
|
</IfModule>
|
|
|
|
DocumentRoot "/var/www/nextcloud"
|
|
ServerName nextcloud.hensel.dom
|
|
ServerAlias www.nextcloud.hensel.dom
|
|
|
|
ErrorLog ${APACHE_LOG_DIR}/error.log
|
|
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
|
|
|
<Directory /var/www/nextcloud/>
|
|
Options +FollowSymlinks
|
|
AllowOverride All
|
|
<IfModule mod_dav.c>
|
|
Dav off
|
|
</IfModule>
|
|
SetEnv HOME /var/www/nextcloud
|
|
SetEnv HTTP_HOME /var/www/nextcloud
|
|
Satisfy Any
|
|
</Directory>
|
|
</VirtualHost>
|
|
</IfModule>
|
|
|
|
````
|
|
Aktivieren:
|
|
|
|
```bash
|
|
sudo a2ensite default-ssl.conf
|
|
sudo systemctl restart apache2
|
|
```
|
|
|
|
Apache Neustarten und Fertig
|
|
|
|
## CronJob für regelmäßige Aktualisierung der Datenbank
|
|
|
|
NextCloud aktualisiert bei jedem Zugriff auf das Webinterface die Datenbank, allerdings kostet dies wertvolle Sekunden bei einem „Wohlfühl-Interface" daher aktivieren Wir einen [CronJob](../basics/Automatisierung mit cron und systemd.md)
|
|
|
|
Die Aktion soll vom User www-data ausgeführt werden
|
|
|
|
```bash
|
|
sudo crontab -u www-data -e
|
|
```
|
|
nun können wir einen neuen Job einfügen:
|
|
|
|
```
|
|
*/15 * * * * php -f /var/www/nextcloud/cron.php
|
|
```
|
|
Wählen Sie nun im Administrations-Bereich von NextCloud bei Cron entsprechend auch cron aus.
|
|
|
|
Im Anschluss am besten einmal reboot
|
|
|
|
## Optische Anpassung ans Firmenlayout
|
|
|
|
Nextcloud ermöglicht eine einfache Anpassung des Designs an Ihr Firmenlayout direkt über das Webinterface.
|
|
|
|
> Wichtig: Dateinamen ohne Leerzeichen verwenden, Formate ````.png```` oder ````.jpg````.
|
|
|
|
### Design über Webinterface anpassen
|
|
* Melden Sie sich als Administrator in Nextcloud an.
|
|
* Klicken Sie oben rechts auf Benutzermenü → Administrationseinstellungen.
|
|
* Wählen Sie im linken Menü ````Design````.
|
|
* Passen Sie folgende Elemente an:
|
|
* Name: Meisterwolke
|
|
* Slogan: Wir kennen die Festplatte mit Vornamen
|
|
* Primärfarbe: Primärfarbe: #70706B Hintergrundfarbe: #70706B
|
|
* Logo: [Firmenlogo](./Nextcloud_Design/Logo.png)
|
|
* Hintergrund und Anmeldebild: [Eingangsbereich](./Nextcloud_Design/Login_Image.jpg)
|
|
* Kopfbereichslogo: [Firmenlogo](./Nextcloud_Design/Logo.png)
|
|
* Favicon: [Favicon](./Nextcloud_Design/favicon.ico)
|
|
|
|
## LDAP
|
|
|
|
Konfiguration smb.conf bei einem Samba AD-DC
|
|
````ini
|
|
[global]
|
|
ldap server require strong auth = no
|
|
````
|
|
````bash
|
|
sudo systemctl restart samba-ad-dc
|
|
````
|
|
Im Anschluss daran suchen wir in den NextCloud-Apps nach dem LDAP user and group backend:
|
|
|
|

|
|
|
|
Aktivieren Sie die App und wechseln Sie wieder in den Administrationsbereich. Dort finden Sie einen neuen Bereich LDAP.
|
|
|
|

|
|
|
|
Die benötigten Informationen finden Sie in ihrer Serverkonfiguration. In diesem Beispiel:
|
|
|
|
* FQDN + Port des AD
|
|
* Nutzer,Gruppe,Domäne Dieser Account muss keine Admin-Rechte haben sollte aber eigener Account sein.
|
|
* Passwort
|
|
* Der Ort in der Domäne an der die User zu suchen sind
|
|
|
|

|
|
|
|
Welcher Typ soll abgefragt werden? Hier empfiehlt sich eine Separate Gruppe für Nutzer anzulegen welche NextCloud nutzen sollen. Klicken Sie am unteren Rand auf „Einstellungen prüfen und Benutzer zählen" um ihre Konfiguration zu überprüfen.
|
|
|
|

|
|
|
|
Hier definieren Sie mit welchen Möglichkeiten sich der Nutzer Authentifizieren kann. Wählen Sie die sAMAccountName aus, um dem Nutzer zu ermöglichen Sich direkt mit seinem Windows-Login anzumelden.
|
|
|
|

|
|
|
|
Hier definieren Sie welche Gruppen ihres Servers in NextCloud übernommen werden sollen um ihre Nutzer auch in NextCloud passend sortieren zu können und auch Gruppenspezifische Externe Laufwerke einzubinden.
|
|
|
|

|
|
|
|
In der Benutzerübersicht sollen alle Nutzer mit ihrem Benutzernamen und nicht mit der UUID angezeigt werden. Somit ist es auch für die Nutzer einfacher, sich gegenseitig zu finden.
|
|
|