Archive 27. Juli 2021

NextCloud Installtion

System Updaten

apt-get update && apt-get upgrade

Apache installieren

sudo apt install apache2 -y

Verzeichnisliste deaktivieren

sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf

Starte Apache Service

sudo systemctl start apache2.service

Installiere Maria DB

sudo apt install mariadb-server mariadb-client -y

Maria DB Server Konfiguration

sudo mysql_secure_installation
Enter current password for root (enter for none): Just press the Enter
Set root password? [Y/n]: Y
New password: Gebe hier das Root Passwort ein
Re-enter new password: Repeat password
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

Neustart Maria DB Server

sudo systemctl restart mariadb.service

Installation PHP

PHP-Repository hinzufügen

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Repositorys Updaten

sudo apt-get update

Endgültige PHP-Installation & Module

sudo apt install php8 libapache2-mod-php8 php8-common php8-gmp php8-url php8-intl php8-mbstring php8-xmlrpc php8-mysql php8-gd php8-xml php8-cli php8-zip php8-imagick php8-ldap -y

Passe die PHP.ini Datei an

sudo nano /etc/php/7.4/apache2/php.ini

Suche hier nach folgenden Stichworten und ändere sie gegebenenfalls ab.

memory_limit = 1024M
upload_max_filesize = 16G
post_max_size = 16G
date.timezone = Europe/Berlin

Nextcloud Datenbank erstellen

Öffnen Sie den SQL-Dialog

sudo mysql

Datenbank nextcloud erstellen

CREATE DATABASE nextcloud;

Datenbankbenutzer mit Passwort anlegen

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password_here';

Zugriff auf die Datenbank gewähren

GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'password_here' WITH GRANT OPTION;

Änderungen sichern und beenden

FLUSH PRIVILEGES;
EXIT;

Lade die neueste Nextcloud-Version herunter

cd /tmp && wget https://download.nextcloud.com/server/releases/nextcloud-22.0.0.zip
sudo apt-get install unzip
sudo unzip nextcloud-22.0.0.zip
sudo mv nextcloud /var/www/

Konfiguriere Apache2

Erstelle eine neue conf Datei

sudo nano /etc/apache2/sites-available/nextcloud.conf
<VirtualHost *:80>
    ServerAdmin master@domain.com
    DocumentRoot /var/www/nextcloud/
    ServerName demo.domain.com
    ServerAlias www.demo.domain.com

    Alias /nextcloud "/var/www/nextcloud/"

    <Directory /var/www/nextcloud/>
       Options +FollowSymlinks
       AllowOverride All
       Require all granted
         <IfModule mod_dav.c>
           Dav off
         </IfModule>
       SetEnv HOME /var/www/nextcloud
       SetEnv HTTP_HOME /var/www/nextcloud
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Aktivieren Sie das Nextcloud- und das Rewrite-Modul

sudo a2ensite nextcloud.conf
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime

Neustart vom apache Service

sudo systemctl restart apache2.service

Datenordner vorbereiten

cd /home
sudo mkdir /home/data/
sudo chown -R www-data:www-data /home/data/

sudo chown -R www-data:www-data /var/www/nextcloud/
sudo chmod -R 755 /var/www/nextcloud/

Domain ansurfen und Einrichtung abschließen


Bitwarden_rs / Vaultwarden Installation unter Docker

In diesem Beitrag zeige ich dir wie du dir dein eigenen Passwortsafe installieren kannst. Ich verwende hierfür Bitwarden_rs da man hier eine schöne Einstellungswebseite hat.

Installation

sudo apt install docker.io
sudo systemctl start docker 
sudo systemctl enable docker
docker pull vaultwarden/server:latest
docker run -d --name vaultwarden \
  -e ADMIN_TOKEN=Hier_gibst_du_ein_Passwort_ein \
  -e WEBSOCKET_ENABLED=true \
  -v /vw-data/:/data/ \
  -p 80:80 \
  --restart on-failure \
  vaultwarden/server:latest

Um auf die Adminoberfläche zu kommen gebe im Browser die Serveradresse und hänge ein /admin daran.

