K.inc Tec Blog

Mein kleines EDV Logbuch

Page 5 of 23

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

Veraltete Einträge aus GPO’s entfernen

GPO Richtlinien werden als Registry Keys auf die zu verwaltenden Systeme ausgerollt. Mit der Zeit kann es vorkommen, dass Einstellungen in Windows oder anderer Software wegfallen (Office, Chrome, etc..). Wenn man nun die neuen ADMX-Dateien nutzt, kann e szu Verwaisten Einträgen in den Gruppenrichtlinien kommen. Das passiert gerne auch in Verbindung mit dem Central Store. Schaut man sich die Einstellungen einer solchen GPO an, steht ganz unten unter „Zusätzl. Reg.-einst.“:

„Office 2016 Für einige Einstellungen konnten keine Anzeigenamen gefunden werden. Eine Aktualisierung der von der Gruppenrichtlinienverwaltung verwendeten ADM-Dateien behebt möglicherweise das Problem.“

Das bedeutet zu der gesetzten Policy wird keine Beschreibung mehr in den aktuell genutzten ADMX-Dateien gefunden.

Man kann das aber mit PowerShell beheben und einzelne Richtlinien aus einer GPO entfernen (hatte so einen Fall bei Office365):

Remove-GPRegistryValue -Name "Office365" -Key "HKCU\Software\Policies\Microsoft\office\16.0\common\general" -ValueName enablepublishtodocs

Linsensuppe

Hmm ich weiss nicht die mengen genau, aber so ca 200, 250 gram linsen, 2 mittel bis größe Karotten und min 2 Stange Selerie. Abhängig von linsen, einige muss man mehrere stunden einweichen…..dan zwiebeln und knobi karotte und selerie im öl anbraten….zu letzt linsen rein wasser bis zum ende linsen und 40min kochen….das ist für braune linsen, rote passen nicht gut…salz pfeffer ca….und am.ende mit balsamiko im teller geniessen🙂

Ubuntu Linux boot Partition aufräumen

Die Linux boot Partition ist normalerweise recht klein und kann voll laufen, wenn über die Zeit mehrere Kernel installiert wurden, ohne die alten kernel zu entfernen. Das führt dann dazu, dass es irgendwann bei einem apt-get upgrade zu Fehlern kommt bei der Installation eines neuen Kernels oder bei dem Paket initramfs-tools. Hier beschreibe ich einen guten und sicheren Weg die alten kernel zu entfernen und so wieder Platz auf der Partition zu schaffen.

Weiterlesen

Script: Registry – Drucker säubern

Für dieses Script wird die PsExec.exe von SysInternals benötigt, um die Powershell mit dem Systemaccount zu starten.

PowerShell starten:

Start-Process -FilePath cmd.exe -Verb Runas -ArgumentList ‘/k C:\pstools\PsExec.exe -i -s powershell.exe’

Scriptcode:

Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceClasses{0ecef634-6ef0-472a-8085-5ad023ecbccd}##?#SWD#PRINTENUM#"| Remove-Item -Recurse -Force Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Class{1ed2bbf9-11f0-4084-b21f-ad83a8e6dcdc}*" -exclude "Properties" | Remove-Item -Recurse -Force Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Enum\SWD\PRINTENUM*"| Remove-Item -Recurse -Force get-childitem "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceContainers\" -ErrorAction SilentlyContinue -Recurse -exclude "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"|where-object {$_.property -like "SWD\PRINTENUM"}| foreach-object {(get-item $_.PSParentPath).PSParentPath}|Remove-Item  -recurse -Force
 Get-childItem "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider*" | Remove-Item -Recurse -Force

Programme mit System-Konto starten

Auf manche Dateien kann man nur mit dem Systemkonto zugreifen. Das gilt besonders auch für Registry-Einträge. Diese sind auch für Administratoren manchmal nicht lesbar. Hierfür nutzen wir das Tool PsExec von SysInternals.

Programm interaktiv (-i) als System (-s) starten:

psexec -i -s c:\windows\regedit.exe

Genauso kann man aber auch z.B. die Powershell mit dem System-Konto starten:

psexec -i -s powershell.exe

Remote Desktop Services Zertifikatswechsel Wildcard

Diese Artikel beschreib einen Zertifikatswechsel mit Hilfe der Unternehmens PKI. Das neue Zertifikat wird über die Unternehmens CA beantragt. Dann wird das Zertifikat auf dem Sessionbroker und auf den RDS-Servern (Terminal Server) ausgerollt.

Weiterlesen

Exchange 2016 Updates

Wichtiger Thread-Beitrag von Marco Freund:

https://www.frankysweb.de/neue-sicherheitsupdates-fuer-exchange-server/

Ein Problem, welche ich in der Vergangenheit schon oft hatte, ist, dass nach einem Exchange Update die OWA/ECP Website nicht verfügbar ist und man seltsame Fehlermeldungen erhält – Entweder Error 400 oder die Seite wird unvollständig dargestellt. Mit den Logs konnte ich nicht viel anfangen.

Ich fand heraus, dass nach jedem Exchange Update zwei Skripte ausgeführt werden sollten. Das war mir lange so nicht bekannt. Vielleicht hilft es ja einem weiter. Hier sind die Skripte abgelegt (ggf. Installationsordner anpassen und Powershell mit Adminrechten starten)

C:\Program Files\Microsoft\Exchange Server\V15\Bin> .\UpdateCas.ps1
C:\Program Files\Microsoft\Exchange Server\V15\Bin> .\UpdateConfigFiles.ps1

Wichtig ist auch: Diese Skripte müssen auf dem Mailbox Server ausgeführt werden, also den Servern mit aktiver Mailbox Rolle oder auf Multi Role Servern. Es ist auf den Servern mit Client Access Rolle (betrifft nur Exchange 2010 und 2013) nicht erforderlich.

Exchange Nutzung von Wildcard Zertifikaten

Wer Wildcard Zertifikate in Exchange 2013 oder 2016 einsetzen will, muss ein paar Dinge beachten. Microsoft macht es mal wieder etwas komplizierter als nötig.

Weiterlesen

© 2016 kinc.de