Files
mkdocs-etz/mkdocs/docs/Linux_Unternehmen/nextcloud-ldap.md
Florian Hensel 751aa15002 php änderng
2025-12-13 11:31:22 +01:00

9.9 KiB

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

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

sudo mysql_secure_installation
  1. Abfrage des aktuellen Passwortes NICHTS EINGEBEN NUR BESTÄTIGEN

  2. Soll auf Unix-Socket-Auth gewechselt werden? N

  3. Soll ein Root-Passwort gesetzt werden? Y

  4. Passwort eingeben und wiederholen

  5. Soll der Anonyme User entfernt werden? Y

  6. Remote-Login für Root deaktivieren? Y

  7. test-Datenbank entfernen? Y

  8. Änderungen übernehmen? Y

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.

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.

sudo mkdir /srv/cloud
sudo chown www-data:www-data -R /srv/cloud

erstellen /etc/apache2/sites-available/nextcloud.conf mit Inhalt:


<VirtualHost *:80>
    DocumentRoot "/var/www/nextcloud"
    ServerName nextcloud.tnxx.ito
    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

sudo a2ensite nextcloud
sudo a2dissite 000-default.conf

Aktivieren der benötigten Apache2-Module

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.tnxx.ito oder http://IP

Erster Login, Eingabe der Admindaten{ 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:

sudo nano /var/www/nextcloud/config/config.php

Fügen Sie eine weitere Zeile vor der schließenden Klammer ein: ...

'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.

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

<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
</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.tnxx.ito
        ServerAlias www.nextcloud.tnxx.ito

        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:

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

Die Aktion soll vom User www-data ausgeführt werden

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
    • Hintergrund und Anmeldebild: Eingangsbereich
    • Kopfbereichslogo: Firmenlogo
    • Favicon: Favicon

LDAP

Konfiguration smb.conf bei einem Samba AD-DC

[global]
ldap server require strong auth = no
sudo systemctl restart samba-ad-dc

Im Anschluss daran suchen wir in den NextCloud-Apps nach dem LDAP user and group backend:

Auswahl LDAP-APP

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

Einrichtungstab Server

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

Einrichtungstab Benutzer

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.

Einrichtungstab Anmeldeattribute

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.

Einrichtungstab  Gruppen

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.

Einrichtungstab Expert

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.


Inhaltsverzeichnis

[TOC]