Du gelangst nun auf diese Seite hier gibst du den Admin-Token ein den du konfiguriert hast.

Nun hast du verschiedenste Einstellungsmöglichkeiten wie SMTP. Ebenfalls kannst du Hier schon Benutzer anlegen.


Domain Join mittels PowerShell

In diesem Beitrag zeige ich dir wie du einen Windows Client in eine Windows Domaine per Skript aufnimmst.

Im Beispiel ist die Domaine die „hense.local“ uns das Passwort liegt verschlüsselt unter „C:\temp“.
In einem anderen Beitrag habe ich schonmal gezeigt wie man ein Passwort mittels PowerShell verschlüsseln kann. Dies wird hier benötigt.

Schritte

  • Passwort Verschlüsseln
  • Variablen anpassen
  • Skript als Admin ausführen
### Erstellt am 22.05.2021 - Philipp Hense - it-hense.de ###

# Variablen

$DomainName = "hense.local"
$PasswortSpeicherort = C:\temp


## Ab hier nichts mehr ändern ##

#Credentials aufbauen
$username = "Administrator"
$key = (3,4,2,3,6,2,1,1,2,3,2,4,3,1,4,2)
$password = get-content ("$PasswortSpeicherort\passwort.txt") | convertto-securestring -key $key
$credentials = New-Object System.Management.Automation.PSCredential (“$username”, $password)

#Domain Join
Add-Computer -DomainName $DomainName -Restart -Credential $credentials

PowerShell Passwort verschlüsseln

In diesem Beitrag zeige ich dir wie du mittels PowerShell ein Passwort verschlüsseln kannst. Dies wird oftmals gebraucht um ein Passwort in ein Skript einzubauen ohne das es in Klartext eingefügt wird. Wenn du dieses Skript benötigst lade dir den Sourcecode herunter.

Skripte

### Erstellt am 23.03.2021 - Philipp Hense ###

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()

$Speicherort                     = New-Object system.Windows.Forms.Form
$Speicherort.ClientSize          = New-Object System.Drawing.Point(725,232)
$Speicherort.text                = "Speicherort"
$Speicherort.TopMost             = $false
$Speicherort.icon                = ".\icon.ico"

$Eingabe                         = New-Object system.Windows.Forms.TextBox
$Eingabe.multiline               = $false
$Eingabe.text                    = "z.B. C:\temp"
$Eingabe.width                   = 673
$Eingabe.height                  = 20
$Eingabe.Anchor                  = 'top,right,bottom,left'
$Eingabe.location                = New-Object System.Drawing.Point(30,78)
$Eingabe.Font                    = New-Object System.Drawing.Font('Courier New',12,[System.Drawing.FontStyle]([System.Drawing.FontStyle]::Italic))
$Eingabe.ForeColor               = [System.Drawing.ColorTranslator]::FromHtml("#0017ff")
$Eingabe.BackColor               = [System.Drawing.ColorTranslator]::FromHtml("#ffffff")

$Label                           = New-Object system.Windows.Forms.Label
$Label.text                      = "Bitte gebe hier den Pfad an in der das Passwort verschluesselt abgespeichert werden soll."
$Label.AutoSize                  = $true
$Label.width                     = 350
$Label.height                    = 10
$Label.Anchor                    = 'top,right,left'
$Label.location                  = New-Object System.Drawing.Point(6,15)
$Label.Font                      = New-Object System.Drawing.Font('MV Boli',12)

$abbrechen                       = New-Object system.Windows.Forms.Button
$abbrechen.text                  = "Abbrechen"
$abbrechen.width                 = 210
$abbrechen.height                = 40
$abbrechen.location              = New-Object System.Drawing.Point(116,159)
$abbrechen.Font                  = New-Object System.Drawing.Font('Tw Cen MT',12,[System.Drawing.FontStyle]([System.Drawing.FontStyle]::Bold))
$abbrechen.ForeColor             = [System.Drawing.ColorTranslator]::FromHtml("#ff0000")
$abbrechen.BackColor             = [System.Drawing.ColorTranslator]::FromHtml("#d1d1d1")
$abbrechen.Add_Click({$Speicherort.Close()})


