Linux : ~/ sichern mit Borgbackup

Ich habe hier einiges an sensible Daten in meinem Homeverzeichnis die ich nicht verlieren möchte. Deswegen habe ich mir ein borgbackup eingerichtet das mir alle 30 Minuten ein Backup auf meine zweite HDD schiebt. Da beide HDD bei mir mit LUKS verschlüsselt sind ist das Repo nicht gesondert gesichert.

Sollte man hier auf ein NFS oder ein anderes unverschlüsseltes Ziel sichern rate ich zu einer encryption !

Installieren von borgbackup
sudo apt install borgbackup
dann richten wir auf der zweiten HDD ein Repo ein. Das hab ich dann so gemacht
mkdir -p /media/chris/hdd2/backup
cd /media/chris/hdd2/backup
natürlich muss der mountpoint eurer Umgebung angepasst werden. Jetzt initialisieren wir das REPO für das Backup
borg init -e none /media/chris/hdd2/backup
Nochmal der Hinweis -e none kommt bei mir nur zum Einsatz da ALLE HDDs in meinem Notebook mit LUKS verschlüsselt sind
Ab jetzt kann man Backups in das Verzeichnis machen. Ich hab mir hier das ein Script zusammengebaut
!/bin/bash
_bbin=$(which borg)
_tbin=$(which tee)
# -----------------------------------------------------------------
# VARs
# -----------------------------------------------------------------
_own_path=$(dirname $(readlink -f ${0}))
_mnt_path="" # mount point 2 hdd
_src_path="" # was soll gesichert werden ? z.B. /home/test sichert das komplette Homeverzeichniss
_exclude="" # welche Verzeichnisse sollten nicht gesichert werden ? z.B. /home/test/Downloads
_tar_path="" # Wohin wird gesichert
_repo_name="HOME-$(date '+%Y%m%d-%H%M%S')" # Name der Sicherung
_borg_para="-v --stats -C lz4" # Parameter für das Borgbackup
_borg_log="${_own_path}/logs/borg.log" # wo liegt das log
# -----------------------------------------------------------------
# parameter for borg prune
# https://borgbackup.readthedocs.io/en/stable/usage/prune.html
KH=2    # keep hourly
KD=2    # keep daily
KW=4    # keep weekly
KM=3    # keep monthly
# create prune parameter
_borg_prune=""
if [ ${KH} != 0 ]; then
    _borg_prune="${_borg_prune} --keep-hourly=${KH}"
fi

if [ ${KD} != 0 ]; then
    _borg_prune="${_borg_prune} --keep-daily=${KD}"
fi

if [ ${KW} != 0 ]; then
    _borg_prune="${_borg_prune} --keep-weekly=${KW}"
fi

if [ ${KM} != 0 ]; then
    _borg_prune="${_borg_prune} --keep-monthly=${KM}"
fi
# -----------------------------------------------------------------
# check folders
if [ ! -d "${_own_path}/logs" ]; then
    mkdir -p "${_own_path}/logs"
fi
# -----------------------------------------------------------------
# write all to logfile
exec > >(${_tbin} -i ${_borg_log})
exec 2>&1
# -----------------------------------------------------------------
_chk_mnt=$(mount | grep -iq "${_mnt_path}")
if [ $? -eq 0 ]; then
    echo -e "\n#----------------------------------------------------------------------------------------------#"
    echo "############### borg create ####################################################################"
    echo -e "#----------------------------------------------------------------------------------------------#\n"
    ${_bbin} create ${_borg_para} ${_tar_path}::${_repo_name} ${_src_path}
    if [ $? -eq 0 ]; then
        echo -e "\n#----------------------------------------------------------------------------------------------#"
        echo "############### borg prune #####################################################################"
        echo -e "#----------------------------------------------------------------------------------------------#\n"
        ${_bbin} prune --list ${_tar_path} ${_borg_prune}
        echo -e "\n#----------------------------------------------------------------------------------------------#"
        echo "############### borg list ######################################################################"
        echo -e "#----------------------------------------------------------------------------------------------#\n"
        ${_bbin} list ${_tar_path}
        echo -e "\n#----------------------------------------------------------------------------------------------#"
        echo "############### borg info ######################################################################"
        echo -e "#----------------------------------------------------------------------------------------------#\n"
        ${_bbin} info ${_tar_path}
    fi
    exit 0
else
    echo "$(date '%Y%m%d %H:%M') - ${_mnt_path} is not mounted exited" >> ${_borg_log}
    exit 1
fi
diese Script legt man sich jetzt irgendwo auf die Platte und ruft es in crontab auf z.B. alle 30 Minuten
*/30 * * * * /scripts/create_borg_backup.sh

Exchange 2016 / Exchange Online : Ressourcen Postfach Betreff

Problem : Ressourcen Postfach zeigt Organisator anstatt des Betreffs im Kalender an
Lösung :
Set-CalendarProcessing -Identity RAUMPOSTFACH -DeleteSubject $False -AddOrganizerToSubject $False
überprüfen kann man das ganze mit
Get-CalendarProcessing -Identity 'RAUMPOSTFACH' | fl
Quelle : https://docs.microsoft.com/de-de/exchange/troubleshoot/client-connectivity/calendar-shows-organizer-name

