K.inc Tec Blog

Mein kleines EDV Logbuch

Category: Allgemein (Page 1 of 4)

Windows 10 Debloater

https://github.com/Sycnex/Windows10Debloater

Debian Linux – Dateiänderungen überwachen

Über das Paket inotifywait können Änderungen an kompletten Verzeichnisbäumen überwacht werden.

Weiterlesen

AzureAD SAML und Conditional Access

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://www.penthara.com/configuring-conditional-access-policy-to-restrict-access-from-specific-ip-or-location/

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 vergeben einen Namen, klicken auf Conditions->Locations->Configure: Yes und wählen die im obigen Abschnitt konfigurierten Locations. ACHTUNG: unten die Policy aktivieren, sonst wird nur berichtet was passieren würde, wenn man die Policy aktiviert hätte.

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

MariaDB installieren

sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation

Wildcard SSL CSR mit OpenSSL

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

Juniper CLI

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.

  1. 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>
  2. Login to the shell prompt as the root user. user@router> start shell user root
  3. 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/*
  4. Verify whether the tar.gz file has been created root% ls /var/tmp
    .ssh varlog-mem0.tar.gz
  5. 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
  6. 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
  7. Login to the shell as the root user root> start shell user root
  8. Use the „tar“ command to compress the folder /var/log and its contents. root% tar -zcvf /var/tmp/varlog-mem1.tar.gz /var/log/*
  9. Verify whether the tar.gz file has been created root% ls /var/tmp
    .ssh varlog-mem1.tar.gz
  10. Go to the CLI of current member to copy the member log files to primary. root% cli
  11. 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/
  12. Exit from the current member session. Now you will be logged back into the Primary switch. root> exit
  13. 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.

DHCP Option 43 – Netphone OpenStage

Für Openstage SIP Telefon kann man anstatt LLDP-MED auch über die DHCP Option 43 der DHCP Server konfigurieren konfigurieren.

Weiterlesen

Wireshark HFA Corenet IP Monitoring

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

Sicherheitshalber hier ein Direktdownload (Datei in hfa.lua umbenennen):

Nextcloud Debian Neuinstallation mit LDAP Connector

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

https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html

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)

https://docs.nextcloud.com/server/22/admin_manual/configuration_server/background_jobs_configuration.html

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)

https://medium.com/@ntrussell/enable-nextcloud-sso-authentication-through-microsoft-azure-active-directory-saml-abe37d735cd

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

https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html

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.

https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/default_files_configuration.html

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

Faxe über VoIP

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.

Weiterlesen

Page 1 of 4

© 2016 kinc.de