$speichern                       = New-Object system.Windows.Forms.Button
$speichern.text                  = "Speichern"
$speichern.width                 = 210
$speichern.height                = 41
$speichern.location              = New-Object System.Drawing.Point(377,158)
$speichern.Font                  = New-Object System.Drawing.Font('Tw Cen MT',12,[System.Drawing.FontStyle]([System.Drawing.FontStyle]::Bold))
$speichern.ForeColor             = [System.Drawing.ColorTranslator]::FromHtml("#03770e")
$speichern.BackColor             = [System.Drawing.ColorTranslator]::FromHtml("#d1d1d1")

$speichern.Add_Click({$Speicherort.Close(); .\passwort-hash.lnk -Eingabe $Eingabe.Text})

$copyright                       = New-Object system.Windows.Forms.Label
$copyright.text                  = " 2021 Philipp Hense"
$copyright.AutoSize              = $true
$copyright.width                 = 25
$copyright.height                = 10
$copyright.location              = New-Object System.Drawing.Point(10,218)
$copyright.Font                  = New-Object System.Drawing.Font('Microsoft Sans Serif',7)
$copyright.ForeColor             = [System.Drawing.ColorTranslator]::FromHtml("#acacac")

$Speicherort.controls.AddRange(@($Eingabe,$Label,$abbrechen,$speichern,$copyright))



[void]$Speicherort.ShowDialog()
### Erstellt am 23.03.2021 - Philipp Hense ###

param (
 [string] $Eingabe = $Eingabe
)

$File = "$Eingabe"
$File_a = ("$File").TrimStart("System.Windows.Forms.TextBox, Text: ")
$File_neu = $File_a + "\passwort.txt"
$password = Read-Host Bitte Passwort eingeben -AsSecureString
$key = (3,4,2,3,6,2,1,1,2,3,2,4,3,1,4,2)
$password | ConvertFrom-SecureString -key $key| Set-Content ("$file_neu")

Links

Philipp Hense / Powershell-Passwort-verschlüsseln · GitLab


Eigenen Jellyfin Server unter Linux installieren

Du möchtest dir deinen eigenen Jellyfin Server installieren? Dann bist du hier richtig. In diesem Beitrag zeige ich dir wie du deinen eigenen Jellyfin Server installieren kannst.

System updaten

sudo apt-get update && sudo apt-get upgrade -y

SMB Utility installieren

sudo apt-get install cifs-utils 

Mount Point erstellen

sudo mkdir /jellyfin/
sudo mkdir /jellyfin/media

fstab Eintrag

sudo nano /etc/fstab
//192.168.0.137/Media  /jellyfin/media  cifs credentials=/home/.smbcredentials,uid=1000,gid=1000 0 0

Mit STRG+O speicherst du die Datei und mit STRG+X gehst du aus der Datei heraus.

sudo nano /home/.smbcredentials
username=Hier den Benutzer vom NAS eintragen
password=Hier das Passwort vom Benutzer eintragen

Jellyfin installieren

HTTPS-Transport für apt installieren

sudo apt install apt-transport-https

Repository hinzufügen

sudo add-apt-repository universe

Key hinzufügen

sudo wget -O - https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo apt-key add -

Konfiguration der Repository

