{"id":409,"date":"2023-12-03T01:22:46","date_gmt":"2023-12-03T00:22:46","guid":{"rendered":"https:\/\/www.bmetallica.de\/?page_id=409"},"modified":"2023-12-03T01:58:01","modified_gmt":"2023-12-03T00:58:01","slug":"debian-patchmanagement","status":"publish","type":"page","link":"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/","title":{"rendered":"Debian Patchmanagement"},"content":{"rendered":"<h1 style=\"text-align: left;\">Debian Patchmanagement<\/h1>\n<p><strong>Ziel ist es ein einfaches Patchmanagement mit Webinterface f\u00fcr eine Anzahl von Debian Servern zu schaffen.<\/strong><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"425\" data-permalink=\"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/manage\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage.jpg?fit=1896%2C978&amp;ssl=1\" data-orig-size=\"1896,978\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"manage\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage.jpg?fit=300%2C155&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage.jpg?fit=676%2C349&amp;ssl=1\" class=\"aligncenter size-medium wp-image-425\" src=\"https:\/\/i0.wp.com\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage.jpg?resize=300%2C155\" alt=\"\" width=\"300\" height=\"155\" srcset=\"https:\/\/i0.wp.com\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage.jpg?resize=300%2C155&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage.jpg?resize=1024%2C528&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage.jpg?resize=768%2C396&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage.jpg?resize=1536%2C792&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage.jpg?resize=945%2C487&amp;ssl=1 945w, https:\/\/i0.wp.com\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage.jpg?resize=600%2C309&amp;ssl=1 600w, https:\/\/i0.wp.com\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage.jpg?w=1896&amp;ssl=1 1896w, https:\/\/i0.wp.com\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage.jpg?w=1352 1352w\" sizes=\"(max-width: 300px) 100vw, 300px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p><strong>Voraussetzungen:<\/strong><\/p>\n<p>Ein Debian Server mit folgenden Paketen:<\/p>\n<p>apache2, php, postgresql-server, php-pgsql, openssh-server, sshpass, sudo<\/p>\n<p>&nbsp;<\/p>\n<p>Installation des Management-Servers:<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"text-align: left;\">Erzeugen eines RSA-Schl\u00fcssel &#8222;ssh-keygen&#8220;<\/li>\n<li>Erweitern der &#8222;\/etc\/ssh\/ssh_config&#8220; mit dem Wert &#8222;StrictHostKeyChecking no&#8220;<\/li>\n<li>anpassen der sudoers f\u00fcr www-data:<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<pre class=\"lang:default decode:true\"># User privilege specification\r\nroot    ALL=(ALL:ALL) ALL\r\nwww-data ALL=(ALL) NOPASSWD: ALL<\/pre>\n<ul>\n<li>anlegen eines Verzeichnis f\u00fcr das WEB-Frontend &#8222;mkdir \/var\/www\/html\/patch&#8220;<\/li>\n<li>Postgresql erlauben Kommunikation aus dem internen Netzwerk an zu nehmen:\n<ol>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>\/etc\/postgresql\/11\/main\/postgresql.conf\u00a0 -&gt; listen_addresses = &#8218;*&#8216;<\/li>\n<li>\/etc\/postgres\/11\/main\/pg_hba.conf:\n<pre class=\"lang:default decode:true\"># IPv4 local connections:\r\n host all all 192.168.66.1\/24 password\r\n\r\n<\/pre>\n<\/li>\n<li>\/etc\/init.d\/postgresql restart<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/li>\n<li>anlegen der Datenbank in Postgresql &#8218;psql -U postgres -c &#8222;create database apt&#8220;&#8218;<\/li>\n<li>einen User f\u00fcr die Datenbank anlegen psql -d apt -U postgres -c &#8222;CREATE USER apt WITH PASSWORD &#8218;apt123&#8216;;&#8220;&#8218;<\/li>\n<li>Eine Tabelle anlegen &#8222;psql -d apt -U postgres&#8220;<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<pre class=\"lang:default decode:true\">CREATE TABLE IF NOT EXISTS zustand (\r\n    id SERIAL PRIMARY KEY,\r\n    server VARCHAR(15) NOT NULL,\r\n    sys VARCHAR(255) NOT NULL,\r\n    pu VARCHAR(3) NOT NULL,\r\n    ul TEXT,\r\n    root_free VARCHAR(10) NOT NULL,\r\n    last_run TIMESTAMP NOT NULL\r\n);\r\n<\/pre>\n<\/li>\n<li>erzeugen der Startseite (\/var\/www\/html\/patch\/index.php)<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<pre class=\"lang:default decode:true\"><code>&lt;!DOCTYPE html&gt;\r\n&lt;html lang=\"en\"&gt;\r\n\r\n&lt;head&gt;\r\n&lt;meta charset=\"UTF-8\"&gt;\r\n&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\r\n&lt;title&gt;Server Information&lt;\/title&gt;\r\n&lt;style&gt;\r\nbody {\r\nbackground-color: #0e0e0e;\r\ncolor: #ffffff;\r\nfont-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\r\nmargin: 0;\r\npadding: 0;\r\nbox-sizing: border-box;\r\noverflow-x: hidden;\r\n}\r\n\r\n.container {\r\nwidth: 100%;\r\nmargin: 50px 0;\r\noverflow-x: auto;\r\n}\r\n\r\ntable {\r\nwidth: 100%;\r\nborder-collapse: collapse;\r\nmargin-top: 20px;\r\nbackground-color: #1e1e1e;\r\nbox-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5);\r\nborder-radius: 12px;\r\noverflow: hidden;\r\n}\r\n\r\nth,\r\ntd {\r\nborder: 1px solid #333;\r\npadding: 16px;\r\ntext-align: left;\r\ntransition: background-color 0.3s ease;\r\n}\r\n\r\nth {\r\nbackground-color: #4CAF50;\r\ncolor: white;\r\n}\r\n\r\ntextarea {\r\nwidth: 100%;\r\nheight: 6em;\r\nresize: vertical;\r\nbackground-color: #333;\r\ncolor: #ffffff;\r\nborder: 1px solid #666;\r\npadding: 12px;\r\nborder-radius: 6px;\r\n}\r\n\r\n.action-button {\r\nbackground-color: #3498db;\r\ncolor: #ffffff;\r\npadding: 12px 20px;\r\nborder: none;\r\nborder-radius: 8px;\r\ncursor: pointer;\r\ntransition: background-color 0.3s ease;\r\n}\r\n\r\n.action-button:hover {\r\nbackground-color: #2980b9;\r\n}\r\n\r\n.connected {\r\ncolor: #3498db;\r\n}\r\n\r\n.highlight-row {\r\nbackground-color: #2ecc71;\r\ncolor: #ffffff;\r\n}\r\n&lt;\/style&gt;\r\n&lt;\/head&gt;\r\n\r\n&lt;body&gt;\r\n\r\n&lt;div class=\"container\"&gt;\r\n&lt;h2 style=\"text-align: center;\"&gt;Server Information&lt;\/h2&gt;\r\n&lt;table&gt;\r\n&lt;thead&gt;\r\n&lt;tr&gt;\r\n&lt;th&gt;Server&lt;\/th&gt;\r\n&lt;th&gt;Debian Version&lt;\/th&gt;\r\n&lt;th&gt;Updates Possible&lt;\/th&gt;\r\n&lt;th style=\"width: 100%;\"&gt;Update List&lt;\/th&gt;\r\n&lt;th&gt;Root Free&lt;\/th&gt;\r\n&lt;th&gt;Last Run&lt;\/th&gt;\r\n&lt;th&gt;Action&lt;\/th&gt;\r\n&lt;\/tr&gt;\r\n&lt;\/thead&gt;\r\n&lt;tbody&gt;\r\n&lt;?php\r\n\/\/ PostgreSQL Credentials\r\n$host = \"192.168.66.31\";\r\n$user = \"postgres\";\r\n$password = \"postgres\";\r\n$database = \"apt\";\r\n\r\n\/\/ Verbindung zur Datenbank herstellen\r\n$conn = new PDO(\"pgsql:host=$host;dbname=$database;user=$user;password=$password\");\r\n\r\n\/\/ SQL-Abfrage\r\n\/\/$query = \"SELECT * FROM zustand ORDER BY server\";\r\n$query = \"SELECT * FROM zustand ORDER BY (split_part(server, '.', 4)::int)\";\r\n$result = $conn-&gt;query($query);\r\n\r\nif ($result) {\r\nforeach ($result as $row) {\r\n$name = $row['server'];\r\n$version = $row['sys'];\r\n$updates = $row['pu'];\r\n$updateList = $row['ul'];\r\n$rootFree = $row['root_free'];\r\n$lastRun = $row['last_run'];\r\n$ip = $row['ip'];\r\n\r\n\/\/ Pr\u00fcfe, ob die IP in der idlist.log vorhanden ist\r\n$IPC = shell_exec(\"cat \/var\/www\/html\/patch\/idlist.log | grep $name | wc -l\");\r\n\r\n\/\/ $isIPConnected = in_array($ip, file('\/var\/www\/html\/patch\/idlist.log;\r\n\r\n\/\/ Bestimme den Inhalt der Action-Spalte basierend auf der IP-Verbindung\r\nif ($IPC != 0 AND $updates != 0) {\r\n$action = '&lt;span class=\"connected\"&gt;&#x2714; ssh connected&lt;\/span&gt;&lt;p&gt;&lt;button class=\"action-button\" onclick=\"openUpdatePage(\\'' . $name . '\\', \\'' . $name . '\\')\"&gt;Server Update&lt;\/button&gt;';\r\n}\r\nif ($IPC != 0 AND $updates == 0) {\r\n$action = '&lt;span class=\"connected\"&gt;&#x2714; ssh connected&lt;\/span&gt;';\r\n}\r\nif ($IPC == 0) {\r\n$action = '&lt;button class=\"action-button\" onclick=\"openSSHPage(\\'' . $name . '\\', \\'' . $name . '\\')\"&gt;connect SSH&lt;\/button&gt;';\r\n}\r\n\r\n\/\/ F\u00fcge eine Klasse f\u00fcr die Hervorhebung hinzu, wenn \"Updates Possible\" gr\u00f6\u00dfer als 0 ist\r\n$rowClass = ($updates &gt; 0) ? 'highlight-row' : '';\r\n\r\necho \"&lt;tr class='$rowClass'&gt;\";\r\necho \"&lt;td&gt;$name&lt;\/td&gt;\";\r\necho \"&lt;td&gt;$version&lt;\/td&gt;\";\r\necho \"&lt;td&gt;$updates&lt;\/td&gt;\";\r\n\r\n\/\/ Wenn \"Updates Possible\" gr\u00f6\u00dfer als 0 ist, zeige die Textarea\r\nif ($updates &gt; 0) {\r\necho \"&lt;td&gt;&lt;textarea rows='6' readonly&gt;$updateList&lt;\/textarea&gt;&lt;\/td&gt;\";\r\n} else {\r\necho \"&lt;td&gt;$updateList&lt;\/td&gt;\";\r\n}\r\n\r\necho \"&lt;td&gt;$rootFree&lt;\/td&gt;\";\r\necho \"&lt;td&gt;$lastRun&lt;\/td&gt;\";\r\necho \"&lt;td&gt;$action&lt;\/td&gt;\";\r\necho \"&lt;\/tr&gt;\";\r\n}\r\n} else {\r\necho \"&lt;tr&gt;&lt;td colspan='7'&gt;Error fetching data.&lt;\/td&gt;&lt;\/tr&gt;\";\r\n}\r\n\r\n$conn = null; \/\/ Verbindung schlie\u00dfen\r\n?&gt;\r\n&lt;\/tbody&gt;\r\n&lt;\/table&gt;\r\n&lt;\/div&gt;\r\n\r\n&lt;script&gt;\r\nfunction openUpdatePage(serverName, serverIP) {\r\nwindow.open('supdate.php?ip=' + serverIP, '_blank');\r\n}\r\nfunction openSSHPage(serverName, serverIP) {\r\nwindow.open('sid.php?ip=' + serverIP, '_blank');\r\n}\r\n\r\n&lt;\/script&gt;\r\n\r\n&lt;\/body&gt;\r\n\r\n&lt;\/html&gt;<\/code><\/pre>\n<\/li>\n<li>erzeugen des Skripts f\u00fcr den Import der SSH-Keys (\/var\/www\/html\/patch\/imp.sh)\n<pre class=\"lang:default decode:true\">ip=`\/bin\/cat \/var\/www\/html\/patch\/simp.tmp`\r\nsshpass -p \"ROOTPASSWORT\" ssh-copy-id -i \/root\/.ssh\/id_rsa.pub root@$ip<\/pre>\n<\/li>\n<li>erzeugen des PHP \u00dcbergang f\u00fcr den Import der SSH-Keys (\/var\/www\/html\/patch\/sid.php) &lt;\n<pre class=\"lang:default decode:true\">!--?php $ip=$_GET[ip]; shell_exec(\"sudo echo $ip &gt; \/var\/www\/html\/patch\/simp.tmp\"); $d=shell_exec(\"sudo \/var\/www\/html\/patch\/imp.sh\"); shell_exec(\"sudo echo $ip &gt;&gt; \/var\/www\/html\/patch\/idlist.log\"); echo \"$d\"; echo $ip ?--&gt;\r\n<\/pre>\n<\/li>\n<li>erzeugen des PHP-Skrips f\u00fcr das Updaten (\/var\/www\/html\/patch\/supdate.sh) &lt;\n<pre class=\"lang:default decode:true\">!--?php $ip=$_GET[ip]; \/\/shell_exec(\"sudo echo $ip &gt; \/var\/www\/html\/patch\/simp.tmp\"); $d=shell_exec(\"sudo ssh root@$ip 'apt upgrade -y'\"); $xd=shell_exec(\"sudo ssh root@$ip '\/local\/patch.sh'\"); \/\/shell_exec(\"sudo echo $ip &gt;&gt; \/var\/www\/html\/patch\/idlist.log\"); echo \"$d\"; echo \"$xd\"; echo $ip ?--&gt;<\/pre>\n<ul>\n<li>erzeugen des Skripts f\u00fcr die Satellite-Server (\/var\/www\/html\/patch\/patch.sh)\n<pre class=\"lang:default decode:true\">#!\/bin\/bash\r\n\r\n# PostgreSQL Credentials\r\nPG_HOST=\"IP-DES-POSTGRESQL-SERVER\"\r\nPG_USER=\"apt\"\r\nPG_PASSWORD=\"apt123\"\r\nPG_DATABASE=\"apt\"\r\n\r\n# Funktion zum Einf\u00fcgen oder Aktualisieren von Daten in die PostgreSQL-Tabelle\r\ninsert_or_update_data() {\r\n    local server_ip=\"$1\"\r\n    local debian_version=\"$2\"\r\n    local updates_possible=\"$3\"\r\n    local update_list=\"$4\"\r\n    local root_free=\"$5\"\r\n    local current_datetime=\"$(date +'%Y-%m-%d %H:%M:%S')\"\r\n\r\n    # SQL-Statement zum Einf\u00fcgen oder Aktualisieren von Daten in die Tabelle\r\n    psql -h \"$PG_HOST\" -U \"$PG_USER\" -d \"$PG_DATABASE\" -c \"INSERT INTO zustand (server, sys, pu, ul, root_free, last_run) VALUES ('$server_ip', '$debian_version', '$updates_possible', '$update_list', '$root_free', '$current_datetime') ON CONFLICT (server) DO UPDATE SET sys='$debian_version', pu='$updates_possible', ul='$update_list', root_free='$root_free', last_run='$current_datetime';\"\r\n}\r\n\r\n# Hauptskript\r\n\r\n# Aktualisieren Sie die Paketliste\r\napt update\r\nif ! command -v psql &amp;&gt; \/dev\/null\r\nthen\r\n    echo \"psql is not installed. Installing postgresql-client...\"\r\n    apt install -y postgresql-client\r\nfi\r\n# Erfassen von Systeminformationen\r\nserver_ip=$(hostname -I | awk '{print $1}')  # IP-Adresse des Servers\r\ndebian_version=$(lsb_release -ds)  # Aktuelle Debian-Version\r\nupdate_output=$(apt list --upgradable 2&gt;\/dev\/null |grep -v \"Listing\" |grep -v \"Auflistung\" 2&gt;\/dev\/null)  # Ausgabe der m\u00f6glichen Updates\r\nupdates_possible=$(apt list --upgradable 2&gt;\/dev\/null |grep -v \"Listing\" |grep -v \"Auflistung\" 2&gt;\/dev\/null | wc -l)  # Anzahl der m\u00f6glichen Updates\r\nupdate_list=\"$update_output\"  # Liste der m\u00f6glichen Updates\r\nroot_free=$(df -h \/ | awk 'NR==2 {print $4}')  # Freier Speicherplatz auf der Root-Partition\r\n\r\n# F\u00fchren Sie die Funktion zum Einf\u00fcgen oder Aktualisieren von Daten in die PostgreSQL-Tabelle aus\r\ninsert_or_update_data \"$server_ip\" \"$debian_version\" \"$updates_possible\" \"$update_list\" \"$root_free\"\r\n\r\necho \"Daten erfolgreich in die PostgreSQL-Tabelle eingef\u00fcgt oder aktualisiert.\"\r\n<\/pre>\n<\/li>\n<li>Einrichtung eines Satellitenserver:\n<pre class=\"lang:default decode:true\">mkdir \/local \r\nwget http:\/\/192.168.66.31\/patch\/patch.sh -O \/local\/patch.sh \r\nchmod 777 \/local\/patch.sh \r\necho \"59 * * * * \/local\/patch.sh &gt; \/dev\/null 2&gt;&amp;1\" &gt;&gt; \/var\/spool\/cron\/crontabs\/root \r\n\/local\/patch.sh<\/pre>\n<\/li>\n<li>Nun kann die erstellte Webseite (index.php) mit einem Browser aufgerufen werden.<\/li>\n<li>Jeder neue Satellit muss mit einem Klick auf den Button \u201econnect-SSH\u201c zuerst verbunden werden.<\/li>\n<li>Danach kann er mit dem Button Update-Server aktualisiert werden.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Debian Patchmanagement Ziel ist es ein einfaches Patchmanagement mit Webinterface f\u00fcr eine Anzahl von Debian Servern zu schaffen. Voraussetzungen: Ein Debian Server mit folgenden Paketen: apache2, php, postgresql-server, php-pgsql, openssh-server, sshpass, sudo &nbsp; Installation des Management-Servers: Erzeugen eines RSA-Schl\u00fcssel &#8222;ssh-keygen&#8220;&#8230; <a class=\"more-link\" href=\"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Debian Patchmanagement - bmetallica.de<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Debian Patchmanagement - bmetallica.de\" \/>\n<meta property=\"og:description\" content=\"Debian Patchmanagement Ziel ist es ein einfaches Patchmanagement mit Webinterface f\u00fcr eine Anzahl von Debian Servern zu schaffen. Voraussetzungen: Ein Debian Server mit folgenden Paketen: apache2, php, postgresql-server, php-pgsql, openssh-server, sshpass, sudo &nbsp; Installation des Management-Servers: Erzeugen eines RSA-Schl\u00fcssel &#8222;ssh-keygen&#8220;... Continue Reading &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/\" \/>\n<meta property=\"og:site_name\" content=\"bmetallica.de\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-03T00:58:01+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage-300x155.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/\",\"url\":\"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/\",\"name\":\"Debian Patchmanagement - bmetallica.de\",\"isPartOf\":{\"@id\":\"https:\/\/www.bmetallica.de\/#website\"},\"datePublished\":\"2023-12-03T00:22:46+00:00\",\"dateModified\":\"2023-12-03T00:58:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.bmetallica.de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Debian Patchmanagement\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.bmetallica.de\/#website\",\"url\":\"https:\/\/www.bmetallica.de\/\",\"name\":\"bmetallica.de\",\"description\":\"das Wissen der Welt geh\u00f6rt den Menschen\",\"publisher\":{\"@id\":\"https:\/\/www.bmetallica.de\/#\/schema\/person\/95f9265fa19015a54cb0537aad39bf97\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.bmetallica.de\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de-DE\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.bmetallica.de\/#\/schema\/person\/95f9265fa19015a54cb0537aad39bf97\",\"name\":\"bmetallica\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\/\/www.bmetallica.de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f65d4d63669df7a43505e3fc4e0e353b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f65d4d63669df7a43505e3fc4e0e353b?s=96&d=mm&r=g\",\"caption\":\"bmetallica\"},\"logo\":{\"@id\":\"https:\/\/www.bmetallica.de\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Debian Patchmanagement - bmetallica.de","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/","og_locale":"de_DE","og_type":"article","og_title":"Debian Patchmanagement - bmetallica.de","og_description":"Debian Patchmanagement Ziel ist es ein einfaches Patchmanagement mit Webinterface f\u00fcr eine Anzahl von Debian Servern zu schaffen. Voraussetzungen: Ein Debian Server mit folgenden Paketen: apache2, php, postgresql-server, php-pgsql, openssh-server, sshpass, sudo &nbsp; Installation des Management-Servers: Erzeugen eines RSA-Schl\u00fcssel &#8222;ssh-keygen&#8220;... Continue Reading &rarr;","og_url":"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/","og_site_name":"bmetallica.de","article_modified_time":"2023-12-03T00:58:01+00:00","og_image":[{"url":"http:\/\/www.bmetallica.de\/wp-content\/uploads\/2023\/12\/manage-300x155.jpg"}],"twitter_card":"summary_large_image","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"6 Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/","url":"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/","name":"Debian Patchmanagement - bmetallica.de","isPartOf":{"@id":"https:\/\/www.bmetallica.de\/#website"},"datePublished":"2023-12-03T00:22:46+00:00","dateModified":"2023-12-03T00:58:01+00:00","breadcrumb":{"@id":"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.bmetallica.de\/index.php\/debian-patchmanagement\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.bmetallica.de\/"},{"@type":"ListItem","position":2,"name":"Debian Patchmanagement"}]},{"@type":"WebSite","@id":"https:\/\/www.bmetallica.de\/#website","url":"https:\/\/www.bmetallica.de\/","name":"bmetallica.de","description":"das Wissen der Welt geh\u00f6rt den Menschen","publisher":{"@id":"https:\/\/www.bmetallica.de\/#\/schema\/person\/95f9265fa19015a54cb0537aad39bf97"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bmetallica.de\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de-DE"},{"@type":["Person","Organization"],"@id":"https:\/\/www.bmetallica.de\/#\/schema\/person\/95f9265fa19015a54cb0537aad39bf97","name":"bmetallica","image":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/www.bmetallica.de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f65d4d63669df7a43505e3fc4e0e353b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f65d4d63669df7a43505e3fc4e0e353b?s=96&d=mm&r=g","caption":"bmetallica"},"logo":{"@id":"https:\/\/www.bmetallica.de\/#\/schema\/person\/image\/"}}]}},"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P8uhVF-6B","jetpack-related-posts":[{"id":147,"url":"https:\/\/www.bmetallica.de\/index.php\/map-server-debian-8\/","url_meta":{"origin":409,"position":0},"title":"Map-Server Debian 8","author":"bmetallica","date":"15. November 2015","format":false,"excerpt":"Map-Server Debian 8 Vorwort: Was ist ein Mapserver? Mit einem Mapserver wird Kartenmaterial, das zum Beispiel aus Datenbanken abgerufen wird, bereitgestellt ,um es dann in GIS Anwendungen (z.B. Desktop-GIS: QGIS\u00a0\u00a0 WEB-GIS: Mapbender ) darstellen zu lassen. \u00a0 Woraus besteht ein Kartendienst (WMS)? In einem WMS wird die Darstellung eines Karteninhalts\u2026","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":359,"url":"https:\/\/www.bmetallica.de\/index.php\/hochzeitsbilder-upload\/","url_meta":{"origin":409,"position":1},"title":"Hochzeitsbilder-Upload","author":"bmetallica","date":"18. M\u00e4rz 2019","format":false,"excerpt":"Hochzeitsbilder-Upload Zweck des Projektes: Ein Freund hat mich gebeten eine M\u00f6glichkeit zu schaffen, damit seine Hochzeitsg\u00e4ste ihre Bilder mittels Smartphone mit ihm teilen k\u00f6nnen. \u00a0 Implementierte Funktionen: Bilderupload via Wlan Bilderupload via Bluetooth Live-Slideshow der Bilder \u00fcber HDMI Automount f\u00fcr USB-Speichermedien (FAT, FAT32, vFAT und NTFS) Update 29.03.2019: Admin-Webinterface (um\u2026","rel":"","context":"Mit 5 Kommentaren","block_context":{"text":"Mit 5 Kommentaren","link":"https:\/\/www.bmetallica.de\/index.php\/hochzeitsbilder-upload\/#comments"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.bmetallica.de\/wp-content\/uploads\/2019\/03\/hochzeitsbilder.jpg?fit=535%2C765&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":166,"url":"https:\/\/www.bmetallica.de\/index.php\/mediacenter-pi-v2\/","url_meta":{"origin":409,"position":2},"title":"Mediacenter PI V2","author":"bmetallica","date":"8. Dezember 2015","format":false,"excerpt":"Ein Mediacenter mit dem Raspberry PI V2 \u00a0 Was wir brauchen: OSMC Installation (f\u00fcr Windows) Raspberry PI V2 MicroUSB Netzteil (z.B.) MicroSD (z.B.) WlanStick\u00a0(z.B.) HDMI-Kabel\u00a0(z.B.) TV mit HDMI-Eingang \u00a0 Installation unter Windows:\u00a0 Die MicroSD-Karte mit dem PC verbinden (z.B. mit einem USB zu MicroSD Adapter) Die Heruntergeladene \"osmc-installer.exe\" starten Einbau:\u2026","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/92.205.129.62\/bmetallica\/wp-content\/uploads\/2015\/12\/2-300x237.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":271,"url":"https:\/\/www.bmetallica.de\/index.php\/alexa-433-mhz-und-domoticz\/","url_meta":{"origin":409,"position":3},"title":"Alexa, 433 MHz und Domoticz","author":"bmetallica","date":"3. November 2017","format":false,"excerpt":"Alexa, 433 MHz und Domoticz \u00a0 Ziel des Projekts: Ziel des Projekts war es eine kosteng\u00fcnstige M\u00f6glichkeit zu finden, eine sprachgesteuerte Lichtsteuerung innerhalb einer Wohnung zu realisieren. Es sollten dabei keine Cloud-Dienste (ausgenommen der Amazon Cloud zur Spracherkennung) verwendet werden um einen h\u00f6heren Sicherheitsfaktor und eine unabh\u00e4ngigere Umgebung zu schaffen.\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/www.bmetallica.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/92.205.129.62\/bmetallica\/wp-content\/uploads\/2015\/11\/71Wz-aGbLzL._SL1500_-300x300.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":230,"url":"https:\/\/www.bmetallica.de\/index.php\/dba-logger-mit-dem-raspberry-pi\/","url_meta":{"origin":409,"position":4},"title":"db(A) logger mit dem Raspberry PI","author":"bmetallica","date":"15. Februar 2019","format":false,"excerpt":"db(A) logger mit dem Raspberry PI F\u00fcr unser allj\u00e4hrliches Festival ( ROCKFREUNDE.DE ) wollte ich interessehalber mal eine Auswertung des Ger\u00e4uschpegels auf unserem Festivalgel\u00e4nde machen. Daraus entstand dann folgendes Projekt. Ziel ist das speichern und auswerten von Lautst\u00e4rkewerten \u00fcber einen l\u00e4ngeren Zeitraum \u00a0 Was wir ben\u00f6tigen: Raspberry PI V3, Netzteil\u2026","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"dba","src":"https:\/\/i0.wp.com\/bmetallica.de\/wp-content\/uploads\/2017\/02\/dba-1024x327.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":330,"url":"https:\/\/www.bmetallica.de\/index.php\/dauer-speedtest-mit-dem-pi\/","url_meta":{"origin":409,"position":5},"title":"Dauer Speedtest mit dem PI","author":"bmetallica","date":"23. Mai 2018","format":false,"excerpt":"Dauer Speedtest mit dem PI Ziel ist es eine St\u00fcndliche \u00dcbersicht \u00fcber die eigene aktuelle Bandbreite zu bekommen. \u00a0 Dazu wird ben\u00f6tigt: Ein Raspberry PI (Ich empfehle mindestens die Version 2 da eine gewisse Leistung ben\u00f6tigt wird und das Ergebnis ansonsten verf\u00e4lscht werden k\u00f6nnte) 1 SD-Karte min. 8GB Netzteil sowie\u2026","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.bmetallica.de\/index.php\/wp-json\/wp\/v2\/pages\/409"}],"collection":[{"href":"https:\/\/www.bmetallica.de\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bmetallica.de\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bmetallica.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bmetallica.de\/index.php\/wp-json\/wp\/v2\/comments?post=409"}],"version-history":[{"count":33,"href":"https:\/\/www.bmetallica.de\/index.php\/wp-json\/wp\/v2\/pages\/409\/revisions"}],"predecessor-version":[{"id":444,"href":"https:\/\/www.bmetallica.de\/index.php\/wp-json\/wp\/v2\/pages\/409\/revisions\/444"}],"wp:attachment":[{"href":"https:\/\/www.bmetallica.de\/index.php\/wp-json\/wp\/v2\/media?parent=409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}