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 bitwarden \
  -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


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


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


OpenSlides Server erstellen

Da bei mir in einem Verein Neuwahlen anstanden und es durch die aktuelle Situation (Corona) leider nicht möglich war eine Offline Wahl zu veranstalten, mussten wir uns Gedanken machen wie wir das ganze umsetzen könnten. Nach einigen Tagen Suchen sind wir auf das Programm OpenSlides gestoßen. Im folgenden zeige ich dir wie du deinen eigen OpenSlides Server aufsetzen kannst.

Funktionen

  • Projektor
  • Tagesordnung
  • Redelisten
  • Antragsverwaltung
  • Wahlen verwalten und Ergebnisse protokollieren
  • eVoting (Abstimmungen und Wahlen live durchführen)
  • Teilnehmerverwaltung
  • Volltextsuche
  • responsive Design
  • Datenimport/-export
  • Mehrsprachigkeit

Systemanforderungen

  • Ubuntu / Debian
  • 512 MB Ram
  • Python >= 3.6
  • Browser deiner Wahl

Installation

Installiere zunächst einmal Python mit diesem Befehl:

sudo apt-get install build-essential python3-dev python3-venv

Als zweiten Schritt solltest du ein Virtual Enviromnent erstellen. Dies machst du mit den folgenden Befehlen:

mkdir OpenSlides
cd OpenSlides
python3 -m venv .virtualenv
source .virtualenv/bin/activate
pip install --upgrade setuptools pip

Installiere nun OpenSlides.

pip install openslides

Mit folgendem Befehl Startest du OpenSlides:

openslides

Anmelden

Du kannst dich über http://IP-Adresse:8000 anmelden: Der Erste Benutzer ist admin mit dem Passwort admin.

Konfigurationsdatei

Da ich das ganze als root User ausgeführt habe liegt die Konfigurationsdatei bei mir unter

nano /root/.config/openslides/settings.py

Elektronisches Wählen

Falls du die Wahlen online Durchführen willst musst du in der Konfig folgendes einfügen.

ENABLE_ELECTRONIC_VOTING = True

Email Einstellungen

EMAIL_HOST = ''
EMAIL_PORT = 587
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_SSL = False
EMAIL_USE_TLS = True
EMAIL_TIMEOUT = None
DEFAULT_FROM_EMAIL = ''

Diesen Teil gibt es schon in der Konfig ändere hier nur deine Werte ab.

Im Anschluss kannst du OpenSlides wieder starten und die Einstellungen werden übernommen.

Autostart von OpenSlides

Falls du OpenSlides automatisch nach einem Reboot starten lassen möchtest benötigst du einfach ein Shell Skript.

nano /root/openslides-starten.sh
#!/bin/bash

cd /root/OpenSlides
source .virtualenv/bin/activate
openslides

Nun musst du das Skript ausführbar machen.

chmod +x /root/openslides-starten.sh

Im Letzten Schritt fügst du im Crontab noch das Skript ein.

crontab -e
@reboot /root/openslides-starten.sh

Links

OpenSlides: das digitale Antrags- und Versammlungssystem


PI-Hole Installation

In diesem Beitrag erkläre ich dir wie du dir deinen eigenen Add-Blocker mittels PI-Hole installierst.
Zur Info es ist egal ob du PI-Hole auf einem RaspberryPI oder auf einem Linux Server Installierst.

Voraussetzungen

  • mindestens 512 MB RAM
  • ca. 52 MB freier Festplattenspeicher

Installation

Als erstes sollte sichergestellt sein, dass sich die Debian Installation auf dem aktuellsten Stand befindet.
Mache dich zum „root“ User oder gebe vor dem Befehl „sudo“ ein.

apt-get update 
apt-get upgrade

Sind alle Updates heruntergeladen und installiert kann mit der Installation von Pi-Hole begonnen werden. Führe dazu einfach folgenden Befehl aus:

curl -sSL https://install.pi-hole.net | bash

Nachdem die Installation gestartet wurde erscheint der Installations-Assistent. Hierbei wird die Konfiguration in mehrere Schritte aufgeteilt. Die einzelnen Schritte gehe ich mit Dir jetzt durch.
Als erstes musst Du bestätigen, dass Pi-Hole installiert wird. Dazu einfach mit Return bestätigen.

Danach kannst Du auswählen, an welchen DNS- Anbieter Pi-Hole die Anfragen weiterleiten soll. Einen Vergleich der hier zur Auswahl angebotenen Anbieter kannst Du im Artikel Öffentliche DNS Server im Vergleich nachlesen. Der DNS- Anbieter kann auch später jederzeit über die Weboberfläche geändert werden.

