Category: Allgemein (Page 1 of 4)
Über das Paket inotifywait können Änderungen an kompletten Verzeichnisbäumen überwacht werden.
In diesem Artikel wird die Authentifikation über AzureAD SAML Single Sign On beschrieben und wie man die Zugriffsberechtigungen hierzu auf Gruppen einschränkt. Zusätzlich wird die Möglichkeit zur Authentifizierung per Conditional Access auf IP-Ebene eingeschränkt.
Microsoft weist inzwischen darauf hin, dass man für neue Projekte die Microsoft Identity Platform verwenden soll. Das ist dan OpenID oder OAuth.
Wir benötigen einen AzureAD Admin mit entsprechenden Zugriffsrechten auf die folgenden Portale:
- portal.azure.com
- admin.microsoft.com
Das Portal admin.microsoft.com erreicht man auch über portal.office.com und dann links über das Symbol Admin.
Als erstes eine kleine Empfehlung: belasst das Portal portal.azur.com und admin.office.com auf Englisch. Die Übersetzung ist maximal schlecht. Meine Meinung.
SAML Dienst erstellen
Portal: aad.portal.azure.com
Unter Enterprise Applications eine neue Applikation erstellen.
In der rechten Seitenleiste einen sinnvollen Namen vergeben und Non-gallery Application erstellen:
Die neue Applikation findet man nun in der Liste aller Applikationen oder man sucht alternativ nach dem eben vergebenen Namen. Mit einem Klick auf den Namen gelangt man in das Konfigurationsmenu für unsere neue Applikation.
Hier wählen wir nun den Punkt Single Sign On->SAML
Etwas Theorie: SAML funktioniert über REST-Endpunkte. Der Dienst, für den man die SAML Authentifikation aufetzt, liefert normalerweise ein sogenanntes Metadata File in XML-Format. In der Datei sind die Endpunkte und das Zertifikat der gegenseite hinterlegt. Man kann diese Datei nun einfach in unsere AzureAD Applikation importieren. Dazu klicken wir oben auf „Upload metadata file“.
Wählt man die Datei aus erscheint rechts ein neuer Dialog, in dem man die Daten nochmal überprüfen kann. Im Normalfall kann man hier einfach oben auf „Save“ klicken.
Attribute und Claims
Der Dienst kann aus dem AzureAD bestimmte Attribute abfragen, bzw. diese werden beim einer Authentifizierung einfach mitgeliefert. Wenn also die Authentifizierung eines Benutzers über SAML erfolgreich ist, werden die hier definierten Attribute an den Dienst geliefert. Der Dienst sagt normalerweise über Hilfeseiten oder den Support an, welche Attribute benötigt werden. Das wichtigste Attribut ist hier der Unique User Identifier. Man verwendet normalerweise entweder den Userprincipalname (UPN) oder die E-Mail Adresse. Der UPN ist vorausgewählt. Wir ändern beispielhaft auf die E-Mail-Adresse.
Wir ändern den Wert user.principalname, indem wir auf das Feld klicken und aus der vorgegebenen Liste user.mail auswählen. Dann oben auf „Save“ klicken:
Metadata File
https://learn.microsoft.com/de-de/azure/active-directory/azuread-dev/azure-ad-federation-metadata
Die Gegenseite benötigt nun unser Metadata File. Die Datei kann man einfach unter Download Metadata File runterladen. Sie liegt im XML-Format vor.
Man kann dem Dienst auch noch das Base64-Zertifikat, die LoginURL, den AzureAD Identifier und die LogoutURL mitgeben. Damit könnte der Dienst seine Seite auch ohne Metadata File von uns konfigurieren (z.B. falls er die nicht importieren kann).
Zugriff auf bestimmte Benutzer beschränken
1. Benutzerquelle aus onPremise AD per AzureAD Connect
AzureAD Connect->Synchronisierungsoptionen anpassen->Kontodaten eingeben->Verzeichnis auswählen
Es werden nun die Active Directory OU’s angezeigt. Hier die OU’s auswählen, deren Benutzer/Gruppen mit dem AzureAD synchronisiert werden sollen.
ACHTUNG: AzureAD unterstützt keine verschachtelten Gruppen. Stand 2022.
2. Benutzerquelle direkt über AzureAD
Portal: admin.microsoft.com
3. Zugriff auf AzureAD Applikation einschränken
Die benötigten Daten sind nun durch die obige Konfiguration im AzureAD verfügbar. Wir wählen die AzureAD Applikation aus und wählen dort:
Users and Groups->Add user/group
Rechts geht die Liste der verfügbaren Benutzer und Gruppen auf. Hier einfach die entsprechende Auswahl treffen.
Conditional Access Location einrichten
Portal: azure.mocrosoft.com
Pfad: Azure Active Directory > Security > Conditional Access > Named Locations
https://learn.microsoft.com/en-us/azure/active-directory/conditional-access/location-condition
Azure Active Directory > Security > AzureAD Conditional Access > Named locations
Auf „+IP ranges location“ klicken. Es geht rechts eine neue Eingabemaske auf.
Wenn wir ein vertrauenswürdiges Netz einrichten wollen, den Haken für „Mark as trusted location“ setzen. Dann einen Namen für das Netz vergeben, z.B. „Trusted Location Branch Office 1“. Unten auf das + klicken und die entsprechenden Netzbereiche eingeben. Wenn es nur eine IP ist, wird trotzdem eine Netzmaske verlangt. Wir geben dann IP/32 ein und speichern alles.
Damit haben wir die Conditional Access Location konfiguriert. Im nächsten Schritt verknüpfen wir die Location mit dem Dienst.
MFA Trusted IP’s
Portal: portal.azure.com
Pfad: Azure Active Directory > Security > Conditional Access > Named Locations
Eine Conditional Access Policy setzt normalerweise mindestens einen weiteren Sicherheitsfaktor voraus, meist Multi Factor Authentication. Um das zu umgehend Setzen die IP’s auch als MFA Trusted IP’s.
Conditional Access Policy für SAML Dienst einrichten
Portal: portal.azure.com
Wir wählen in der linken Spalte „Enterprise Applications“. Es werden alle Applikationen aufgelistet, die wir im Tenant konfiguriert haben. Wir wählen nun die App aus, für die wir den Conditional Access einrichten wollen. Dann wählen wir im Bereich Security „Conditional Access“ und klicken auf „+New policy“.
Folgende Informationen werden für eine Contitional Access Policy benötigt:
- Ein Name für die Policy
- Welchen Benutzern die Policy zugewiesen wird
- Die Anwendung, der die Policy zugewiesen wird
- Die Konditionen (Conditions, z.B. IP’s)
- Access Control über Grant oder Session Block
Folgendes sollte man außerdem beachten:
- Nie alle Benutzer in eine Policy einschließen. Es sollte sogenannte Break Glass Benutzer geben, die Zugreifen können, falls man sich über eine Fehlkonfiguration ausgeschlossen hat.
- Die Richtlinie nie direkt aktivieren, sondern erst über Report-only prüfen was passiert.
Wir bauen uns nun eine Deny-Regel. Wir blockieren also alle Locations, bis auf die oben spezifizierten Locations. Diese Regel wenden wir auf alle Benutzer an, bis auf die Break Glass Benutzer und evtl. spezielle Admins.
Users or workload identities
Include: All users
Exclude: Break Glass und Admins
Cloud apps or actions
Die SAML App auswählen
Conditions
Locations -> Include: Any location
Locations -> Exclude: Selected Locations (hier die Locations auswählen, die wir erlauben wollen)
Access Control
Block access
sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation
Für das Erstellen eines CSR benötigt man die folgenden Details:
- Common Name Wildcard: Das ist der Domänenname (*.domäne.de)
- Organization Name: Der offizielle Name des Unternehmens
- Organizational Unit: Die Abteilung des Unternehmens, dem man angehört (IT)
- Company Location: Die Adresse des unternehmens
- E-Mail: Kontakt E-Mail Adresse
- 2048 Bit Schlüssellänge
- SHA-2 Signaturalgorythmus
https://www.juniper.net/documentation/us/en/software/junos/cli/index.html
show virtual-chassis show virtual-chassis status show virtual-chassis vc-port show lacp interfaces
Interfaces Konfigurieren (eine Default Gruppe und eine für Trunk Ports)
#### DEFAULT CONFIG ##### set groups default-interface-config interfaces <*> apply-macro juniper-port-profile "Desktop and Phone" set groups default-interface-config interfaces <*> speed auto set groups default-interface-config interfaces <*> ether-options auto-negotiation set groups default-interface-config interfaces <*> unit <*> family ethernet-switching interface-mode access set groups default-interface-config interfaces <*> unit <*> family ethernet-switching vlan member default #### WLAN CONFIG #### set groups wifi-config interfaces <*> description WLAN #set groups wifi-config interfaces <*> native-vlan-id 1 set groups wifi-config interfaces <*> speed auto set groups wifi-config interfaces <*> ether-options auto-negotiation set groups wifi-config interfaces <*> unit <*> family ethernet-switching interface-mode trunk set groups wifi-config interfaces <*> unit <*> family ethernet-switching vlan members [default wifi_gast wifi_intern wifi_public] #### Portzuweisungen #### wildcard range delete interfaces ge-0/0/[0-23] wildcard range set interfaces ge-0/0/[0-20] unit 0 family ethernet-switching interface-mode access # interface mode muss immer direkt gesetzt werden wildcard range set interfaces ge-0/0/[0-20] apply-groups default-interface-config wildcard range set interfaces ge-0/0/[21-23] unit 0 family ethernet-switching interface-mode trunk # interface mode muss immer direkt gesetzt werden wildcard range set interfaces ge-0/0/[21-23] native-vlan-id 1 # wird über die group config nicht übernommen wildcard range set interfaces ge-0/0/[21-23] apply-groups wifi-config #show interfaces | display inheritance # rollback # Änderungen verwerfen commit check commit #### MAC Security #### set switch-options interface ge-0/0/0 interface-mac-limit 7 set switch-options interface ge-0/0/0 interface-mac-limit packet-action drop #### IPv6 Advertisement deaktivieren #### # Die EX Serie Switches machen ein automatisches IPv6 Advertisement, auch wenn das nicht konfiguriert ist. delete protocols router-advertisement
Support Logs erstellen
A) For standalone switch:
-issue the command #run request support information | save /var/tmp/RSI.txt
-issue the command #run file archive compress source /var/log/ destination /var/tmp/VARLOG
-do ftp or http to the switch in order to download the RSI.txt and the VARLOG files from the /var/tmp
directory then attach them to the case
B) For virtual-chassis:
-issue the command #run request support information all-members | save /var/tmp/RSI-All-Members.txt
-follow this KB in order to collect logs: https://kb.juniper.net/InfoCenter/index?page=content&id=KB15186
-do ftp or http to the switch in order to download the RSI-All-Members.txt and the VARLOG files from the /var/tmp directory then attach them to the case‘
Root Shell erlangen und Dateien runterladen
Follow the steps below to collect all the files from the /var/log directory of each member of a virtual chassis.
NOTE: You will need FTP, SSH, HTTP (JWEB) or USB access to the EX Switch to copy the logs from the Switch.
- Login to the EX Virtual Chassis (VC) using the management IP address or console. You will be logged into the primary switch of the EX Virtual Chassis. In this example, member 0 is the primary switch. {master:0} user@router>
- Login to the shell prompt as the root user.
user@router>
start shell user root
- Use the „tar“ command to compress the folder /var/log and its contents. The file will be saved to /var/tmp directory
root%
tar -zcvf /var/tmp/varlog-mem0.tar.gz /var/log/*
- Verify whether the tar.gz file has been created
root% ls /var/tmp
.ssh varlog-mem0.tar.gz
- Exit from the shell prompt using the command „exit“ and you will be placed on the CLI prompt of Primary switch
{master:0}
root%
exit
- Request a session to the next member of the virtual chassis using its member ID. To verify which member you are connected to, use the „show virtual chassis“ command and it will display an asterisk * next to the member you are connected to.
root> request session member 1
- Login to the shell as the root user
root>
start shell user root
- Use the „tar“ command to compress the folder /var/log and its contents.
root%
tar -zcvf /var/tmp/varlog-mem1.tar.gz /var/log/*
- Verify whether the tar.gz file has been created
root% ls /var/tmp
.ssh varlog-mem1.tar.gz
- Go to the CLI of current member to copy the member log files to primary.
root%
cli
- Execute the file copy command to copy the tar.gz file from the current member switch to the /var/tmp directory on primary switch
root>
file copy fpc1:/var/tmp/varlog-mem1.tar.gz fpc0:/var/tmp/
- Exit from the current member session. Now you will be logged back into the Primary switch.
root>
exit
- Repeat steps 6 through 12 by changing the member id until all the member logs are loaded to the primary switch. Be sure to name each file according the member id to easily identify.
Now the files can be directly copied from the EX Virtual Chassis primary to any local host using ftp, scp, JWEB, or mounted USB.
NOTE: FTP, SSH and HTTP are configured under the ’system services‘ stanza. See Related Links below.
Für Openstage SIP Telefon kann man anstatt LLDP-MED auch über die DHCP Option 43 der DHCP Server konfigurieren konfigurieren.
Die Unify OpenStage Telefone kommunizieren mit Ihrer SIP Anlage (Nextcloud, Swyx) über corenet/HFA. Das versteht Wireshark per Default nicht.
Zum Glück hat Jonas Köritz dazu ein Plugin gebaut. Vielen Dank!
https://github.com/jonas-koeritz/hfa-dissector
- Put it in your Wireshark plugins folder.
- On Windows:
C:\Users\<username>\AppData\Roaming\Wireshark\plugins
- On Linux:
~/.wireshark/plugins
- On Windows:
Sicherheitshalber hier ein Direktdownload (Datei in hfa.lua umbenennen):
Voraussetzungen, werden durch die Grundinstallation abgedeckt:
- Die Grundinstallation ist durchgeführt
- Netzwerk ist konfiguriert
- Internetzugriff ist erlaubt (Firewall)
- root pw ist vergeben
- Ein weiterer Benutzer ist angelegt
- Webserver ist installiert
- SSH Server ist installiert
SSH vorbereiten – root Logins verbieten
nano /etc/sshd/sshd_config PermitRootLogin yes
Softwareinstallation
apt install sudo open-vm-tools vim mariadb-server ffmpeg imagemagick locate htop ntp ntpdate
Neuen Benutzer anlegen und sudo erlauben
sudo adduser username sudo adduser username sudo
Uhrzeitsynchronisation
Zuerst setzen wir die korrekte Zeit. Dann tregen wir den Zeitserver in der Konfigurationsdatei ein und starten den Service neu.
ntpdate -u ntp-time.server.de vi /etc/ntp.conf server ntp-time.server.de service ntp start
MariaDB konfigurieren
mysqladmin -u root -p password "pw" mysql -u root -p CREATE DATABASE nextcloud GRANT ALL PRIVILEGES ON nextcloud.* to 'ncuser'@'localhost' IDENTIFIED BY 'newpw'
PHP 8.0 installieren
Die PHP Pakete werden beim Paketmaintainer gehostet: https://deb.sury.org/
https://www.linuxuprising.com/2021/01/apt-key-is-deprecated-how-to-add.html
Zuerst bereiten wr die Umgebung vor, indem wir ein paar Pakete installieren, das PHP Repository von sury hinterlegen und den Signaturkey des Repositorys runterladen.
Dann installieren wir PHP 8 und Zusatzpakete
sudo apt install lsb-release ca-certificates software-properties-common gnupg sudo echo "deb [signed-by=/usr/share/keyrings/sury-php-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list sudo wget -qO - https://packages.sury.org/php/apt.gpg | sudo tee /usr/share/keyrings/sury-php-archive-keyring.gpg sudo apt install php8.0 sudo apt install php8.0-{curl,gd,mbstring,xml,zip,mysql,bz2,intl,ldap,smbclient,imap,bcmath,gmp,apcu,memcached,redis,imagick}
php.ini anpassen
vi /etc/php/8.0/apache2/php.ini upload_max_filesize = 2G post_max_size = 2G memory_limit = 2G output_buffering = 0
Apache vorbereiten (Nextcloud)
https://docs.nextcloud.com/server/latest/admin_manual/installation/source_installation.html
Es wird eine SSL Konfiguration genutzt. Die SSL Keys müssen vorher unter /etc/apache2 abgelegt werden oder an irgendeinem anderen Ort, dann unten die Verzeichnisse anpassen. Der Webserver muss die Dateien lesen können, andere Benutzer dürfen aber auf keinen Fall den privaten Key lesen! Es wird vorausgesetzt, dass der Apache als Benutzer www-data läuft.
chmod 644 /etc/apache2/ssl/domain.de.crt chmod 644 /etc/apache2/ssl/Intermediate_CA_Bundle.crt chmod 600 /etc/apache2/ssl/domain.de.key chown www-data:www-data /etc/apache/ssl/*
a2enmod ssl a2enmod rewrite a2enmod headers a2enmod env a2enmod dir a2enmod mime
vi /etc/apache2/sites-available/nextcloud.conf <VirtualHost *:443> Header add Strict-Transport-Security: "max-age=15768000;includeSubdomains" SSLEngine on DocumentRoot /var/www/nextcloud/ ServerName daten.domain.de ServerAlias datenraum.domain.de <Directory /var/www/nextcloud/> Require all granted AllowOverride All Options FollowSymLinks MultiViews <IfModule mod_dav.c> Dav off </IfModule> </Directory> SSLCACertificateFile /etc/apache2/ssl/Intermediate_CA_Bundle.crt SSLCertificateFile /etc/apache2/ssl/domain.de.crt SSLCertificateKeyFile /etc/apache2/ssl/domain.de.key </VirtualHost>
vi /etc/apache2/sites-available/000-default.conf <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/nextcloud Redirect permanent / https://subdomain.domain.com/ </VirtualHost>
a2ensite nextcloud systemctl restart apache2
Nextcloud installieren
Nextcloud Paket mit wget runterladen und Dateien nach /var/www/nextcloud entpacken.
chown -R www-data:www-data /var/www/nextcloud/
Nun aktivieren wir die rewrite-Funktion von Nextcloud. Dafür muss die .htaccess-Datei im Stammverzeichnis (/var/www/nextcloud) für den Webserver beschreibbar sein.
vi /var/www/nextcloud/config/config.php 'overwrite.cli.url' => 'https://subdomain.domain.com/', 'htaccess.RewriteBase' => '/',
Das Gebietsschema legen wir auf Deutschland fest.
'default_language' => 'de_DE', #(de_DE = förmliches Sie; de=Du) 'default_locale' => 'de_DE',
Nextcloud Zugriffstoken
Für die Remote API sollte man ein Zugriffstoken aktivieren, sonst können Details über den Server frei aufgerufen werden. Z.B. Benutzeranzahl, Verfügbarer Speicherplatz, etc…
sudo -u www-data php occ config:app:set serverinfo token --value yourtoken
Damit sollte folgender Befehl bei einem Browser, mit dem man nicht gleichzeitig in Nextcloud angemeldet ist eine Fehlermeldung generieren:
https://daten.fps-law.de/ocs/v2.php/apps/serverinfo/api/v1/info
Der API Token wurde erst in der Version 22 eingeführt. Habe die Funktion noch nie genutzt, würde aber ein ausreichend sicheres Token verwenden, da die API mit diesem Token verwendet werden kann, anstatt eines Admin-Users. Also Brute-Force sicher machen!
Nextcloud LDAP Authentifizierung aktivieren
LDAP Löschen von Benutzern
LDAP Benutzer unterliegen in Nextloud speziellen Regeln, was das Löschen der Accounts betrifft. Infos dazu sind hier beschrieben:
https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/user_auth_ldap_cleanup.html
Man kann die Accounts entweder automatisch löschen lassen, mit einer Konfigurationsoption oder über folgende Befehle manuell:
sudo -u www-data php occ ldap:show-remnants sudo -u www-data php occ user:delete [user]
LDAP App Installation und konfiguration
App LDAP Integration aktivieren und die Einstellungsseite neu laden. Der Menupunkt LDAP/AD-Integration erscheit links im Menu unter Verwaltung.
Tab Server:
Server = <IP des LDAP Servers> Port = LDAP Port (Für AD: 389) Benutzer-DN = CN=_svc_benutzer,OU=ServiceKonten,DC=domain,DC=tld Passwort = Starkes PW Base DN = Auf Base-DN ermitteln klicken, wird automatisch aufgelöst, sofern die obigen Daten korrekt sind.
Tab Benutzer:
In dem Tab wird angegeben, welche Benutzer aus dem AD in Nextcloud angezeigt werden.
Nextcloud versucht automatisch alle Gruppen aus dem LDAP Verzeichnis auszulesen. Man kann dann einfach eine Gruppe davon wählen. Mitglieder aus dieser Gruppe dürfen sich dann in Nextcloud anmelden. Sollte das nicht funktionieren, kann man das Filterattribut selbst eingeben. Das lautet für einen Gruppenfilter in etwa so:
(&(|(objectclass=person))(|(|(memberof=CN=Datenraum,CN=Benutzergruppen,DC=domain,DC=tld)(primaryGroupID=7902))))
Die einzelnen Werte müssen natürlich für das enigesetzte AD angepasst werden (Gruppenname/OU/Domain/TLD).
Tab Anmeldeattribute:
Diese Einstellung legt fest, welche Benutzer sich anmelden dürfen.
Analog zu dem obigen LDAP Filter könnte man folgenden Filter verwenden:
((&(&(|(objectclass=person))(|(|(memberof=CN=Datenraum,CN=Benutzergruppen,DC=domain,DC=tld)(primaryGroupID=7902))))(|(samaccountname=%uid)(|(mailPrimaryAddress=%uid)(mail=%uid))))
Tab Gruppen:
Hier wird festgelegt welche AD-Gruppen in Nextcloud angezeigt werden.
E-Mail Feld aus LDAP auslesen
Die Mailadresse steht im AD unter dem LDAP-Feld mail:
Nextcloud Tasks über Cron (optional)
Nextcloud schaut standardmäßig bei jedem Seitenaufruf, ob es auszuführende Tasks gibt. Das ist overhead und dazu noch nicht einmal so zuverlässig, wie ein Linux Cron Job.
Daz udie Crontag des Benutzerkontos editieren, unter dem der Webserver läuft. Unter Debian ist das www-data.
crontab -u www-data -e
Dann folgende Zeile einfügen, um den Job alle 5 Minuten laufen zu lassen:
*/5 * * * * php -f /var/www/nextcloud/cron.php
Nextcloud Single Sign On mit Azure AD (optional)
Nextcloud Memory Caching aktivieren (optional)
Nextcloud empfiehlt Memory Caching. Dafür ist der Redis Server gut geeignet. Er unterstützt distributed memcache, Transactional File Locking und sogar User-Sessions über verschiedene Webseiten hinweg. Die Konfiguration mit APCu ist dafür viel einfacher.
APCu
vi /var/www/nextcloud/config/config.php 'memcache.local' => '\OC\Memcache\APCu'
In der php.ini für die CLI muss man das aber auch aktivieren, ist off by default.
vi /etc/php/8.0/cli/php.ini apc.enable_cli=1
Redis
Wir werden Redis als local memcache und Transactional File Locking konfigurieren.
sudo apt install redis-server php-redis
Redis Config anpassen
vi /etc/redis/redis.conf unixsocket /run/redis/redis-server.sock unixsocketperm 770 port 0
www-data zu redis Gruppe hinzufügen
sudo usermod -a -G redis www-data
Nextcloud config anpassen
vi /var/www/nextcloud/config/config.php 'memcache.locking' => '\OC\Memcache\Redis', 'memcache.local' => '\OC\Memcache\Redis', 'redis' => [ 'host' => '/run/redis/redis-server.sock', 'port' => 0, ],
Es ist wichtig, dass der Port auf 0 gesetzt wird. Das bedeutet Redis hört nicht auf TCP Anfragen, sondern nur auf Socketanfragen.
Nectcloud Rich Workspace für alle Benutzer deaktivieren
Der Rich Workspace ist das Feature, dass man Notizen zu Verzeichnissen hinzufügen kann, die dann im oberen Bereich angezeit werden, wenn man in das Verzeichnis wechselt. Dazu wird im Verzeichnis eine Readme.md abgelegt.
sudo -u www-data php occ config:app:set text workspace_available --value=0
https://github.com/nextcloud/server/issues/19548
Nextcloud Skeleton Files
Neue Benutzer erhalten standardmäßig eine Kopie des Ordners /nextcloud/core/skeleton. Bei neuen Updates wird der Inhalt ersetzt, daher kann man die Dateien darin nicht einfach löschen. Dafür gibt es die Config Variable skeletondirectory. Diese kann man in der config.php auf einen Pfad setzten, der vom Webserver gelesen werden kann.
Netzwerkpfad auf Dateisystemebene einbinden
Die Anfroderung an der Nextcould Server ist unter Anderem, dass die Daten unter dem Datenverzeichnis bei uns auf dem Fileserver gespeichert werden, um somit die Datenhaltung zu vereinheitlichen. Für Nextcloud soll es so aussehen, als ob das aber ein normales Linux-Verzeichnis ist, auf dem Nextcloud nativ arbeiten kann.
https://wiki.ubuntuusers.de/mount.cifs/
https://wiki.ubuntuusers.de/fstab/
apt install cifs-utils
Datei /root/.smbcredentials erstellen und die Zugangsdaten zur Freigabe eintragen:
username=BENUTZER password=PASSWORD domain=DOMAIN chmod 600 /root/.smbcredentials
Nun ein Verzeichnis im Dateisystem erstellen unter dem die Freigabe eingebunden werden soll. Z.B. /media/daten
Ob erfolgreich auf die Freigabe zugegriffen werden kann, kann man nun mit folgendem Kommando testen:
mount -t cifs -o credentials=~/.smbcredentials //<ip des servers>/<freigabe> /media/daten
Wenn es bei dem obigen Kommando nicht zu Fehlermeldungen kommt und man die Dateien der Freigabe unter /media/daten sehen kann, hat alles funktioniert. Nun sind wir bereit die Daten in der fstab zu hinterlegen, um die Freigabe bei Systemstart zu verbinden. Vorher aber noch schnell die Freigabe wieder unmounten.
umount /media/daten vi /etc/fstab
Folgende Zeile ans Ende anfügen:
//<ip>/<share> /media/daten cifs x-systemd.automount,credentials=/root/.smbcredentials,rw,_netdev,uid=www-data,gid=www-data,file_mode=0770,dir_mode=0770 0 0
Weitere interessante Mount Optionen sind iocharset=utf8,nofail
Nextcloud empfohlene Apps
Share Listing
Ermöglicht eine Abfrage aller Dateifreigaben über die CLI (sudo -u www-data php occ sharing:list).
Activities for shared file downloads, visible to all admins
Zeigt die Downloads von freigegebenen Daten allen Admins im Activities Menu.
Deck
Kanban-ähnliche Organisation für persönliche Planung und Teamprojekte.
Notes
Ablenkungsfreie Notizen und Schreiben.
Group Folders
Vom Administrator konfigurierte Ordner, die mit jedem Gruppenmitglied geteilt sind.
Nextcloud OCC – nützliche Befehle
occ user:list occ user:info [username]
Nextcloud Updaten
Wenn möglich, sollte der automatische webbasierte Installer benutzt werden. Ansonten hier die Dokumentation:
https://docs.nextcloud.com/server/latest/admin_manual/maintenance/update.html
Bei der Übertragung von Faxen über Voice over IP gibt es immer wieder Probleme. Da das Thema immer mal wieder aufkommt hier eine Dokumentation der wichtigsten Erkenntnisse.