sudo /etc/apt/sources.list.d/jellyfin.list:
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/ubuntu $( lsb_release -c -s ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list

Jellyfin Package installieren

sudo apt update
sudo apt install jellyfin

Jellyfin starten

sudo systemctl enable jellyfin

Links

Jellyfin-Projekt – Jellyfin


nginx Reverse Proxy Manger installieren

In diesem Beitrag stelle Ich dir den Nginx Proxy Manager vor, ein Reverse Proxy mit einfacher, grafischer Benutzeroberfläche. Hiermit kannst du ganz leicht Reverse Proxy’s anlegen, Access Control Listen erstellen und kostenlose SSL Let’s Encrypt Zertifikate erstellen.

System updaten

sudo apt update && sudo apt upgrade -y

Docker installieren

sudo apt install docker.io
sudo systemctl start docker 
sudo systemctl enable docker

Docker Compose installieren

sudo apt install curl

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

Nginx Proxy Manger installieren

Ordner erstellen

mkdir npm
cd npm

config.json erstellen

nano config.json
{
  "database": {
    "engine": "mysql",
    "host": "db",
    "name": "npm",
    "user": "npm",
    "password": "npm",
    "port": 3306
  }
}

docker-compose.yml erstellen

nano docker-compose.yml
version: "3"
services:
  app:
    image: jc21/nginx-proxy-manager:latest
    restart: always
    ports:
      - 80:80
      - 81:81
      - 443:443
    volumes:
      - ./config.json:/app/config/production.json
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db
    environment:
    # if you want pretty colors in your docker logs:
    - FORCE_COLOR=1
  db:
    image: mariadb:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: "npm"
      MYSQL_DATABASE: "npm"
      MYSQL_USER: "npm"
      MYSQL_PASSWORD: "npm"
    volumes:
      - ./data/mysql:/var/lib/mysql

Docker erstellen

docker-compose up -d

Webzugriff

Du kannst den nginx Proxy Mnager über folgende Adresse erreichen. http://hostip:81 (Hostip einfach dur die IP-Adresse vom Server ersetzen).

Erster Login

user: admin@example.com
pw: changeme

Links

GitHub – jc21/nginx-proxy-manager: Docker container for managing Nginx proxy hosts with a simple, powerful interface


RocketChat Installation unter Ubuntu mittels Snap

Du möchtest deinen Eigenen Chat Server installieren hierfür eignet dich der RocketChat sehr gut. Die Anforderungen hierfür sind nicht hoch und er ist in wenigen Schritten installiert.

Anforderungen

  • Ubuntu / Debian
  • min 1 GB RAM

Installation

sudo apt-get update && sudo apt-get upgrade -y

sudo apt-get install snapd -y

sudo snap install rocketchat-server

Links

Snaps – Rocket.Chat Docs
Installiere unsere Apps und nutze unseren Server – Rocket.Chat – Rocket.Chat


Bitlocker Key in Active Directory schreiben

In diesem Beitrag zeige ich dir wie du einen schon vorhandenen Bitlocker Key in die Windows AD schreiben kannst.

Dies wird oftmals dann gebraucht falls die Gruppenrichtlinie nicht funktioniert hat und der Key nicht automatisch geschrieben wurde, oder das Computerkonto aus versehen gelöscht wurde.

PowerShell Skript

### Erstellt am 07.04.2021 - Philipp Hense ###

$key = manage-bde -protectors -get c: 
$key = $key.trim() -join ";"
$keymatches = ($key | select-String -pattern "ID: {(?<ID>[0-9ABCDEF-]+)};Kennwort:;(?<K>[0-9-]*)" -AllMatches).Matches
 
$key_id = $keymatches[0].Groups.Item(1).Value
$keymatches[0].Groups.Item(2).Value



manage-bde -protectors -adbackup c: -id "{$key_id}"

Führe das Skript als Admin aus!

Links

Philipp Hense / Bitlocker Key in AD schreiben · GitLab


OpenSlides Übersicht

Allgemein

In der Weboberfläche findet man links das Menü in dem man alles einstellen kann.

Startseite

Auf der Startseite wird einem in der Regel die Wichtigsten Informationen zur Veranstaltung angezeigt.

Admin Einstellungen

Wenn man als Admin die Startseite anpassen möchte klickt man rechts oben einfach auf den Stift dies funktioniert auf jeder Seite so. Nun kann man die Überschrift der Startseite ändern und den Text der unter dem Titel angezeigt werden soll.

Autopilot

Wenn du im Autopilot bist wirst du im Normalfall durch die komplette Veranstaltung geleitet. Wenn eine Wahl oder ein Antrag ansteht bekommst du eine Information dass du nun wählen darfst.

Tagesordnung

In der Tagesordnung siehst du die einzelnen Punkte die auf der Tagesordnung stehen.

Admin Einstellungen

Als Admin hast du die Möglichkeit die einzelnen Punkte zu projizieren so dass diese im Autopiloten angezeigt werden. Ebenfalls kannst du als Admin die einzelnen Punkte erstellen hierzu einfach auf das + klicken.

Wahlen

In den Wahlen werden die verschiedenen Wahlen angezeigt. Du kannst dich je nach Berechtigung selber aufstellen lassen und zur Wahl kandidieren oder auch andere Teilnehmer aufstellen. Wenn ein Wahlvorgang gestartet wurde kannst du auch direkt unter Wahlen deine Stimme abgeben.

Admin Einstellungen

Als Admin kannst du Wahlen erstellen. Ebenfalls hast du die Möglichkeit wenn du direkt in einer Wahl bist einen neuen Wahlvorgang zu Starten.

Teilnehmende

Unter dem Punkt Teilnehmende findest du alle Teilnehmende die an der Veranstaltung teilnehmen.

Admin Einstellungen

Als Admin kannst du neue Benutzer anlegen. Dies funktioniert entweder über das + oder du importierst eine CSV Datei über die drei Punkte.

CSV Import

Die CSV muss im folgenden Stil aufgebaut sein.

Titel, Vorname, Nachname, Gliederungsebene, Teilnehmernummer, Gruppen, Kommentar, Ist aktiv, Ist anwesend, Ist ein Gremium, Initiales Passwort, E-Mail, Benutzername, Geschlecht, Stimmgewicht

Dateien

Unter Dateien kannst du hochgeladene Dateien Ansehen und diese herunterladen.

Admin Einstellungen

Falls du Admin bist kannst du hier Ordner oder einzelne Dateien erstellen bzw. hochladen.

Chronik

Hier findest die wie einen Log der geführt wird sobald irgendwas in der Veranstaltung getätigt wird.

Einstellungen (Admin)

Hier kannst verschiedenes zur Veranstaltung einstellen wie zum Beispiel

  • Allgemein
    • Veranstaltungsname
    • Kurzbeschreibung der Veranstaltung
    • Veranstaltungszeitraum
    • Veranstaltungsort
    • Livekonferenzen
    • Gast Zugriff erlauben
    • Design Einstellungen
  • Tagesordnung
    • Beginn der Veranstaltung
    • Nummerierung der Punkte
  • Anträge
    • Wie die Abstimmung erfolgen soll
  • Wahlen
    • Wahlmethode
    • Art der Stimmangabe
    • Stimmrecht
    • Export
  • Teilnehmende
    • Sortierung
    • Stimmgewicht aktivieren
    • Anwesenheit
    • PDF Export
    • E-Mail Einstellungen
Hallo {name},

bei der Jahreshauptversammlung nutzen wir das Tool OpenSlides für Abstimmungen und Wahlen.


hier ist Ihr persönlicher Abstimmungs-Zugang:

    {url}
    Benutzername: {username}
    Passwort: {password}

Die Zugangsdaten sind geheim und dürfen unter keinen Umständen weitergegeben werden!


Mit freundlichen Grüßen 


Diese E-Mail wurde automatisch erstellt.

Links

OpenSlides Server erstellen – IT-Hense
OpenSlides Handbuch


UniFi Network Controller unter Linux installieren

Falls du dir gerne die Kosten für den UniFi Cloud Key sparen möchtest kannst du dies auch ganz einfach selber installieren. In diesem Beitrag zeige ich dir wie du dies machen kannst.

Systemanforderungen

  • Ubuntu / Debian Server
  • Webbrowser deiner Wahl

Installation

Alle schritte werden als root User ausgeführt.

System auf Updates Prüfen

apt update 
apt upgrade 

ca-certificates und wget installieren

apt install ca-certificates wget

Download des Skriptes

wget https://get.glennr.nl/unifi/install/install_latest/unifi-latest.sh 

Skript ausführen

bash unifi-latest.sh