Skip to content

Linux

Alles rund um Linux

This category can be followed from the open social web via the handle linux@linux-nerds.org

633 Themen 1.3k Beiträge

Unterkategorien


  • Alles rund um Podman

    4 Themen
    5 Beiträge
    Nachdem ich ja hier einen Forgejo-Server aufgesetzt habe, den ich mittlerweile auch produktiv nutze, bin ich natürlich sehr schnell über Actions gestolpert. Mit Actions kann man verschiedene Prozesse automatisieren. z.B. das Testen seiner Repos, den Build Prozess usw. Doch wie macht man das? Dafür hat Forgejo ein Tool namens Forgejo-Runner. Die Anleitung für die Installation findet man -> https://forgejo.org/docs/latest/admin/runner-installation/ [image: 1742460735863-97dfddb2-30f4-44a8-94c6-806ab3a47fd1-image.png] Aus der Anleitung The Forgejo Runner is a daemon that fetches workflows to run from a Forgejo instance, executes them, sends back with the logs and ultimately reports its success or failure. It needs to be installed separately from the main Forgejo instance. For security reasons it is not recommended to install the runner on the same machine as the main instance. Ok, kann ich nicht auf dem Forgejo Server mitlaufen lassen Das Schöne an dem Runner ist, er kann auch lokal laufen, sprich auf meinem Proxmox Das bin ich dann mal angegangen. Ich wollte jetzt hier nicht wieder eine Anleitung schreiben, dazu gibt es im Netz genügend Informationen. Die Original Anleitung erklärt den Installationsprozess auch ausreichend gut, bis auf eine Kleinigkeit. Die Podman Einbindung habe ich nicht besonders gut hinbekommen, also hatte ich eine anstrengende Sitzung. Es hat lange gedauert, bis ich es hinbekommen habe. Systemd Im wesentlichen habe ich jetzt einen Debian 13 Trixie Server aufgesetzt, dieser hat Podman verpasst bekommen. Es gibt einen User runner und einen User docker. Zwei SystemD-Dienste habe ich angelegt. podman-docker-socket.service [Unit] Description=Podman Docker API Socket Documentation=man:podman-system-service(1) Wants=network-online.target After=network-online.target [Service] Type=simple ExecStart=/usr/bin/podman system service --time=0 unix:///var/run/docker.sock ExecStartPost=/bin/sh -c 'sleep 1 && chown root:docker /var/run/docker.sock && chmod 660 /var/run/docker.sock' Restart=always RestartSec=10 [Install] WantedBy=multi-user.target forgejo-runner.service [Unit] Description=Forgejo Runner Documentation=https://forgejo.org/docs/latest/admin/actions/ After=docker.service [Service] ExecStart=forgejo-runner daemon ExecReload=/bin/kill -s HUP $MAINPID # This user and working directory must already exist User=runner WorkingDirectory=/home/runner Restart=on-failure TimeoutSec=0 RestartSec=10 [Install] WantedBy=multi-user.target Der podman-docker-socket.service macht was? This command makes Podman listen on the standard Docker socket location (/var/run/docker.sock), which allows Docker clients and tools to communicate with Podman instead of Docker. Essentially, it lets you use Docker-compatible tools with Podman as the backend container engine. This is useful in environments where you want to use Podman instead of Docker (for security or other reasons) but still need compatibility with tools that expect to talk to Docker. @geklaut von claude.ai Ok, damit kann der Forgejo-Runner ganz normal seine Docker Befehle absetzen und Podman übernimmt dann. Auf meinem Server sieht das dann so aus pstree systemd─┬─agetty ├─cron ├─dbus-daemon ├─dhclient ├─forgejo-runner───7*[{forgejo-runner}] ├─podman───7*[{podman}] ├─qemu-ga───{qemu-ga} ├─sshd───sshd-session───sshd-session───bash───pstree ├─systemd───(sd-pam) ├─systemd-journal ├─systemd-logind ├─systemd-timesyn───{systemd-timesyn} └─systemd-udevd Wie man die Actions beim Runner registriert, ist in der Anleitung gut dokumentiert. Den Token dafür bekommt man auf dem Forgejo-Server. [image: 1742461602230-token.png] Wenn dann alles so weit funktioniert, kann man in seine Repos folgendes einbauen. Der Workflow dient zum Testen, ob alles gut funktioniert. .forgejo/workflows/test.yaml name: Test Runner on: push: branches: [ main ] workflow_dispatch: jobs: test: runs-on: docker container: image: debian:12 steps: # Package duf installieren - name: Install package duf run: | apt-get update && apt-get install -y duf - name: Test Connection run: | echo "Hello from Runner!" whoami hostname date duf echo "Environment is working!" Wenn man das dann pusht, startet der Workflow / Actions. [image: 1742461885129-4ac20208-c4f6-467d-b2b6-885956e1639f-image.png] Am Ende sollte alles grün sein Man kann sich dann die Ausgabe ansehen, ob alles geklappt hat, wie man es erwartet. [image: 1742461971958-199bbdbd-b833-46af-b4d6-edd796ab28ff-image.png] So weit bin ich zufrieden und kann mich damit jetzt weiter beschäftigen. Anmerkung Wie immer, wer Fehler oder Blödsinn findet, mag das bitte hier unten drunter schreiben. Ich ändere das dann gerne.
  • Vaultwarden ist eine Rust-Implementierung der Bitwarden Server API.

    Vaultwarden is a Rust implementation of the Bitwarden Server API.

    19 Themen
    19 Beiträge
    Dani Garcia released Version 1.33.2 https://github.com/dani-garcia/vaultwarden/releases/tag/1.33.2 @Nico Danke
  • Automation for everyone

    6 Themen
    10 Beiträge
    Aktuell habe ich durch eine Erkrankung etwas mehr Zeit für die Konsole, sodass ich angefangen habe, die Setups aller meiner Server zu vereinheitlichen. Anfangen wollte ich dazu mit meinem lokalen Proxmox. Dabei kam mir wieder in den Sinn, das ich auch noch ein Debian Bookworm 12 Template brauchte. Also, das aktuelle Debian Image heruntergeladen. Mit diesem dann einen Debian Bookworm 12 Server aufgesetzt. Jetzt brauchte ich zu diesem Zeitpunkt einen Zugang mit SSH-Key (für mein Semaphore). Also habe ich schon mal zwei SSH-Keys eingefügt. Einmal meinen Haupt-PC und einmal den Semaphore Server. Danach den Server in ein Template umgewandelt. [image: 1694089227738-c552d99f-4aa1-480a-a4a1-c9ac711f24fb-grafik.png] 105 ist das Template, 106 ein damit erstellter Test-Server. Ok, das läuft wie erwartet, jetzt möchte ich den Server durch konfigurieren, so wie ich das gerne haben möchte. Da es hier um Ansible geht, brauche ich dazu ein Playbook. --- ############################################### # Playbook for my Proxmox VMs ############################################### - name: My task hosts: proxmox_test tasks: ##################### # Update && Upgrade installed packages and install a set of base software ##################### - name: Update apt package cache. ansible.builtin.apt: update_cache: yes cache_valid_time: 600 - name: Upgrade installed apt packages. ansible.builtin.apt: upgrade: 'yes' - name: Ensure that a base set of software packages are installed. ansible.builtin.apt: pkg: - crowdsec - crowdsec-firewall-bouncer - duf - htop - needrestart - psmisc - python3-openssl - ufw state: latest ##################### # Setup UFW ##################### - name: Enable UFW community.general.ufw: state: enabled - name: Set policy IN community.general.ufw: direction: incoming policy: deny - name: Set policy OUT community.general.ufw: direction: outgoing policy: allow - name: Set logging community.general.ufw: logging: 'on' - name: Allow OpenSSH rule community.general.ufw: rule: allow name: OpenSSH - name: Allow HTTP rule community.general.ufw: rule: allow port: 80 proto: tcp - name: Allow HTTPS rule community.general.ufw: rule: allow port: 443 proto: tcp ##################### # Setup CrowdSEC ##################### - name: Add one line to crowdsec config.yaml ansible.builtin.lineinfile: path: /etc/crowdsec/config.yaml #search_string: '<FilesMatch ".php[45]?$">' insertafter: '^db_config:' line: ' use_wal: true' ##################### # Generate Self-Signed SSL Certificate # for this we need python3-openssl on the client ##################### - name: Create a new directory www at given path ansible.builtin.file: path: /etc/ssl/self-signed_ssl/ state: directory mode: '0755' - name: Create private key (RSA, 4096 bits) community.crypto.openssl_privatekey: path: /etc/ssl/self-signed_ssl/privkey.pem - name: Create simple self-signed certificate community.crypto.x509_certificate: path: /etc/ssl/self-signed_ssl/fullchain.pem privatekey_path: /etc/ssl/self-signed_ssl/privkey.pem provider: selfsigned - name: Check if the private key exists stat: path: /etc/ssl/self-signed_ssl/privkey.pem register: privkey_stat - name: Renew self-signed certificate community.crypto.x509_certificate: path: /etc/ssl/self-signed_ssl/fullchain.pem privatekey_path: /etc/ssl/self-signed_ssl/privkey.pem provider: selfsigned when: privkey_stat.stat.exists and privkey_stat.stat.size > 0 ##################### # Check for new kernel and reboot ##################### - name: Check if a new kernel is available ansible.builtin.command: needrestart -k -p > /dev/null; echo $? register: result ignore_errors: yes - name: Restart the server if new kernel is available ansible.builtin.command: reboot when: result.rc == 2 async: 1 poll: 0 - name: Wait for the reboot and reconnect wait_for: port: 22 host: '{{ (ansible_ssh_host|default(ansible_host))|default(inventory_hostname) }}' search_regex: OpenSSH delay: 10 timeout: 60 connection: local - name: Check the Uptime of the servers shell: "uptime" register: Uptime - debug: var=Uptime.stdout In dem Inventory muss der Server drin sein, den man bearbeiten möchte. Also, so was [proxmox_test] 192.168.3.19 # BookwormTEST Playbook Wir aktualisieren alle Pakete Wir installieren, von mir festgelegte Pakete Konfiguration UFW Konfiguration CrowdSec Konfiguration selbst signiertes Zertifikat Kontrolle ob neuer Kernel vorhanden ist, wenn ja Reboot Uptime - Kontrolle ob Server erfolgreich gestartet ist Danach ist der Server so, wie ich ihn gerne hätte. Aktuell ufw - Port 22, 80 und 443 auf (SSH, HTTP & HTTPS) CrowdSec als fail2ban Ersatz Selbst signierte Zertifikate benutze ich nur für lokale Server Die erfolgreiche Ausgabe in Semaphore, sieht so aus. 12:38:16 PM Task 384 added to queue 12:38:21 PM Preparing: 384 12:38:21 PM Prepare TaskRunner with template: Proxmox configure Proxmox Template 12:38:22 PM Von https://gitlab.com/Bullet64/playbook 12:38:22 PM e7c8531..c547cfc master -> origin/master 12:38:22 PM Updating Repository https://gitlab.com/Bullet64/playbook.git 12:38:23 PM Von https://gitlab.com/Bullet64/playbook 12:38:23 PM * branch master -> FETCH_HEAD 12:38:23 PM Aktualisiere e7c8531..c547cfc 12:38:23 PM Fast-forward 12:38:23 PM proxmox_template_configuration.yml | 5 +++++ 12:38:23 PM 1 file changed, 5 insertions(+) 12:38:23 PM Get current commit hash 12:38:23 PM Get current commit message 12:38:23 PM installing static inventory 12:38:23 PM No collections/requirements.yml file found. Skip galaxy install process. 12:38:23 PM No roles/requirements.yml file found. Skip galaxy install process. 12:38:26 PM Started: 384 12:38:26 PM Run TaskRunner with template: Proxmox configure Proxmox Template 12:38:26 PM 12:38:26 PM PLAY [My task] ***************************************************************** 12:38:26 PM 12:38:26 PM TASK [Gathering Facts] ********************************************************* 12:38:28 PM ok: [192.168.3.19] 12:38:28 PM 12:38:28 PM TASK [Update apt package cache.] *********************************************** 12:38:29 PM ok: [192.168.3.19] 12:38:29 PM 12:38:29 PM TASK [Upgrade installed apt packages.] ***************************************** 12:38:30 PM ok: [192.168.3.19] 12:38:30 PM 12:38:30 PM TASK [Ensure that a base set of software packages are installed.] ************** 12:38:31 PM ok: [192.168.3.19] 12:38:31 PM 12:38:31 PM TASK [Enable UFW] ************************************************************** 12:38:32 PM ok: [192.168.3.19] 12:38:32 PM 12:38:32 PM TASK [Set policy IN] *********************************************************** 12:38:34 PM ok: [192.168.3.19] 12:38:34 PM 12:38:34 PM TASK [Set policy OUT] ********************************************************** 12:38:36 PM ok: [192.168.3.19] 12:38:36 PM 12:38:36 PM TASK [Set logging] ************************************************************* 12:38:37 PM ok: [192.168.3.19] 12:38:37 PM 12:38:37 PM TASK [Allow OpenSSH rule] ****************************************************** 12:38:37 PM ok: [192.168.3.19] 12:38:37 PM 12:38:37 PM TASK [Allow HTTP rule] ********************************************************* 12:38:38 PM ok: [192.168.3.19] 12:38:38 PM 12:38:38 PM TASK [Allow HTTPS rule] ******************************************************** 12:38:38 PM ok: [192.168.3.19] 12:38:38 PM 12:38:38 PM TASK [Add one line to crowdsec config.yaml] ************************************ 12:38:39 PM ok: [192.168.3.19] 12:38:39 PM 12:38:39 PM TASK [Create a new directory www at given path] ******************************** 12:38:39 PM ok: [192.168.3.19] 12:38:39 PM 12:38:39 PM TASK [Create private key (RSA, 4096 bits)] ************************************* 12:38:41 PM ok: [192.168.3.19] 12:38:41 PM 12:38:41 PM TASK [Create simple self-signed certificate] *********************************** 12:38:43 PM ok: [192.168.3.19] 12:38:43 PM 12:38:43 PM TASK [Check if the private key exists] ***************************************** 12:38:43 PM ok: [192.168.3.19] 12:38:43 PM 12:38:43 PM TASK [Renew self-signed certificate] ******************************************* 12:38:44 PM ok: [192.168.3.19] 12:38:44 PM 12:38:44 PM TASK [Check if a new kernel is available] ************************************** 12:38:44 PM changed: [192.168.3.19] 12:38:44 PM 12:38:44 PM TASK [Restart the server if new kernel is available] *************************** 12:38:44 PM skipping: [192.168.3.19] 12:38:44 PM 12:38:44 PM TASK [Wait for the reboot and reconnect] *************************************** 12:38:55 PM ok: [192.168.3.19] 12:38:55 PM 12:38:55 PM TASK [Check the Uptime of the servers] ***************************************** 12:38:55 PM changed: [192.168.3.19] 12:38:55 PM 12:38:55 PM TASK [debug] ******************************************************************* 12:38:55 PM ok: [192.168.3.19] => { 12:38:55 PM "Uptime.stdout": " 12:38:55 up 19 min, 2 users, load average: 0,84, 0,29, 0,10" 12:38:55 PM } 12:38:55 PM 12:38:55 PM PLAY RECAP ********************************************************************* 12:38:55 PM 192.168.3.19 : ok=21 changed=2 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0 12:38:55 PM
  • IT-Monitoring mit Checkmk

    7 Themen
    16 Beiträge
    Seit heute ist Version 2.0.0p13 draußen. Diese Version soll auf Debian Bullseye laufen. Wie ich selber getestet hatte, lief die alte Version nicht auf Debian Buster. Wenn ich mal Langeweile habe, werde ich das mal testen. https://forum.checkmk.com/t/checkmk-2-debian-11-bullseye-download/26080/20
  • Alles rund um Let's Encrypt

    4 Themen
    11 Beiträge
    Der Monat ist um, es war Zertifikatsmonat. Und nichts lief mehr..... Was war passiert? Sonntags mache ich von meinem Haupt-PC ein Backup (per Hand) mittels Restic auf meinen Rest-Server. Doch ich bekam eine Fehlermeldung, blabla Zertifikat usw. Ok, ab auf den Server und mit der Fehlersuche gestartet. Das Zertifikat war erneuert worden, aber der Restart Command versuchte immer eine server.service zu starten, die es gar nicht gab!? Da musste ich doch beim @Nico mal kurz nachfragen. Und das kam dann dabei raus. Fehlerursache Der ReloadCmd versuchte einen server.service zu restarten, den es gar nicht gibt. Suche Im acme Pfad liegen die Ordner für die Domains. In diesem Ordner liegt eine Datei DOMAIN.conf In dieser Datei werden bei der Installation des Zertfikiates eine Reihe von Dingen eingetragen. Le_Domain='DOMAIN' Le_Alt='no' Le_Webroot='no' Le_PreHook='' Le_PostHook='' Le_RenewHook='' Le_API='https://acme-v02.api.letsencrypt.org/directory' Le_Keylength='2048' Le_OrderFinalize='https://acme-v02.api.letsencrypt.org/acme/finalize/<ID>' Le_LinkOrder='https://acme-v02.api.letsencrypt.org/acme/order/<ID>' Le_LinkCert='https://acme-v02.api.letsencrypt.org/acme/cert/>ID>' Le_CertCreateTime='1680440374' Le_CertCreateTimeStr='2023-04-02T12:59:34Z' Le_NextRenewTimeStr='2023-05-31T12:59:34Z' Le_NextRenewTime='1685537974' Le_RealCertPath='/mnt/rest-server/DOMAIN/cert.pem' Le_RealCACertPath='' Le_RealKeyPath='/mnt/rest-server/DOMAIN/key.pem' Le_ReloadCmd='__ACME_BASE64__START_c3lzdGVtY3RsIHJlc3RhcnQgc2VydmVyLnNlcnZpY2U=__ACME_BASE64__END_' Le_RealFullChainPath='/mnt/rest-server/DOMAIN/fullchain.pem' Ok, da ist der ReloadCmd, aber der ist base64 kodiert!? Was machen. # echo c3lzdGVtY3RsIHJlc3RhcnQgc2VydmVyLnNlcnZpY2U= | base64 -d systemctl restart server.service Ok, hier sehen wir die fehlerhafte Eintragung, die genau meinem Beispiel oben entspricht (unter Installation Zertifikat) Man könnte jetzt die Installation des Zertifikates mit dem korrigierten EIntrag durchführen, oder diese Base64 Zeile korrigieren. Ok, wie geht das? # echo systemctl restart rest-server.service | base64 c3lzdGVtY3RsIHJlc3RhcnQgcmVzdC1zZXJ2ZXIuc2VydmljZQo= Diese Ausgabe kopieren wir dann in die Konfigurationsdatei. Kurze Kontrolle # echo c3lzdGVtY3RsIHJlc3RhcnQgcmVzdC1zZXJ2ZXIuc2VydmljZQo= | base64 -d systemctl restart rest-server.service Passt Und wieder jede Menge gelernt. Danke @Nico
  • Alles rund um MariaDB

    8 Themen
    16 Beiträge
    Ich hatte ja die Idee, das lokale Netz der Hetzner Cloud zu entfernen. Das kann man hier nachlesen. Dort hatte ich das mit der Redis Replication schon gemacht. Auf die Wireguard Installation gehe ich hier nicht nochmal ein, das sollte klar sein bzw. kann man im oben verlinkten Artikel nachlesen. Bedingungen 10.10.1.1 Datenbank Server 10.10.1.3 PHP Server 10.0.0.3 Alte lokale Adressen MariaDB IP-Adresse In der Datei /etc/mysql/mariadb.conf/50-server.cnf müssen wir die IP-Adresse einstellen, auf welcher MariaDB lauscht. # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 bind-address = 10.10.1.1 Die bind-address muss der Wireguard Adresse des Datenbank Servers entsprechen. Vorher sollte der Wireguard Tunnel natürlich funktionieren. Neustart service mysqld restart Jetzt greifen die Anwendungen ja auf die Datenbank zu, dazu muss man in der jeweiligen Konfiguration die entsprechende Adresse einstellen. Beispiel Joomla Webseite nano configuration.php Dort findet man folgende Zeile public $host = '10.10.1.1'; Die muss an die Wireguard Adresse des Datenbank Servers angepasst werden. Danach hatte ich immer noch Probleme die Datenbank zu erreichen. MariaDB Datenbank anpassen Schauen wir uns die User an. MariaDB [(none)]> SELECT User,Host FROM mysql.user; +-----------------+-----------+ | User | Host | +-----------------+-----------+ | joomla | 10.0.0.3 | | root | localhost | +-----------------+-----------+ 2 rows in set (0.001 sec) Ok, der User joomla hat nur Zugriff von 10.0.0.3, das war die alte lokale Adresse. Die Wireguard Adresse ist ja die 10.10.1.3 Somit bekommt der User auch keinen Zugriff auf die Datenbank. Also ändern. DROP USER 'joomla'@'10.0.0.3'; CREATE USER 'joomla'@'10.10.1.3' IDENTIFIED BY 'PASSWORD'; FLUSH PRIVILEGES; Dann sieht das so aus MariaDB [(none)]> SELECT User,Host FROM mysql.user; +-----------------+-----------+ | User | Host | +-----------------+-----------+ | joomla | 10.10.1.3 | | root | localhost | +-----------------+-----------+ 2 rows in set (0.001 sec) Gut, ich habe aber immer noch keinen Zugriff zur Datenbank. Es gibt ja noch folgenden Befehl in MariaDB grant all privileges on joomla.* to 'joomla'@'10.10.1.3' identified by 'PASSWORD'; Damit gewährt man dem User joomla ja den Zugriff zur Datenbank und zwar genau von der IP-Adresse die man da rein schreibt. Die steht ja noch auf der alten IP-Adresse. Also den Befehl eingeben. grant all privileges on joomla.* to 'joomla'@'10.10.1.3' identified by 'PASSWORD'; FLUSH PRIVILEGES; Danach funktioniert der Datenbank Zugriff. Das muss man jetzt für alle User und Datenbanken machen. Wenn man sehr viele PHP-Seiten hat, kann das sehr aufwendig werden. Somit sollte man sich beim Konzept der Server schon vorher Gedanken drüber machen. iptables Sollte klar sein, das man die entsprechenden Regeln ergänzt, bzw. ändern muss.
  • Alles rund um Nextcloud

    40 70 vor 16 Tagen
    40 Themen
    70 Beiträge
    Neue Version 31.0.2 ist erschienen. Das Download-Problem mit dem Webupdater ist immer noch irgendwie komisch. Als wenn der Download mit sehr langsamer Geschwindigkeit stattfindet. Dann irgendwann abbricht, aber im Hintergrund noch weiter lädt. Irgendwann konnte ich dann das Update weitermachen. Liebes Nextcloud-Team, bitte fixen, das nervt!! https://nextcloud.com/de/changelog/#latest31
  • Alles rund um NGINX

    10 Themen
    17 Beiträge
    Hi, ja es ist zu Warm Hab mich vielleicht etwas falsch ausgedrückt. Ich suche ne möglichkeit bzw. ein Howto wie ich Seafile für einen bekannten auf ein Shared Hosting Paket installiert bekomme.
  • NodeBB Forum Software

    59 91 vor 3 Tagen
    59 Themen
    91 Beiträge
    "curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -" 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash' source ~/.bashrc nvm install node
  • Alles rumd um die pfSense Software

    4 Themen
    8 Beiträge
    Ich habe meine pfSense doch ein wenig vernachlässigt. Sie war doch noch auf v2.7.0 und wollte sich nicht upgraden lassen. Was machen? Dank der tollen Anleitung ließ sich das Problem fixen. https://docs.netgate.com/pfsense/en/latest/troubleshooting/upgrades.html#force-pkg-metadata-update pkg-static update -f führte zu einer Reihe von Fehlern. An error occured while fetching package In der Anleitung steht Try running certctl rehash from the console, a root shell prompt, or via Diagnostics > Command Prompt. This will allow pkg to utilize the system certificates until the next reboot. Also certctl rehash in die Konsole und er macht irgendwas. Nehme an, er hat die Zertifikate überprüft!? Danach ließ sich die pfSense aktualisieren. Jetzt ist sie wieder auf der letzten Version. [image: 1714682645553-b1dec071-fa1d-4880-b99a-19f386f25545-grafik.png] Übrigens, die Release Notes findet ihr hier
  • PHP für Einsteiger

    13 Themen
    19 Beiträge
    php8.2 am Start? Dann mal bitte aktualisieren. Debian Security Advisory DSA-5819-1 security@debian.org https://www.debian.org/security/ Moritz Muehlenhoff November 26, 2024 https://www.debian.org/security/faq Package : php8.2 CVE ID : CVE-2024-8929 CVE-2024-8932 CVE-2024-11233 CVE-2024-11234 CVE-2024-11236
  • Alles rund um die Virtualisierungs Lösung

    22 Themen
    59 Beiträge
    Ich habe gestern mal eine Neuigkeit ausprobiert, den Import einer Anwendung mittels OVA. Dazu habe ich irgendwo im Netz ein File für OpenProject gefunden (steht schon sehr lange auf meiner Testliste). Der Import war langweilig einfach. Nach Import ein paar Dinge eingestellt, Netzwerk usw. und die VM gestartet. Ok, die Installation war so alt, das ich sie danach wieder gelöscht habe, aber das soll ja kein Problem sein. Man kann OpenProject ja auch mittels .deb Package installieren. Zweiter Test war der "Tag View". Interessantes Feature, was ich auch mal direkt angewendet habe, auch wenn fast alle meine VMs Debian sind
  • 75 Themen
    138 Beiträge
    Ich habe den Sonntag mal genutzt um ein wenig was einzubauen. Einmal habe ich mit datatables.net die Tabelle etwas funktionaler gestaltet. [image: 1736705735786-00a95363-1f41-4bbf-884a-34f21aea81e4-grafik.png] Man kann nun suchen, sortieren und wenn man mehr als 10 Datenpunkte hat, hat die Tabelle auch Pagination. Ein nettes Projekt, macht einiges einfacher Das nächste, ich hatte es im Video ja kurz erwähnt, mir fehlte ja noch die Restore Funktion von Restic. Ok, ist jetzt auch drin. Da die Benutzerverwaltung mittlerweile komplett eingebaut ist, werde ich demnächst meine Test Datenbanken und alles was damit zu tuen hat, aus dem Code entfernen. Brauch ich jetzt nicht mehr. Habe jetzt zwei Benutzer, einen Produktiven und einen zum Testen. Langfristig steht auch noch eine zweite Sprache auf dem Zettel. Aber, dafür muss ich Lust haben, das Thema juckt nicht so richtig
  • Alles zur NoSQL in Memory Datenbank!

    22 Themen
    37 Beiträge
    Ich hatte bei meinen Python Projekten drei Datenbanken am Start, als Beispiel Redis DB 0, 1, 2 Nun wollte ich das mal zusammenfassen, da ich das so nicht mehr brauche. Also alle Keys in DB 0. So soll das am Ende aussehen. [image: 1711127826778-c17e4998-859d-4c6d-bcc5-7ff244b9a817-grafik.png] settings, stock_list und stocks waren jeweils in einer eigenen DB. Die beiden STRING Werte dienen nur zum Zwischenspeichern, sind hier jetzt mal nicht so wichtig. Nur, wie kopiert man denn nun den KEY aus der einen DB in die andere? Es war eine lange Sitzung mit Chat_GPT da klemmte es doch öfter. Aber, am Ende stand der Erfolg Auf dem Redis Datenbank Server habe ich folgendes Script erstellt. #!/bin/bash # Define Redis host and optional authentication password REDIS_HOST="192.168.3.9" REDIS_PASSWORD="PASSWORD" # Remove or leave empty if no password # Function to execute Redis command with optional authentication execute_redis_command() { if [ -n "$REDIS_PASSWORD" ]; then redis-cli -h $REDIS_HOST -a $REDIS_PASSWORD "$@" else redis-cli -h $REDIS_HOST "$@" fi } # Fetch all fields (and their values) from the source hash in database 1 mapfile -t fields_values < <(execute_redis_command -n 2 HGETALL stock_list) # Loop through the fields_values array # Bash arrays are zero-indexed, fields_values contains field name followed by value, so we increment by 2 for ((i=0; i<${#fields_values[@]}; i+=2)); do field="${fields_values[i]}" value="${fields_values[i+1]}" # Use HSET to insert the field-value pair into the target database (database 0) execute_redis_command -n 0 HSET stock_list "$field" "$value" done echo "All fields from DB 1 copied to DB 0 successfully." Als erstes mal ein Hinweis. Sollten im Passwort Sonderzeichen sein, geht das so nicht. Dann muss man das so lösen. redis-cli -h $REDIS_HOST -a 'PASSWORD' "$@" Ich denke, das sollte als Hinweis reichen. Was macht das Script? # Fetch all fields (and their values) from the source hash in database 1 mapfile -t fields_values < <(execute_redis_command -n 2 HGETALL stock_list) Wir holen alle Fields und ihre Daten von der Datenbank 1 für den KEY stock_list. Dann loopen wir da durch # Use HSET to insert the field-value pair into the target database (database 0) execute_redis_command -n 0 HSET stock_list "$field" "$value" Und hiermit speichern wir dann die Daten in Datenbank 0 unter dem KEY Namen stock_list. Das hat soweit super geklappt, außer das ich immer eine leer Zeile in der Datenbank unter Fields hatte. Hab sie einfach gelöscht. Wenn man mal Langeweile hat, kann man mal suchen warum das so ist Am Ende hatte ich dann meine drei Datenbanken alle zu einer zusammengefasst. Eine Sünde aus meiner Anfangszeit ausgebessert. Nun hatte ich ja auch drei Datenbank Klassen, die jeweils die Redis Connection initialisiert hatten. Den dreifachen Code konnte ich auch gut entsorgen. So sah er aus. class PortfolioSettings: def __init__(self, host=config.SERVER_IP, port=6379, db=None): if db is None: # If db is not provided explicitly, use TEST_MODE to decide if config.TEST_MODE == 1: db = config.TEST[0] else: db = config.LIVE[0] # Verwende einen Connection Pool self.pool = redis.ConnectionPool( host=host, port=port, db=db, password=config.REDIS_PASSWORD, # Auto-Reconnect einstellen retry_on_timeout=True, # Optional: Weitere Einstellungen wie maximale Wiederverbindungsversuche, # Timeout-Werte, etc. können hier konfiguriert werden health_check_interval=30 # Überprüft die Verbindung alle 30 Sekunden ) # self.client = redis.StrictRedis(host=host, port=port, db=db, password=config.REDIS_PASSWORD) self.client = redis.Redis(connection_pool=self.pool) Danach so class PortfolioSettings: def __init__(self, connection_pool=config.shared_redis_pool): self.client = redis.Redis(connection_pool=connection_pool) Und unter meiner config.py initialisiere ich das Ganze so. # Initialize a single shared connection pool shared_redis_pool = redis.ConnectionPool( host=redis_host_ip, port=6379, db=LIVE[0] if TEST_MODE == 0 else TEST[0], password=REDIS_PASSWORD, retry_on_timeout=True, health_check_interval=30 ) Und wie immer, seid vorsichtig mit dem REDIS Passwort! Auf einem produktiven System danach bitte gut aufräumen. Für mich aktuell nicht so wichtig, der Server läuft hier lokal.
  • Backups done right!

    36 66 vor 7 Tagen
    36 Themen
    66 Beiträge
    Restic v0.18.0 released Sec #5291: Mitigate attack on content-defined chunking algorithm Fix #1843: Correctly restore long filepaths' timestamp on old Windows Fix #2165: Ignore disappeared backup source files Fix #5153: Include root tree when searching using find --tree Fix #5169: Prevent Windows VSS event log 8194 warnings for backup with fs snapshot Fix #5212: Fix duplicate data handling in prune --max-unused Fix #5249: Fix creation of oversized index by repair index --read-all-packs und ganz viele andere.... https://github.com/restic/restic/releases/tag/v0.18.0
  • Alles rund um Linux

    17 Themen
    27 Beiträge
    Es gab wieder ein neues Update! [image: 1652207846229-bildschirmfoto-vom-2022-05-10-20-36-50.png] Wollen wir mal sehen, ob sich im Wireguard Bereich etwas getan hat. Es gibt jetzt einen eigenen Reiter, wenn ich mich korrekt erinnere. [image: 1652208116024-bildschirmfoto-vom-2022-05-10-20-35-04.png] Hier kann man jetzt die Wireguard Einstellungen sich anzeigen lassen, ein Feature was ich mir in der Feedback EMail gewünscht hatte. [image: 1652208256203-bildschirmfoto-vom-2022-05-10-20-35-47.png] Das sieht dann so aus. [image: 1652208437463-bildschirmfoto-vom-2022-05-10-20-36-06.png] [image: 1652208504112-bildschirmfoto-vom-2022-05-10-20-36-28.png] Ich denke, jetzt hat man ausreichend Informationen, um bei Problemfällen sich mit den Einstellungen zu beschäftigen. Danke AVM, das ihr so auf das Feedback der Kunden reagiert.
  • Von mir (aktuell) nicht mehr eingesetzte Software.

    42 Themen
    60 Beiträge
    Noch Joomla! am Start? Dann mal aktualisieren! https://www.linux-magazin.de/news/kritische-luecke-in-cms-joomla/
  • 0 Stimmen
    1 Beiträge
    87 Aufrufe
    Niemand hat geantwortet
  • Linux Mint 21 Vanessa

    linuxmint 21 30. Juli 2022, 06:15
    0 Stimmen
    4 Beiträge
    201 Aufrufe
    Mein Thinkpad aktualisiert, mit dem neuen Tool mintupgrade Wenn das nicht da sein sollte, dann apt install mintupgrade Danach als User, nicht als Root, auf der Konsole sudo mintupgrade [image: 1659974570284-bildschirmfoto-vom-2022-08-08-17-02-52.png] Ich hatte es wieder vergessen, das man diese Funktion in den Einstellungen abschalten kann [image: 1659974605352-bildschirmfoto-vom-2022-08-08-18-00-57.png] Es hat etwas gedauert, ca. 30 Minuten (grob geschätzt) Reboot, alles ok. [image: 1659974726942-bildschirmfoto-vom-2022-08-08-18-04-51.png]
  • OpenWrt - Basics der Firewall

    openwrt 7. Aug. 2022, 18:20
    0 Stimmen
    1 Beiträge
    116 Aufrufe
    Niemand hat geantwortet
  • Docker - Portainer

    docker portainer linux 17. März 2021, 20:59
    6
    0 Stimmen
    3 Beiträge
    769 Aufrufe
    Dann grabe ich das mal wieder aus Bedingt durch den Wegfall meines Proxmox, musste ich mir Gedanken darüber machen, wie ein paar Dienste auch weiterhin laufen sollen. Um mal die zwei wichtigsten zu nennen. checkmk DokuWiki Diese sollen später, wenn der zweite NanoPi R5S aus China da ist, dort laufen. Da der aber mit der Schneckenpost kommt, kann man ja in der Zwischenzeit mal wieder mit Docker spielen. Ich erinnerte mich daran, das checkmk eine sehr gute Anleitung hat, so das ich das mal wieder ausprobierte. Klappte einwandfrei. Dann erinnerte mich an Portainer und dachte mir, das probiere ich mal wieder aus [image: 1659859625137-1d2dc9b3-ad71-45c5-b552-72c88a1bf773-grafik.png] Ich hatte übrigens die Endpoints gesucht und nicht gefunden, die heißen jetzt Environments. Auf dem Bild ist noch keiner eingerichtet. [image: 1659859549311-4bdbf196-1b36-4e65-94d0-0e56daa473bf-grafik.png] Irgendwie ist das wirklich richtig gute Software. Ich mag den Portainer und auch als selbst ausgebildeter ITler kommt man damit sehr schnell ganz gut zurecht. Ja, man kann die ganzen Docker Befehle auch über die Konsole eingeben, was ich normalerweise auch mit ganz vielen Dingen mache, aber das macht hier einfach Spaß. Man hat auch schnell einen guten Überblick was wo läuft usw. Wer so was sucht, einfach mal ausprobieren. Klare Empfehlung von mir.
  • 0 Stimmen
    1 Beiträge
    74 Aufrufe
    Niemand hat geantwortet
  • Debian 11.4 released

    debian 9. Juli 2022, 15:55
    0 Stimmen
    1 Beiträge
    91 Aufrufe
    Niemand hat geantwortet
  • NodeJS - Sicherheitsupdate 07.07.22

    nodejs 7. Juli 2022, 20:03
    0 Stimmen
    1 Beiträge
    68 Aufrufe
    Niemand hat geantwortet
  • OpenSUSE - Tumbleweed

    opensuse 24. Juni 2022, 14:50
    3
    0 Stimmen
    4 Beiträge
    163 Aufrufe
    Mein persönliches Fazit Man merkt OpenSUSE den Firmen Ansatz an, aber das Konzept dahinter ist leider ein wenig altbacken, in soweit muss ich dem Ersteller des Videos recht geben. Was mich angesprochen hat, steht oben ja bereits. Der Installer ist wirklich fein, das snapper Toll ist klasse, aber... Den Installer brauche ich im Normalfall einmal, danach im besten Fall jahrelang nicht mehr Das Tool snapper kann ich auch auf jeder anderen Distribution einsetzen! Hier auf Manjaro [frank-ms7c37 ~]# pacman -S snapper Abhängigkeiten werden aufgelöst … Nach in Konflikt stehenden Paketen wird gesucht … Pakete (1) snapper-0.10.2-2 Gesamtgröße des Downloads: 0,71 MiB Gesamtgröße der installierten Pakete: 2,64 MiB :: Installation fortsetzen? [J/n] Btrfs natürlich vorausgesetzt, sonst macht das ja keinen Sinn. Was hat mich jetzt von Tumbleweed vertrieben? Es waren die vielen kleinen Dinge, die in Summe, es für mich dann irgendwann nicht akzeptabel machen Tumbleweed auf Dauer einzusetzen. An die OpenSUSE-Fans da draußen es ist nicht schlecht, mit wochenlanger Einarbeitung bekomme ich dann vermutlich irgendwann einen funktionierenden Desktop hin. Mich sprechen andere Konzepte mehr an, also zurück zu Manjaro Aber, wie viele die hier lange mitlesen, wird es vermutlich irgendwann in Kürze sowieso wieder zu Linux Mint Cinnamon zurückgehen Und wollen wir hoffen, das X11 bald Geschichte ist....
  • Pacman Befehle

    pacman manjaro 7. Juni 2022, 16:22
    0 Stimmen
    1 Beiträge
    226 Aufrufe
    Niemand hat geantwortet
  • Firefox Einstellungen

    firefox 28. Mai 2022, 04:58
    0 Stimmen
    1 Beiträge
    71 Aufrufe
    Niemand hat geantwortet
  • Kubuntu 22.04

    30. Apr. 2022, 12:20
    0 Stimmen
    5 Beiträge
    216 Aufrufe
    Ein Tag später, mein Linux Mint Cinnamon läuft einwandfrei. Es ist eigentlich so schade, das man bei der Nutzung von anderen Distros so viele Probleme hat. Das kann ja eigentlich nicht nur an meinem PC liegen, ok ist nicht mehr taufrisch, aber ich denke eine weit verbreitete Konfiguration. [image: 1651505826114-7639a798-79c6-4208-8143-06f4c27767b1-grafik.png] Auf dem Cinnamon nutze ich den NVidia-Treiber 510 und als Kernel frank@frank-MS-7C37:~$ uname -a Linux frank-MS-7C37 5.13.0-40-generic #45~20.04.1-Ubuntu SMP Mon Apr 4 09:38:31 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux Schade, das ich mir nicht notiert habe, was ich auf dem Kubuntu genutzt habe. Ich denke aber, es war auch der 510 NVidia-Treiber, als Kernel müsste ein 5.15er benutzt worden sein. Und nein, ich möchte nicht den KDE Plasma Desktop bashen, den finde ich immer noch sehr ansprechend, der Grund warum ich diesen auch für den Test genutzt hatte. Da es ja auch mit dieser LTS Version nichts wird, werde ich auf die nächste LTS Version warten und dann wieder ausprobieren Übrigens wünsche ich mir einen wesentlich komfortableren Installer für Linux, der ist nicht so toll. Sieht zwar gut aus, aber dem Fehlen einfach zu viele Optionen, die ich immer vermisse. Zum guten Schluss habe ich mich bei Linux Mint Cinnamon bedankt. Meine neunte Danksagung, jo ich nutze das schon was länger
  • 0 Stimmen
    1 Beiträge
    286 Aufrufe
    Niemand hat geantwortet
  • Ubuntu 22.04

    ubuntu 23. Apr. 2022, 09:23
    2
    0 Stimmen
    3 Beiträge
    162 Aufrufe
    Hier mal ein Blogbeitrag, wie man Firefox ordentlich auf dem Ubuntu installiert https://balintreczey.hu/blog/firefox-on-ubuntu-22-04-from-deb-not-from-snap/ [image: 1650805035785-cc5470a6-96dc-4ec7-8d06-51669b93ec90-image.png] [image: 1650805140398-20de6aa1-57cd-49b7-8fe2-dad1eb3d7692-image.png]
  • LMDE Upgrade Tool Beta

    linuxmint lmde4 lmde5 18. Apr. 2022, 16:52
    8
    0 Stimmen
    2 Beiträge
    165 Aufrufe
    Ok, die Option gab es schon. Kann man im Hamburger Menü unter Preferences einstellen. [image: 1650314098177-ef454fc1-bcb8-4264-b498-1e6aa0a1b205-grafik.png]
  • Projekt Ryzen7 & X570 Mainboard

    ryzen3000 10. Juli 2019, 17:37
    1
    0 Stimmen
    25 Beiträge
    2k Aufrufe
    Nach sehr langer Zeit, habe ich heute mal wieder ein aktuelles BIOS geflashed. [image: 1649487492760-9f33e13e-92f8-452e-b238-5469bdc6d571-grafik.png] https://de.msi.com/Motherboard/MPG-X570-GAMING-PLUS/support [image: 1649487588272-20220409_084823-resized.jpg] [image: 1649487593664-20220409_084852-resized.jpg] Danach Neustart, bootet wie es soll. Damit wäre mein Mainboard kompatibel für den wohl letzten Prozessor auf dem AM4 basierenden Board. Ryzen 7 5800X3D Gamestar schreibt dazu AMD möchte mit einem neuen Prozessor noch einmal ein Spitzenmodell für Spieler bringen, welches auf dem aktuellen Sockel AM4 basiert. Künftige Modelle werden auf einen neuen Sockel namens AM5 setzen. Der wohl letzte Prozessor für mit AM4 und damit auch die Zen-3-Architektur bringt aber noch eine Besonderheit mit sich. Quelle: https://www.gamestar.de/artikel/ryzen-7-5800x3d-tests-spieler,3379594.html Das PC Magazin schreibt zu Preis und Verfügbarkeit Am 15. März hat AMD den Preis und die Verfügbarkeit des Ryzen 7 5800X3D bekannt gegeben. Demnach wird die neue CPU mit 3D V-Cache am 20. April zu einer UVP von 449 US-Dollar ( rund 408 Euro) erscheinen. Quelle: https://www.pc-magazin.de/ratgeber/amd-ryzen-7-5800-prozessor-cpu-infos-preis-release-specs-3202912.html Ich bin sehe gespannt, ob der USB-Bug endlich behoben wurde. Ihr erinnert Euch? Wenn ich komplett neu starte, dann kann ich keine Eingabe machen. Tastatur und Maus ohne Funktion. Ich verrate Euch sicherlich nicht zu viel, wenn ich aktuell eine Neuanschaffung plane, so ein AM5 Brett würde mich schon reizen Denke, das war der letzte Beitrag zu diesem Projekt
  • FritzBox Labor Version 7.39

    fritzbox 26. März 2022, 16:14
    2
    0 Stimmen
    7 Beiträge
    238 Aufrufe
    Da das o.g. sehr gut funktioniert, habe ich den Wireguard Server, den ich in der Hetzner Cloud dafür betrieben habe, heute abgeschaltet. Das erspart mir 4,98€ ( 4,15€ + 20% für Backups), macht 59,76€ / Jahr. In Zeiten mir hoher Inflation nicht so unwichtig. Der Proxmox bei mir zu Hause, auf dem der Dienst jetzt läuft, ist hier sowieso an der macht ja noch so einiges anderes...
  • Debian 11.3 released

    debian 28. März 2022, 16:46
    0 Stimmen
    1 Beiträge
    95 Aufrufe
    Niemand hat geantwortet
  • LMDE 5 "Elsie"

    linuxmint 17. März 2022, 16:12
    2
    0 Stimmen
    3 Beiträge
    342 Aufrufe
    Gerade kam über die Mailingliste folgendes rein Multiple security issues were discovered in Thunderbird, which could result in the execution of arbitrary code or information disclosure. For the oldstable distribution (buster), these problems have been fixed in version 1:91.7.0-2~deb10u1. For the stable distribution (bullseye), these problems have been fixed in version 1:91.7.0-2~deb11u1. Das mal direkt getestet. 91.6.2 vor dem Update, danach 91.7.0 Zum Vergleich, auf meiner normalen Linux Mint 20.3 Cinnamon Installation ist Version 91.5.0 enthalten.
  • LMDE4 Cinnamon Edition

    linuxmint lmde4 13. Feb. 2022, 17:06
    9
    0 Stimmen
    2 Beiträge
    155 Aufrufe
    Mal kurz der Hinweis, das es mittlerweile LMDE5 als Cinnamon BETA Edition gibt. Da ich die Installation ein wenig vermurkst habe s.o. habe ich mal eben neuinstalliert. Lief reibungslos. Man hat dann eine Cinnamon Edition, die auf Debian 11 Bullseye basiert. Der Installer macht einen sehr soliden Eindruck, damit sollte wirklich jeder seinen PC installieren können Ich werde da noch ausführlicher drauf eingehen, dann in einem eigenen Thread.
  • Manjaro KDE Plasma 21.2.2

    linux manjaro 7. Feb. 2022, 17:19
    2
    0 Stimmen
    5 Beiträge
    232 Aufrufe
    Ok, geht nicht. Manjaro und ich werden leider keine Freunde. Da sind zu viele Dinge, die nicht besonders gut umgesetzt sind. Heute mal den Test gemacht und mein geliebtes Linux Mint Cinnamon installiert. Passwort für die Verschlüsselung nimmt anstandslos deutsche Sonderzeichen an WiFi geht auch nicht mit WPA3, man kann aber einfach auf WPA2 umstellen und das funktioniert. Damit endet dieser Versuch jetzt..