Im nächsten Schritt werden Drittanbieter- Listen angezeigt, welche Pi-Hole zum Blockieren von Werbung verwendet. Hier würde ich keine Änderungen vornehmen und alle Listen ausgewählt lassen. Möchtest Du dennoch auf einen oder mehrere Anbieter verzichten, so kannst Du mit den Pfeiltasten (Auf / Ab) navigieren und mit der Leertaste die den entsprechenden Anbieter aktivieren oder deaktivieren. Da ich hier keine Änderungen vornehme bestätige ich die Einstellungen mit OK.

Einen Schritt weiter kann noch eingestellt werden über welche Protokolle Pi-Hole Werbung blockieren soll. Standardmäßig sind hier IPv4 und IPv6 aktiviert. Diese Voreinstellung können wir belassen und mit OK weiter zum nächsten Schritt gehen.

Nun kann die IP- Adresse eingestellt werden. Dazu wird man vom Installations- Assistenten gefragt ob man die derzeitige IP-Adresse als statische Adresse eintragen und verwenden möchte, oder ob diese gegen eine andere geändert werden soll. Wenn Du die angezeigte Netzwerkkonfiguration übernehmen möchtest musst Du diese nur mit YES bestätigen andernfalls wähle NO aus. Dann hast Du die Möglichkeit die IP-Adresse zu ändern.

Hast Du die IP- Einstellungen übernommen oder die von dir gewünschte IP- Adresse festgelegt musst Du in den nächsten beiden Schritten nur noch bestätigen, dass das Webinterface installiert werden soll. Standardmäßig ist die Installation bereits ausgewählt. Du musst nur noch mit OK fortfahren

Jetzt noch die Installation des Webservers mit OK bestätigen.

Im vorletzten Schritt kannst Du noch auswählen ob die DNS- Anfragen welche an Pi-Hole gesendet werden protokolliert werden sollen. Standardmäßig ist diese Option aktiviert.

Zu guter Letzt kannst Du noch die Privatsphäre- Einstellungen für das FTL- Modul vornehmen. Dieses wird dafür benötigt damit Du in der Pi-Hole Admin Weboberfläche die Statistiken und Anfragen sehen und auswerten kannst.

Geschafft! Nach all diesen Schritten sind wir am Ende der Installation von Pi-Hole angekommen. Am Ende der Installation erscheint eine Übersicht mit der IP- Adresse unter welcher der Pi-Hole läuft. Außerdem wird dir Hier auch noch das Passwort, welches zum Anmelden an der Admin Weboberfläche benötigt wird, angezeigt.


GPO- Edge Chromium Startseite und Suchmaschine festlegen

In diesem Beitrag wird beschrieben wie man mittels Gruppenrichtlinien eine Startseite / Suchmaschine im Microsoft Edge Chromium festlegt. Ebenfalls kann man auswählen was beim Start passieren soll.

Lade dir zunächst die GPO Vorlage herunter.
Entpacke das ZIP-File und lege *.admx Datei unter „C:\Windows\PolicyDefinitions“ ab. Das Sprachpaket *.adml muss unter dem selben Pfad im Ordner de-DE abgelegt werden.

Öffne nun die Gruppenrichtlinien und erstelle eine Neue GPO.

Nun solltest du unter „Benutzerkonfiguration – Administrative Vorlagen – Microsoft Edge“ finden.

Hier habe ich folgende Punkte aktiviert bzw. eingestellt.

„Eindruck beim ersten Ausführen“ und Begrüßungsbildschirm ausblendenAktiviert
Favoritenleiste aktivierenAktiviert

Im Ordner „Standard Suchanbieter“.

Standardsuchanbieter aktivierenAktiviert
StandardsuchanbieternameAktiviert
StandardsuchanbieternameGoogle
Standard-Suchanbieter-URL für Vorschläge{google:baseURL}complete/search?output=chrome&q={searchTerms}
Such-URL für den Standardsuchanbieter{google:baseURL}search?q={searchTerms}&{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:searchClient}{google:sourceId}ie={inputEncoding}

Unter „Start, Startseite und neue Tabseite“

Aktion, die beim Start ausgeführt werden sollListe mit URLs öffnen
Homepage-URL konfigurierenwww.goolge.de
Schaltfläche „Startseite“ auf Symbolleiste anzeigenAktiviert
URL für die neue Tabseite konfigurierenhttps://google.de
Websites, die beim Start des Browsers geöffnet werden sollenhttps://google.de

Beim Nächsten Anmelden wird die GPO übernommen.
Nun sollte bei Öffnen des MS Edge google.de geöffnet werden und der Suchanbieter Google angegeben sein.