Ich habe festgestellt das wenn man einen LXC mit Debian 11 auf einem Proxmox laufen lässt, die Performance auf ssh ziemlich schlecht ist. Auch sudo dauert ziemlich lange (wenn man es verwendet)
Das liegt am Service systemd-logind wenn man diesen deaktiviert hat man wieder die gewohnte Performance.
Um zu verifizieren ob es an diesem Service liegt , grept einfach mal nach 'org.freedesktop.login1' in der Datei /var/log/auth.log
grep 'org.freedesktop.login1' /var/log/auth.log
wenn ihr dort Einträge findet, die wie folgt aussehen, liegt es vermutlich an diesem Dienst.
Failed to activate service 'org.freedesktop.login1': timed out (service_start_timeout=25000ms)
Problem wird dann mit diesen Befehl behoben (muss als root ausgeführt werden)
Nach log4j kommt spring4shell , langsam nervt das ;(
Ein Kollege hat hier einen vulnerability scanner geschrieben um verdächtige Klassen auf einem System zu finden. z.G. ist das Tool in GO geschrieben und kann für jede Plattform kompiliert werden. Nachdem ich das jetzt bereits ausgiebig im Einsatz habe, kann ich sagen, das macht das Leben leichter. https://github.com/hillu/local-spring-vuln-scanner
Ich setzte zuhause Proxmox ein und lasse alles auf LXC laufen, da es einiges an Overhead spart.
Normalerweise läuft ein LXC als "Unprivileged container" in machen Fällen kann es jedoch vorkommen das ein LXC als "Privileged container" laufen muss. Ein konvertieren des LXC ist nur über einen kleinen Umweg möglich.
Das einfachste Vorgehen :
1.) Stoppen des LXCs (in meinen Fall 102)
2.) einen Snapshot des LXC erstellen
2.) Diesen Snapshot dann als neue Maschine (hier 103) restoren und den Parameter für unprivileged auf 0 setzen
Dieses Vorgehen sollte aber nur verwendet werden wenn es GAR NICHT anders geht
Privileged containers: container uid 0 is mapped to the host's uid 0.
Unprivileged containers: container uid 0 is mapped to an unprivileged user on the host.
das bedeutet bei einem Privileged containers ist der user root im container auch der root user auf dem proxmox host
Ich habe in meinem Laptop mehrere Festplatten und möchte nun auch die zweite Festplatte über LUKS verschlüsseln. Die erste Festplatte habe ich bereits bei der Installation verschlüsselt. Die Benutzung soll aber recht einfach sein. Es gibt bestimmt mehrere Wege das zu erreichen, ich zeige hier meinen
Als erstes legt man mal mit fdisk eine neue Partition an. Hierzu möchte ich mich an dieser Stelle nicht weiter auslassen. Diese verschlüsselt man dann mit cryptsetup.
cryptsetup -y -s 512 luksFormat /dev/sda1
/dev/sda1 ist hier die neu angelegt Partition (ALLE DATEN WERDEN GELÖSCHT !)
Als erstes müssen wir die verschlüsselte Partition mit cryptsetup mounten
cryptsetup luksOpen /dev/sda1 lvmsda1
dann muss ein volume initialisiert werden , eine volume group erstellt werden und ein logical volume angelegt werden. Das erledigen wir so
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
ich möchte in unseren automatisch Deployments immer das Datum des Vorgang in der virtuellen Kiste haben. Ich hab das erreicht indem ich Funktionen timestamp und formatdate von terraform verwende.
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”