NPS : Event 6273 Ursachencode 16

Problem : Auf einem NPS wird dieser Fehler im Eventlog angezeigt.
Authentifizierungsdetails:
    Name der Verbindungsanforderungsrichtlinie:    Company Wifi - Domain Users
    Netzwerkrichtlinienname:        Company Wifi - Domain Users
    Authentifizierungsanbieter:        Windows
    Authentifizierungsserver:        FQDN-DES-SERVERS
    Authentifizierungstyp:        PEAP
    EAP-Typ:            -
    Kontositzungs-ID:        46xxxxxxxxxxxx30
    Protokollierungsergebnisse:            Die Kontoinformationen wurden in die lokale Protokolldatei geschrieben.
    Ursachencode:            16
    Ursache:                Authentifizierungsfehler aufgrund der Nichtübereinstimmung von Benutzeranmeldeinformationen. 
Der angegebene Benutzername ist keinem vorhandenen Benutzerkonto zugeordnet, oder das Kennwort war falsch.

Lösung : Entweder der NPS oder die Meraki Endgeräte kommen nicht mit dem Wildcard Zertifikat klar. Ich hab die Einstellungen im NPS auf ein AD CA generiertes, direkt auf den FQDN des Servers, ausgestelltes Zertifikat geändert und schon lief alles.

Exchange Online / Office 365 : DistributionGroup "Sie verfügen nicht über ausreichende Berechtigungen"

Problem : Beim Versuch eine DistributionGroup zu bearbeiten erscheint die Meldung das man nicht über ausreichend Rechte verfügt.
Sie verfügen nicht über ausreichende Berechtigungen. Dieser Vorgang kann nur von einem Manager der Gruppe ausgeführt werden.
    + CategoryInfo          : NotSpecified: (:) [Remove-DistributionGroup], OperationRequiresGroupManagerException
Lösung : Das Problem ist schnell mit Powershell gefixt.
Set-DistributionGroup -Identity VERTEILEREMAIL -ManagedBy "NEUERUSER" -BypassSecurityGroupManagerCheck
wenn der vorhandene Owner nicht überschrieben werden soll dann kann man diesen Befehl verwenden zu hinzufügen neuer Owner
Set-DistributionGroup -Identity 'VERTEILEREMAIL' -ManagedBy @{Add='USER1','USER2'} -BypassSecurityGroupManagerCheck -WhatIf
Quelle : https://docs.microsoft.com/de-de/exchange/troubleshoot/groups/no-sufficient-permissions-moving-dg

Exchange Online / Office 365 : Erstellen eines Mailcontact im Exchange Hybrid

Erstmal eins Vorweg , und ja ich muss mir das auch merken ;-)
Im Hybrid Exchange Mode müssen alle Befehle gegen den lokalen Exchange ausgeführt werden !

Auch hier ist das WhatIf auf true gesetzt d.h. hier wird nur getestet aber nicht ausgeführt. Ist man sich sicher kann man das true auf false ändern.
<# Mailcontact #>
$NewMailContactParameter = @{
    Name                 = 'demo-contact' 
    Alias                = 'demo-contact' 
    DisplayName          = 'demo-contact' 
    OrganizationalUnit   = 'OU=dev_mailobjects,OU=dev,DC=example,DC=box'
    ExternalEmailAddress = 'demo-contact@service.example.box' 
    WhatIf               = $true
}
New-MailContact @NewMailContactParameter
testen ob alles funktioniert hat kann man das mit dem Befehl
Get-Recipient demo-contact@service.example.box

Name      RecipientType
----      -------------
demo-contact MailContact  

Powershell : Download großer Dateien

Größere ISO Dateien oder sonstige Files downloaden mit der Powershell. Als Beispiel zeige ich hier mal die Debain DVD.
# Download mit Bits
$BitsDownloadParamter = @{
        Source        = 'https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-10.4.0-amd64-DVD-2.iso' 
        Description   = 'Download-Debian10-DVD-2'
        DisplayName   = 'Download-Debian10-DVD-2' 
        Destination   = 'C:\Users\chris\Downloads\Test_Download\' 
        TransferType  = 'Download'
        Priority      = 'Low'
}
Start-BitsTransfer @BitsDownloadParamter
Den Status des Downloads kann man sich dann mit diesem Befehl anzeigen lassen.
# Anzeigen des Status

 Get-BitsTransfer | select DisplayName,FileList,BytesTotal,BytesTransferred | Where-Object -FilterScript { $_.DisplayName -eq 'Download-Debian10-DVD-2' }


Quelle :
https://docs.microsoft.com/en-us/powershell/module/bitstransfer/start-bitstransfer?view=win10-ps
https://docs.microsoft.com/en-us/powershell/module/bitstransfer/get-bitstransfer?view=win10-ps
Thx to Josh for the Hint ;-)
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)