{"id":2627,"date":"2026-03-27T19:28:25","date_gmt":"2026-03-27T19:28:25","guid":{"rendered":"https:\/\/www.mayit.eu\/?page_id=2627"},"modified":"2026-03-28T23:01:15","modified_gmt":"2026-03-28T23:01:15","slug":"firewallmayit","status":"publish","type":"page","link":"https:\/\/www.mayit.eu\/en\/firewallmayit\/","title":{"rendered":"FirewallMayIT"},"content":{"rendered":"<!doctype html>\n<html lang=\"de\">\n<head>\n  <meta charset=\"utf-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" \/>\n  <title>Projektdokumentation \u2013 YunoHost Firewall Hardening &#038; Secure Network Operations<\/title>\n  <meta name=\"author\" content=\"MayIT\" \/>\n  <meta name=\"description\" content=\"Projektdokumentation der vollst\u00e4ndigen Firewall-H\u00e4rtung einer produktiven YunoHost-Umgebung auf Debian 12 mit Netcup Provider-Firewall, YunoHost Firewall, SSH Hardening, Fail2ban, Validierung, Betrieb, Troubleshooting und Recovery.\" \/>\n  <style>\n    :root{\n      --bg:#0b0f14; --panel:#111827; --panel2:#0f172a;\n      --text:#e5e7eb; --muted:#9ca3af;\n      --accent:#60a5fa; --accent2:#34d399; --warn:#f59e0b; --danger:#fb7185; --ok:#22c55e;\n      --border:#1f2937; --codeborder:#1d2a3a;\n      --shadow: 0 10px 30px rgba(0,0,0,.35);\n      --radius: 16px;\n      --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n      --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Arial, \"Apple Color Emoji\",\"Segoe UI Emoji\";\n    }\n    *{box-sizing:border-box}\n    html{scroll-behavior:smooth}\n    body{\n      margin:0; font-family:var(--sans);\n      background:\n        radial-gradient(1200px 600px at 10% -10%, rgba(96,165,250,.18), transparent 55%),\n        radial-gradient(900px 500px at 80% 0%, rgba(52,211,153,.10), transparent 50%),\n        var(--bg);\n      color:var(--text);\n    }\n    a{color:var(--accent); text-decoration:none}\n    a:hover{text-decoration:underline}\n    .layout{display:flex; min-height:100vh}\n    .toc{\n      position:sticky; top:0; height:100vh; width:360px; min-width:300px;\n      padding:22px 18px;\n      background:linear-gradient(180deg, rgba(17,24,39,.92), rgba(15,23,42,.92));\n      border-right:1px solid var(--border); overflow:auto; backdrop-filter: blur(8px);\n    }\n    .brand{\n      display:flex; gap:10px; align-items:center;\n      padding:10px 10px 14px; border:1px solid var(--border);\n      border-radius:14px; background:rgba(11,18,32,.65); box-shadow:var(--shadow);\n      margin-bottom:14px;\n    }\n    .logo{\n      width:38px; height:38px; border-radius:12px;\n      background:linear-gradient(135deg, rgba(96,165,250,.95), rgba(52,211,153,.95));\n      display:flex; align-items:center; justify-content:center;\n      color:#06101c; font-weight:900;\n    }\n    .brand h1{font-size:14px; margin:0}\n    .brand .sub{font-size:12px; color:var(--muted); margin-top:2px}\n    .pill{\n      display:inline-flex; align-items:center; gap:8px;\n      font-size:12px; color:var(--muted);\n      padding:10px 12px; border:1px solid var(--border);\n      border-radius:999px; background:rgba(11,18,32,.55);\n      margin:10px 8px 0;\n    }\n    .pill b{color:var(--text)}\n    .toc h2{font-size:12px; margin:14px 10px 8px; color:var(--muted); letter-spacing:.08em; text-transform:uppercase}\n    .toc ul{list-style:none; margin:0; padding:0 6px 14px}\n    .toc li{margin:6px 0}\n    .toc a{\n      display:block; padding:8px 10px; border-radius:12px;\n      color:var(--text); border:1px solid transparent;\n    }\n    .toc a:hover{border-color:rgba(96,165,250,.35); background:rgba(96,165,250,.10); text-decoration:none}\n    .main{flex:1; padding:28px 26px 80px}\n    .container{max-width:1120px; margin:0 auto}\n    .hero{\n      padding:22px; border-radius: var(--radius);\n      background: linear-gradient(180deg, rgba(17,24,39,.55), rgba(15,23,42,.35));\n      border:1px solid var(--border); box-shadow: var(--shadow);\n    }\n    .hero h1{font-size:28px; margin:0 0 8px}\n    .hero .meta{display:flex; flex-wrap:wrap; gap:10px; margin-top:12px}\n    .tag{\n      font-size:12px; color:var(--text);\n      padding:8px 12px; border-radius:999px;\n      border:1px solid var(--border); background:rgba(11,18,32,.55);\n    }\n    section{margin-top:18px}\n    .card{\n      padding:18px; border-radius: var(--radius);\n      border:1px solid var(--border);\n      background: rgba(11,18,32,.55);\n      box-shadow: var(--shadow);\n    }\n    .card h3{margin:0 0 10px; font-size:18px}\n    .muted{color:var(--muted)}\n    .small{font-size:12px}\n    .note, .warn, .danger, .ok{\n      border-radius:14px; padding:12px 14px; border:1px solid var(--border);\n      background: rgba(96,165,250,.08);\n    }\n    .warn{background: rgba(245,158,11,.10); border-color: rgba(245,158,11,.25)}\n    .danger{background: rgba(251,113,133,.10); border-color: rgba(251,113,133,.25)}\n    .ok{background: rgba(34,197,94,.10); border-color: rgba(34,197,94,.25)}\n    .hr{height:1px; background:var(--border); margin:14px 0}\n    .grid{display:grid; gap:14px}\n    @media (min-width: 980px){\n      .grid.cols2{grid-template-columns: 1fr 1fr}\n      .grid.cols3{grid-template-columns: 1fr 1fr 1fr}\n    }\n    table{width:100%; border-collapse:separate; border-spacing:0; overflow:hidden; border-radius:14px; border:1px solid var(--border)}\n    th, td{padding:10px; border-bottom:1px solid var(--border); vertical-align:top}\n    th{background:rgba(17,24,39,.55); text-align:left; font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted)}\n    tr:last-child td{border-bottom:none}\n    .codewrap{position:relative; margin-top:10px}\n    pre{\n      margin:0; padding:14px; overflow:auto; border-radius:14px;\n      background:linear-gradient(180deg, rgba(10,15,26,.95), rgba(10,15,26,.85));\n      border:1px solid var(--codeborder); color:var(--text);\n      font-family: var(--mono); font-size:12.8px; line-height:1.45;\n    }\n    .copybtn{\n      position:absolute; top:10px; right:10px;\n      border:1px solid var(--border); background:rgba(15,23,42,.70);\n      color:var(--text); padding:8px 10px; border-radius:12px;\n      cursor:pointer; font-size:12px; display:flex; align-items:center; gap:8px;\n    }\n    .copybtn:hover{border-color:rgba(96,165,250,.40); background:rgba(96,165,250,.12)}\n    .copybtn .dot{width:8px; height:8px; border-radius:99px; background:var(--accent)}\n    .kbd{display:inline-block; padding:2px 8px; border-radius:10px; border:1px solid var(--border); background:rgba(15,23,42,.55); font-family:var(--mono); font-size:12px}\n    .badge{display:inline-flex; align-items:center; gap:8px; padding:8px 10px; border-radius:999px; border:1px solid var(--border); background:rgba(15,23,42,.35); font-size:12px}\n    .badge .b{width:8px;height:8px;border-radius:99px;background:var(--accent2)}\n    .footer{\n      margin-top:18px; padding:16px 18px; border-radius: var(--radius);\n      border:1px solid var(--border); background:rgba(11,18,32,.45); color:var(--muted)\n    }\n    .footer b{color:var(--text)}\n    details{\n      border:1px solid var(--border); border-radius:14px; padding:10px 12px; background:rgba(15,23,42,.25)\n    }\n    summary{cursor:pointer; color:var(--text); font-weight:700}\n    details p, details ul{color:var(--muted)}\n    .print-only{display:none}\n    @media print{\n      body{background:#fff; color:#000}\n      .layout{display:block}\n      .toc{display:none}\n      .hero, .card, .footer, details{box-shadow:none; background:#fff; border:1px solid #ddd}\n      pre{background:#f7f7f7; color:#000; border:1px solid #ddd}\n      .copybtn{display:none}\n      a{color:#000; text-decoration:underline}\n      .print-only{display:block}\n    }\n  <\/style>\n<\/head>\n<body>\n  <div class=\"layout\">\n    <aside class=\"toc\">\n      <div class=\"brand\">\n        <div class=\"logo\">M<\/div>\n        <div>\n          <h1>Projektdokumentation<\/h1>\n          <div class=\"sub\">Firewall \u2022 SSH \u2022 Mail Security \u2022 Autor: <b>MayIT<\/b><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"pill\"><b>Ziel:<\/b> Enterprise-Firewall-Konzept f\u00fcr Debian 12 + YunoHost + Netcup<\/div>\n\n      <h2>Navigation<\/h2>\n      <ul>\n        <li><a href=\"#scope\">Scope &#038; Zielbild<\/a><\/li>\n        <li><a href=\"#architecture\">System- und Sicherheitsarchitektur<\/a><\/li>\n        <li><a href=\"#design\">Firewall-Design &#038; Sicherheitsprinzipien<\/a><\/li>\n        <li><a href=\"#ports\">Port- und Dienstmatrix<\/a><\/li>\n        <li><a href=\"#implementation\">Projektumsetzung<\/a><\/li>\n        <li><a href=\"#ssh\">SSH Hardening<\/a><\/li>\n        <li><a href=\"#fail2ban\">Fail2ban &#038; Angriffserkennung<\/a><\/li>\n        <li><a href=\"#validation\">Validierung &#038; Abnahmekriterien<\/a><\/li>\n        <li><a href=\"#operations\">Betrieb &#038; Aufgabenmodell<\/a><\/li>\n        <li><a href=\"#troubleshooting\">Troubleshooting<\/a><\/li>\n        <li><a href=\"#backup\">Backup, Rollback &#038; Recovery<\/a><\/li>\n        <li><a href=\"#lessons\">Risiken &#038; Lessons Learned<\/a><\/li>\n        <li><a href=\"#appendix\">Anhang<\/a><\/li>\n      <\/ul>\n\n      <h2>Quick Links<\/h2>\n      <ul>\n        <li><a href=\"#matrix\">Port-Matrix<\/a><\/li>\n        <li><a href=\"#phases\">Projektphasen<\/a><\/li>\n        <li><a href=\"#commands\">Kernkommandos<\/a><\/li>\n      <\/ul>\n\n      <div class=\"footer small\">\n        <div><b>Stand:<\/b> 2026-03-27<\/div>\n        <div class=\"hr\"><\/div>\n        <div>Dokument: HTML \u2022 Upload geeignet \u2022 Dark Enterprise Style<\/div>\n      <\/div>\n    <\/aside>\n\n    <main class=\"main\">\n      <div class=\"container\">\n        <div class=\"hero\">\n          <h1>YunoHost Firewall Hardening &#038; Secure Network Operations \u2013 Projektdokumentation<\/h1>\n          <div class=\"muted\">\n            Diese Projektdokumentation beschreibt die Konzeption, Implementierung und betriebliche Absicherung\n            eines mehrschichtigen Firewall- und Sicherheitsmodells f\u00fcr eine produktive YunoHost-Umgebung auf\n            Debian 12. Im Mittelpunkt stehen die Provider-Firewall von Netcup, die lokale YunoHost-Firewall,\n            SSH Hardening, Fail2ban, sichere Rollout-Verfahren, Validierung, Recovery sowie der langfristige\n            Betrieb eines internetexponierten Web-, Mail- und Cloud-Servers.\n          <\/div>\n          <div class=\"meta\">\n            <span class=\"tag\">Autor: MayIT<\/span>\n            <span class=\"tag\">Debian 12 \/ YunoHost<\/span>\n            <span class=\"tag\">Netcup Provider-Firewall<\/span>\n            <span class=\"tag\">SSH &#038; Fail2ban<\/span>\n            <span class=\"tag\">Mail- und Webstack Security<\/span>\n          <\/div>\n        <\/div>\n\n        <section id=\"scope\" class=\"card\">\n          <h3>Scope &#038; Zielbild<\/h3>\n          <div class=\"grid cols2\">\n            <div>\n              <div class=\"note\">\n                <b>Zielbild:<\/b> Aufbau eines robusten, nachvollziehbaren und betriebssicheren\n                Firewall-Konzepts f\u00fcr eine produktive Serverumgebung mit minimaler Angriffsfl\u00e4che,\n                klar definierten Freigaben und reproduzierbaren Recovery-Pfaden.\n              <\/div>\n              <div class=\"hr\"><\/div>\n              <ul>\n                <li><b>Au\u00dfenkante absichern:<\/b> Unerw\u00fcnschten Verkehr bereits vor dem Server filtern.<\/li>\n                <li><b>Dienste gezielt ver\u00f6ffentlichen:<\/b> Nur notwendige Ports f\u00fcr Web, Mail und Administration offenhalten.<\/li>\n                <li><b>Zugriffe h\u00e4rten:<\/b> SSH ausschlie\u00dflich kontrolliert und m\u00f6glichst schl\u00fcsselbasiert betreiben.<\/li>\n                <li><b>Angriffe aktiv erkennen:<\/b> Wiederholte Authentifizierungsfehler automatisiert blockieren.<\/li>\n                <li><b>Betrieb stabil halten:<\/b> Jede \u00c4nderung validierbar, dokumentiert und rollbackf\u00e4hig umsetzen.<\/li>\n              <\/ul>\n            <\/div>\n            <div>\n              <div class=\"ok\">\n                <b>Projektziel:<\/b> Die Umgebung soll nicht nur \u201efunktionieren\u201c, sondern auf Enterprise-Niveau\n                nachvollziehbar abgesichert werden. Dazu geh\u00f6rt eine technische Trennung der Sicherheitslayer,\n                eine definierte Reihenfolge f\u00fcr \u00c4nderungen und ein klarer Notfallpfad ohne Lockout-Risiko.\n              <\/div>\n              <div class=\"hr\"><\/div>\n              <div class=\"warn\">\n                <b>Abgrenzung:<\/b> Diese Dokumentation ist bewusst als <b>Projektdokumentation<\/b> aufgebaut.\n                Sie beschreibt Architektur, Zielzustand, Umsetzung, Betrieb und Risiken. Das operative\n                Schritt-f\u00fcr-Schritt-Handeln verbleibt im zugeh\u00f6rigen Runbook.\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/section>\n\n        <section id=\"architecture\" class=\"card\">\n          <h3>System- und Sicherheitsarchitektur<\/h3>\n          <div class=\"grid cols2\">\n            <div>\n              <div class=\"badge\"><span class=\"b\"><\/span><b>Architekturprinzip:<\/b> au\u00dfen filtern \u2022 lokal kontrollieren \u2022 aktiv \u00fcberwachen<\/div>\n              <div class=\"hr\"><\/div>\n              <table>\n                <thead><tr><th>Layer<\/th><th>Komponente<\/th><th>Funktion<\/th><\/tr><\/thead>\n                <tbody>\n                  <tr><td>Provider Edge<\/td><td>Netcup Firewall<\/td><td>Vorfilterung eingehender Verbindungen vor Erreichen des Servers<\/td><\/tr>\n                  <tr><td>Host Firewall<\/td><td>YunoHost Firewall<\/td><td>Zentrale lokale Portfreigaben f\u00fcr ver\u00f6ffentlichte Dienste<\/td><\/tr>\n                  <tr><td>Access Layer<\/td><td>SSH Hardening<\/td><td>Absicherung administrativer Zug\u00e4nge gegen Missbrauch und Fehlkonfiguration<\/td><\/tr>\n                  <tr><td>Abuse Protection<\/td><td>Fail2ban<\/td><td>Erkennung und tempor\u00e4re Sperre wiederholter Fehlversuche<\/td><\/tr>\n                  <tr><td>Applications<\/td><td>nginx, Nextcloud, SOGo, Postfix, Dovecot<\/td><td>Produktive Web-, Mail- und Groupware-Dienste<\/td><\/tr>\n                  <tr><td>Operations<\/td><td>Monitoring, Logs, Rollback<\/td><td>Validierung, Fehleranalyse und Wiederherstellung<\/td><\/tr>\n                <\/tbody>\n              <\/table>\n            <\/div>\n            <div>\n              <div class=\"note\">\n                <b>Kernidee:<\/b> Sicherheitsrelevante Verantwortung wird bewusst auf mehrere Ebenen verteilt.\n                Die Provider-Firewall reduziert den Verkehr an der Au\u00dfenkante, die Host-Firewall bildet den\n                dienstorientierten Sollzustand ab und Fail2ban erg\u00e4nzt die Architektur um eine dynamische\n                Reaktionsschicht gegen missbr\u00e4uchliche Anmeldeversuche.\n              <\/div>\n              <div class=\"hr\"><\/div>\n              <div class=\"codewrap\">\n                <button class=\"copybtn\" data-copy=\"#arch1\"><span class=\"dot\"><\/span>Copy<\/button>\n                <pre id=\"arch1\">Internet\n   \u2502\n   \u25bc\nNetcup Provider-Firewall\n   \u2502\n   \u25bc\nDebian 12 \/ YunoHost Host-Firewall\n   \u2502\n   \u251c\u2500\u2500 SSH (Administration)\n   \u251c\u2500\u2500 nginx \/ HTTPS (Web, Portal, Nextcloud, Groupware)\n   \u251c\u2500\u2500 Postfix (SMTP \/ Submission)\n   \u2514\u2500\u2500 Dovecot (IMAPS)\n   \u2502\n   \u25bc\nFail2ban \/ Logging \/ Monitoring \/ Rollback<\/pre>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/section>\n\n        <section id=\"design\" class=\"card\">\n          <h3>Firewall-Design &#038; Sicherheitsprinzipien<\/h3>\n          <div class=\"grid cols3\">\n            <div class=\"note\">\n              <b>Default Deny<\/b><br>\n              Alles, was f\u00fcr den produktiven Betrieb nicht ausdr\u00fccklich ben\u00f6tigt wird, bleibt geschlossen.\n            <\/div>\n            <div class=\"note\">\n              <b>Least Privilege<\/b><br>\n              Ports, Protokolle und Verwaltungszug\u00e4nge werden auf den kleinstm\u00f6glichen Bedarf begrenzt.\n            <\/div>\n            <div class=\"note\">\n              <b>Safe Rollout<\/b><br>\n              \u00c4nderungen erfolgen schrittweise, mit Baseline, Validierung und dokumentiertem R\u00fcckweg.\n            <\/div>\n          <\/div>\n          <div class=\"hr\"><\/div>\n          <div class=\"grid cols2\">\n            <div>\n              <div class=\"note\"><b>Entwurfsziele<\/b><\/div>\n              <ul>\n                <li>Keine konkurrierenden lokalen Firewall-Werkzeuge parallel zum YunoHost-Management.<\/li>\n                <li>Klare Zuordnung, welche Ebene welchen Schutzbeitrag leistet.<\/li>\n                <li>Minimierung der Bedienfehler bei produktiven \u00c4nderungen.<\/li>\n                <li>Vermeidung unn\u00f6tiger Sonderregeln, solange Standardmechanismen ausreichend sind.<\/li>\n                <li>Dokumentierbarkeit aller Freigaben f\u00fcr sp\u00e4tere Audits und Reviews.<\/li>\n              <\/ul>\n            <\/div>\n            <div>\n              <div class=\"danger\">\n                <b>Wesentliches Projektrisiko:<\/b> Die gr\u00f6\u00dfte Gefahr besteht nicht im fehlenden Filter,\n                sondern in einer unkontrollierten H\u00e4rtung. Eine zu fr\u00fch versch\u00e4rfte SSH-Regel kann den\n                Server administrativ unerreichbar machen. Deshalb war die Reihenfolge der Umsetzung ein\n                zentrales Designkriterium des Projekts.\n              <\/div>\n              <div class=\"hr\"><\/div>\n              <div class=\"ok\">\n                <b>Ergebnis des Designs:<\/b> Ein kontrollierbares Sicherheitsmodell, das sowohl Schutzwirkung\n                als auch Betriebsstabilit\u00e4t ber\u00fccksichtigt und den produktiven Mail- und Webbetrieb nicht gef\u00e4hrdet.\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/section>\n\n        <section id=\"ports\" class=\"card\">\n          <h3>Port- und Dienstmatrix<\/h3>\n          <table id=\"matrix\">\n            <thead><tr><th>Port<\/th><th>Protokoll<\/th><th>Dienst<\/th><th>Notwendigkeit<\/th><th>Projektbewertung<\/th><\/tr><\/thead>\n            <tbody>\n              <tr><td>22<\/td><td>TCP<\/td><td>SSH Administration<\/td><td>Erforderlich<\/td><td>Freigabe nur f\u00fcr Administration, perspektivisch weiter eingrenzbar<\/td><\/tr>\n              <tr><td>80<\/td><td>TCP<\/td><td>HTTP \/ ACME \/ Redirect<\/td><td>Erforderlich<\/td><td>Notwendig f\u00fcr Web und Zertifikatserneuerung<\/td><\/tr>\n              <tr><td>443<\/td><td>TCP<\/td><td>HTTPS<\/td><td>Erforderlich<\/td><td>Zentraler Port f\u00fcr Web-, Groupware- und Cloud-Zugriffe<\/td><\/tr>\n              <tr><td>25<\/td><td>TCP<\/td><td>SMTP<\/td><td>Erforderlich<\/td><td>Mailserver-Kommunikation zwischen Systemen<\/td><\/tr>\n              <tr><td>587<\/td><td>TCP<\/td><td>SMTP Submission<\/td><td>Erforderlich<\/td><td>Authentifizierter Mailversand f\u00fcr Clients<\/td><\/tr>\n              <tr><td>993<\/td><td>TCP<\/td><td>IMAPS<\/td><td>Erforderlich<\/td><td>Verschl\u00fcsselter Mailabruf f\u00fcr Benutzerger\u00e4te<\/td><\/tr>\n              <tr><td>465<\/td><td>TCP<\/td><td>SMTPS<\/td><td>Optional<\/td><td>Nur bei bewusstem Bedarf, nicht als Standardfreigabe<\/td><\/tr>\n              <tr><td>4190<\/td><td>TCP<\/td><td>ManageSieve<\/td><td>Optional<\/td><td>Nur freigeben, wenn serverseitige Sieve-Regeln aktiv genutzt werden<\/td><\/tr>\n            <\/tbody>\n          <\/table>\n          <div class=\"hr\"><\/div>\n          <div class=\"warn\">\n            <b>Projektentscheidung:<\/b> Das finale Standardbild konzentriert sich auf\n            <span class=\"kbd\">22<\/span>, <span class=\"kbd\">80<\/span>, <span class=\"kbd\">443<\/span>,\n            <span class=\"kbd\">25<\/span>, <span class=\"kbd\">587<\/span> und <span class=\"kbd\">993<\/span>.\n            Zus\u00e4tzliche Ports werden ausschlie\u00dflich anlassbezogen und dokumentiert ver\u00f6ffentlicht.\n          <\/div>\n        <\/section>\n\n        <section id=\"implementation\" class=\"card\">\n          <h3>Projektumsetzung<\/h3>\n          <div id=\"phases\" class=\"grid cols2\">\n            <div>\n              <div class=\"note\"><b>Projektphasen<\/b><\/div>\n              <table style=\"margin-top:12px\">\n                <thead><tr><th>Phase<\/th><th>Inhalt<\/th><th>Ziel<\/th><\/tr><\/thead>\n                <tbody>\n                  <tr><td>Vorbereitung<\/td><td>SSH-Sessions, SCP-Zugriff, Baseline, Dienstsicht<\/td><td>\u00c4nderungen kontrollierbar machen<\/td><\/tr>\n                  <tr><td>Ist-Zustand<\/td><td>Ports, Firewall-Regeln, Fail2ban-Status dokumentieren<\/td><td>Rollback und Vergleichsbasis schaffen<\/td><\/tr>\n                  <tr><td>Provider-Layer<\/td><td>Netcup-Freigaben definieren<\/td><td>Au\u00dfenkante h\u00e4rten<\/td><\/tr>\n                  <tr><td>Host-Layer<\/td><td>YunoHost-Firewall angleichen<\/td><td>Lokalen Sollzustand herstellen<\/td><\/tr>\n                  <tr><td>Access Hardening<\/td><td>SSH absichern<\/td><td>Administrativen Zugang sch\u00fctzen<\/td><\/tr>\n                  <tr><td>Abwehrschicht<\/td><td>Fail2ban validieren und erweitern<\/td><td>Angriffe automatisiert begrenzen<\/td><\/tr>\n                  <tr><td>Validierung<\/td><td>Web, Mail, SSH und Logs testen<\/td><td>Produktionsf\u00e4higkeit sicherstellen<\/td><\/tr>\n                <\/tbody>\n              <\/table>\n            <\/div>\n            <div>\n              <div class=\"note\"><b>Technischer Ansatz<\/b><\/div>\n              <ul>\n                <li>Die Provider-Firewall wurde als erste \u00e4u\u00dfere Kontrollinstanz positioniert.<\/li>\n                <li>Die YunoHost-Firewall bildet die lokale Referenz f\u00fcr ver\u00f6ffentlichte Dienste.<\/li>\n                <li>Der SSH-Dienst wurde bewusst erst nach erfolgreichem Key-Test weiter geh\u00e4rtet.<\/li>\n                <li>Fail2ban erg\u00e4nzt die statischen Regeln um eine dynamische Reaktionsf\u00e4higkeit.<\/li>\n                <li>Jede Phase wurde mit separater Validierung und offen gehaltener R\u00fcckfalloption geplant.<\/li>\n              <\/ul>\n              <div class=\"hr\"><\/div>\n              <div class=\"ok\">\n                <b>Projektmethodik:<\/b> Nicht maximale H\u00e4rte in einem Schritt, sondern stabile Sicherheit\n                in einer kontrollierten Abfolge. Diese Vorgehensweise war entscheidend, um produktive\n                Services wie Nextcloud, SOGo, Postfix und Dovecot durchgehend verf\u00fcgbar zu halten.\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/section>\n\n        <section id=\"ssh\" class=\"card\">\n          <h3>SSH Hardening<\/h3>\n          <div class=\"grid cols2\">\n            <div>\n              <div class=\"note\"><b>Zielsetzung<\/b><\/div>\n              <ul>\n                <li>Reduktion des Risikos f\u00fcr unautorisierte administrative Zugriffe.<\/li>\n                <li>Umstellung auf schl\u00fcsselbasierte Authentifizierung.<\/li>\n                <li>Deaktivierung unn\u00f6tiger oder unsicherer Standardpfade.<\/li>\n                <li>Beibehaltung eines sicheren Notfallzugangs w\u00e4hrend der Umstellung.<\/li>\n              <\/ul>\n              <div class=\"hr\"><\/div>\n              <table>\n                <thead><tr><th>Ma\u00dfnahme<\/th><th>Sicherheitsnutzen<\/th><\/tr><\/thead>\n                <tbody>\n                  <tr><td>PermitRootLogin no<\/td><td>Kein direkter Root-Zugang von au\u00dfen<\/td><\/tr>\n                  <tr><td>PasswordAuthentication no<\/td><td>Keine Passwort-Logins mehr m\u00f6glich<\/td><\/tr>\n                  <tr><td>PubkeyAuthentication yes<\/td><td>Schl\u00fcsselbasierte Anmeldung erzwingen<\/td><\/tr>\n                  <tr><td>MaxAuthTries 3<\/td><td>Begrenzung von Login-Versuchen<\/td><\/tr>\n                  <tr><td>LoginGraceTime 30<\/td><td>Reduktion langer offener Auth-Sessions<\/td><\/tr>\n                <\/tbody>\n              <\/table>\n            <\/div>\n            <div>\n              <div class=\"warn\">\n                <b>Projektkritischer Punkt:<\/b> SSH wurde nicht isoliert \u201ehart geschaltet\u201c, sondern nur\n                nach erfolgreicher Pr\u00fcfung einer funktionierenden Key-Anmeldung und mit mindestens zwei\n                offenen Sessions. Diese Vorgehensweise war essenziell, um ein Lockout-Szenario auszuschlie\u00dfen.\n              <\/div>\n              <div class=\"hr\"><\/div>\n              <div class=\"codewrap\">\n                <button class=\"copybtn\" data-copy=\"#ssh1\"><span class=\"dot\"><\/span>Copy<\/button>\n                <pre id=\"ssh1\"># Beispiele der im Projekt ber\u00fccksichtigten SSH-H\u00e4rtung\nPermitRootLogin no\nPasswordAuthentication no\nPubkeyAuthentication yes\nChallengeResponseAuthentication no\nKbdInteractiveAuthentication no\nMaxAuthTries 3\nLoginGraceTime 30<\/pre>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/section>\n\n        <section id=\"fail2ban\" class=\"card\">\n          <h3>Fail2ban &#038; Angriffserkennung<\/h3>\n          <div class=\"grid cols2\">\n            <div>\n              <div class=\"note\"><b>Funktion im Projekt<\/b><\/div>\n              <p class=\"muted\">\n                Fail2ban wurde als dynamische Schutzschicht betrachtet. W\u00e4hrend die Firewall nur die\n                grunds\u00e4tzliche Erreichbarkeit steuert, reagiert Fail2ban auf auff\u00e4lliges Verhalten und\n                sch\u00fctzt besonders exponierte Authentifizierungsdienste gegen wiederholte Missbrauchsversuche.\n              <\/p>\n              <table style=\"margin-top:12px\">\n                <thead><tr><th>Jail<\/th><th>Schutzzweck<\/th><\/tr><\/thead>\n                <tbody>\n                  <tr><td>sshd<\/td><td>Schutz gegen SSH-Bruteforce<\/td><\/tr>\n                  <tr><td>nginx-http-auth<\/td><td>Schutz f\u00fcr HTTP-Authentifizierungen<\/td><\/tr>\n                  <tr><td>postfix \/ sasl<\/td><td>Schutz gegen Missbrauch des Mailversands<\/td><\/tr>\n                  <tr><td>dovecot<\/td><td>Schutz f\u00fcr Mailabruf und Login-Fehler<\/td><\/tr>\n                  <tr><td>yunohost \/ yunohost-portal<\/td><td>Schutz f\u00fcr Portallogins und Verwaltungsoberfl\u00e4chen<\/td><\/tr>\n                  <tr><td>recidive<\/td><td>L\u00e4ngere Sperren f\u00fcr Wiederholungst\u00e4ter<\/td><\/tr>\n                <\/tbody>\n              <\/table>\n            <\/div>\n            <div>\n              <div class=\"ok\">\n                <b>Mehrwert:<\/b> Durch Fail2ban wurde die Architektur von einem rein statischen Filtermodell\n                zu einem adaptiven Sicherheitsmodell erweitert. Besonders bei SSH-, Mail- und Web-Logins\n                verbessert dies die Widerstandsf\u00e4higkeit der Umgebung erheblich.\n              <\/div>\n              <div class=\"hr\"><\/div>\n              <div class=\"codewrap\">\n                <button class=\"copybtn\" data-copy=\"#f2b1\"><span class=\"dot\"><\/span>Copy<\/button>\n                <pre id=\"f2b1\">sudo systemctl enable --now fail2ban\nsudo fail2ban-client status\nsudo fail2ban-client status sshd\nsudo fail2ban-client status postfix\nsudo fail2ban-client status dovecot<\/pre>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/section>\n\n        <section id=\"validation\" class=\"card\">\n          <h3>Validierung &#038; Abnahmekriterien<\/h3>\n          <table>\n            <thead><tr><th>Pr\u00fcfbereich<\/th><th>Pr\u00fcfmethode<\/th><th>Abnahmekriterium<\/th><\/tr><\/thead>\n            <tbody>\n              <tr><td>SSH Zugriff<\/td><td>Neue Session mit Key \u00f6ffnen<\/td><td>Login stabil, keine Passwortabh\u00e4ngigkeit<\/td><\/tr>\n              <tr><td>Webzugriff<\/td><td>HTTPS per Browser und curl testen<\/td><td>Portale, Webseiten und Cloud-Dienste erreichbar<\/td><\/tr>\n              <tr><td>Mailbetrieb<\/td><td>SMTP \/ Submission \/ IMAPS pr\u00fcfen<\/td><td>Versand und Abruf ohne Firewall-Konflikte<\/td><\/tr>\n              <tr><td>Firewall-Sollzustand<\/td><td>Regellisten und Listener vergleichen<\/td><td>Nur freigegebene Dienste sichtbar<\/td><\/tr>\n              <tr><td>Fail2ban<\/td><td>Jails und Status pr\u00fcfen<\/td><td>Abwehrmechanismen aktiv und fehlerfrei<\/td><\/tr>\n              <tr><td>Logs<\/td><td>Journal- und Dienstlogs kontrollieren<\/td><td>Keine unerwarteten Fehler nach Umstellung<\/td><\/tr>\n            <\/tbody>\n          <\/table>\n          <div class=\"hr\"><\/div>\n          <div class=\"codewrap\">\n            <button class=\"copybtn\" data-copy=\"#val1\"><span class=\"dot\"><\/span>Copy<\/button>\n            <pre id=\"val1\">sudo ss -tulpen\nsudo yunohost firewall list\nsudo fail2ban-client status\nsudo systemctl status ssh nginx postfix dovecot fail2ban --no-pager\ncurl -I https:\/\/mayit.eu\ncurl -I https:\/\/mitcloud.mayit.eu<\/pre>\n          <\/div>\n        <\/section>\n\n        <section id=\"operations\" class=\"card\">\n          <h3>Betrieb &#038; Aufgabenmodell<\/h3>\n          <div class=\"grid cols3\">\n            <div class=\"note\">\n              <b>Daily<\/b><br>\n              <ul>\n                <li>Pr\u00fcfung von SSH-, Web- und Mail-Erreichbarkeit<\/li>\n                <li>Kontrolle von Fail2ban und auff\u00e4lligen Bans<\/li>\n                <li>Sichtung aktueller Sicherheits- und Dienstlogs<\/li>\n                <li>Plausibilisierung unerwarteter Fehlerbilder<\/li>\n              <\/ul>\n            <\/div>\n            <div class=\"note\">\n              <b>Weekly<\/b><br>\n              <ul>\n                <li>Review der offenen Ports und Listener<\/li>\n                <li>Pr\u00fcfung, ob optionale Freigaben noch erforderlich sind<\/li>\n                <li>Analyse wiederkehrender Angriffsquellen<\/li>\n                <li>Kontrolle der Firewall-Dokumentation nach \u00c4nderungen<\/li>\n              <\/ul>\n            <\/div>\n            <div class=\"note\">\n              <b>Monthly<\/b><br>\n              <ul>\n                <li>Review des SSH-H\u00e4rtungsstands<\/li>\n                <li>\u00dcberpr\u00fcfung des Recovery-Pfads<\/li>\n                <li>Abgleich von Baseline und aktuellem Zustand<\/li>\n                <li>Strategischer Ausbau, z. B. VPN oder weitere Zugangseinschr\u00e4nkung<\/li>\n              <\/ul>\n            <\/div>\n          <\/div>\n          <div class=\"hr\"><\/div>\n          <div class=\"warn\">\n            <b>Betriebsprinzip:<\/b> Firewall-\u00c4nderungen werden als kontrollierte Changes behandelt.\n            Das bedeutet: Baseline vorab sichern, \u00c4nderung klar begrenzen, sofort validieren,\n            Notfallpfad bereithalten und das Ergebnis dokumentieren.\n          <\/div>\n        <\/section>\n\n        <section id=\"troubleshooting\" class=\"card\">\n          <h3>Troubleshooting<\/h3>\n          <div class=\"grid cols2\">\n            <div>\n              <div class=\"note\"><b>Typische Fehlerbilder<\/b><\/div>\n              <ul>\n                <li>SSH-Zugang funktioniert in bestehender, aber nicht in neuer Session.<\/li>\n                <li>Webdienste reagieren lokal, aber nicht aus dem Internet.<\/li>\n                <li>Mailabruf oder Submission scheitern nach Regel\u00e4nderungen.<\/li>\n                <li>Fail2ban l\u00e4uft, aber ein ben\u00f6tigter Jail ist nicht aktiv.<\/li>\n                <li>Zus\u00e4tzliche manuelle Regeln kollidieren mit dem YunoHost-Management.<\/li>\n              <\/ul>\n            <\/div>\n            <div>\n              <div class=\"note\"><b>Systematische Diagnose<\/b><\/div>\n              <ol>\n                <li>Provider-Firewall und Host-Firewall logisch getrennt pr\u00fcfen.<\/li>\n                <li>Listener mit dem gew\u00fcnschten Portbild vergleichen.<\/li>\n                <li>Journale von SSH, nginx, Postfix, Dovecot und Fail2ban auswerten.<\/li>\n                <li>Zuletzt gesetzte Sonderregeln kritisch hinterfragen und bei Bedarf entfernen.<\/li>\n                <li>Erst nach isolierter Fehlerursache weitere H\u00e4rtungsschritte fortsetzen.<\/li>\n              <\/ol>\n            <\/div>\n          <\/div>\n          <div class=\"hr\"><\/div>\n          <div class=\"codewrap\">\n            <button class=\"copybtn\" data-copy=\"#tr1\"><span class=\"dot\"><\/span>Copy<\/button>\n            <pre id=\"tr1\">sudo ss -tulpen\nsudo yunohost firewall list\nsudo journalctl -u ssh --since \"1 hour ago\" --no-pager | tail -n 100\nsudo journalctl -u nginx -u postfix -u dovecot --since \"1 hour ago\" --no-pager | tail -n 100\nsudo journalctl -u fail2ban --since \"1 hour ago\" --no-pager | tail -n 100<\/pre>\n          <\/div>\n        <\/section>\n\n        <section id=\"backup\" class=\"card\">\n          <h3>Backup, Rollback &#038; Recovery<\/h3>\n          <div class=\"grid cols2\">\n            <div>\n              <div class=\"danger\"><b>Warum dieser Bereich projektkritisch ist<\/b><\/div>\n              <p class=\"muted\">\n                Sicherheits\u00e4nderungen an Firewall und SSH wirken direkt auf die Erreichbarkeit des Systems.\n                Deshalb war ein belastbarer Rollback-Pfad kein optionaler Komfort, sondern fester Bestandteil\n                des Projektdesigns.\n              <\/p>\n              <ul>\n                <li>Vor Beginn wurde der Ist-Zustand von Regeln, Ports und Konfiguration gesichert.<\/li>\n                <li>Konfigurations\u00e4nderungen wurden nur mit offener R\u00fcckfalloption umgesetzt.<\/li>\n                <li>Bestehende SSH-Sessions blieben bis zur erfolgreichen Abnahme ge\u00f6ffnet.<\/li>\n                <li>Problematische Sonderregeln mussten gezielt entfernbar bleiben.<\/li>\n              <\/ul>\n            <\/div>\n            <div>\n              <div class=\"note\"><b>Recovery-Bausteine<\/b><\/div>\n              <table style=\"margin-top:12px\">\n                <thead><tr><th>Baustein<\/th><th>Zweck<\/th><\/tr><\/thead>\n                <tbody>\n                  <tr><td>SSH-Konfigurationsbackup<\/td><td>R\u00fcckkehr auf funktionierenden Zustand<\/td><\/tr>\n                  <tr><td>iptables \/ nft Baseline<\/td><td>Vergleich und gezieltes Zur\u00fccksetzen<\/td><\/tr>\n                  <tr><td>Netcup SCP Zugriff<\/td><td>Externe Korrektur am Provider-Layer<\/td><\/tr>\n                  <tr><td>Offene Session<\/td><td>Administrative Rettung ohne Neuverbindung<\/td><\/tr>\n                  <tr><td>YunoHost Reload<\/td><td>Lokale Regeln konsistent neu anwenden<\/td><\/tr>\n                <\/tbody>\n              <\/table>\n              <div class=\"codewrap\">\n                <button class=\"copybtn\" data-copy=\"#bk1\"><span class=\"dot\"><\/span>Copy<\/button>\n                <pre id=\"bk1\">mkdir -p ~\/firewall-baseline\nsudo yunohost firewall list > ~\/firewall-baseline\/yunohost-firewall-before.txt\nsudo ss -tulpen > ~\/firewall-baseline\/listening-ports-before.txt\nsudo iptables-save > ~\/firewall-baseline\/iptables-before.rules\nsudo cp \/etc\/ssh\/sshd_config \/etc\/ssh\/sshd_config.bak.$(date +%F-%H%M)<\/pre>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/section>\n\n        <section id=\"lessons\" class=\"card\">\n          <h3>Risiken &#038; Lessons Learned<\/h3>\n          <div class=\"grid cols2\">\n            <div>\n              <div class=\"warn\"><b>Wesentliche Projektrisiken<\/b><\/div>\n              <ul>\n                <li>Lockout durch zu fr\u00fche SSH-Versch\u00e4rfung.<\/li>\n                <li>Fehlannahmen \u00fcber die tats\u00e4chlich ben\u00f6tigten Mail-Ports.<\/li>\n                <li>Parallelbetrieb unterschiedlicher Firewall-Mechanismen.<\/li>\n                <li>Unzureichende Trennung zwischen Provider- und Host-Layer bei der Fehlersuche.<\/li>\n              <\/ul>\n            <\/div>\n            <div>\n              <div class=\"ok\"><b>Erkenntnisse aus dem Projekt<\/b><\/div>\n              <ul>\n                <li>Mehr Sicherheit entsteht durch saubere Architektur, nicht durch unkoordinierte H\u00e4rte.<\/li>\n                <li>Rollback-F\u00e4higkeit ist Teil der Sicherheitsqualit\u00e4t.<\/li>\n                <li>Port-Minimierung vereinfacht sowohl Schutz als auch Betrieb.<\/li>\n                <li>Fail2ban erg\u00e4nzt die Firewall sinnvoll, ersetzt sie aber nicht.<\/li>\n                <li>Kontrollierte Changes reduzieren das reale Betriebsrisiko erheblich.<\/li>\n              <\/ul>\n            <\/div>\n          <\/div>\n        <\/section>\n\n        <section id=\"appendix\" class=\"card\">\n          <h3>Anhang<\/h3>\n          <table id=\"commands\">\n            <thead><tr><th>Bereich<\/th><th>Kernkommandos \/ Bezug<\/th><\/tr><\/thead>\n            <tbody>\n              <tr><td>Listener<\/td><td><span class=\"kbd\">ss -tulpen<\/span><\/td><\/tr>\n              <tr><td>YunoHost Firewall<\/td><td><span class=\"kbd\">sudo yunohost firewall list<\/span> \u2022 <span class=\"kbd\">sudo yunohost firewall reload<\/span><\/td><\/tr>\n              <tr><td>SSH<\/td><td><span class=\"kbd\">\/etc\/ssh\/sshd_config<\/span> \u2022 <span class=\"kbd\">sudo sshd -t<\/span><\/td><\/tr>\n              <tr><td>Fail2ban<\/td><td><span class=\"kbd\">sudo fail2ban-client status<\/span> \u2022 <span class=\"kbd\">sudo journalctl -u fail2ban<\/span><\/td><\/tr>\n              <tr><td>iptables<\/td><td><span class=\"kbd\">sudo iptables -L -n -v &#8211;line-numbers<\/span> \u2022 <span class=\"kbd\">sudo iptables-save<\/span><\/td><\/tr>\n              <tr><td>Web \/ Mail Logs<\/td><td><span class=\"kbd\">sudo journalctl -u nginx -u postfix -u dovecot<\/span><\/td><\/tr>\n              <tr><td>Diagnose<\/td><td><span class=\"kbd\">sudo yunohost diagnosis show &#8211;issues &#8211;human-readable<\/span><\/td><\/tr>\n            <\/tbody>\n          <\/table>\n\n          <div class=\"footer\">\n            <b>Autor:<\/b> MayIT \u2022 <b>Dokumenttyp:<\/b> Projektdokumentation \u2022 <b>Projekt:<\/b> YunoHost Firewall Hardening &#038; Secure Network Operations\n          <\/div>\n        <\/section>\n\n        <div class=\"print-only\">Autor: MayIT \u2013 Projektdokumentation YunoHost Firewall Hardening<\/div>\n      <\/div>\n    <\/main>\n  <\/div>\n\n  <script>\n    function copyText(text){\n      if(navigator.clipboard && window.isSecureContext){\n        return navigator.clipboard.writeText(text);\n      }\n      return new Promise((resolve, reject)=>{\n        try{\n          const ta = document.createElement('textarea');\n          ta.value = text;\n          ta.style.position = 'fixed';\n          ta.style.left = '-9999px';\n          ta.style.top = '0';\n          document.body.appendChild(ta);\n          ta.focus();\n          ta.select();\n          const ok = document.execCommand('copy');\n          document.body.removeChild(ta);\n          ok ? resolve() : reject();\n        } catch(e){ reject(e); }\n      });\n    }\n    document.querySelectorAll('.copybtn').forEach(btn=>{\n      btn.addEventListener('click', async ()=>{\n        const sel = btn.getAttribute('data-copy');\n        const pre = document.querySelector(sel);\n        if(!pre) return;\n        const text = pre.innerText.replace(\/\\u00a0\/g,' ');\n        const old = btn.innerHTML;\n        try{\n          await copyText(text);\n          btn.innerHTML = '<span class=\"dot\" style=\"background: var(--accent2)\"><\/span>Copied';\n          setTimeout(()=>btn.innerHTML = old, 1100);\n        } catch(e){\n          btn.innerHTML = '<span class=\"dot\" style=\"background: var(--warn)\"><\/span>Copy failed';\n          setTimeout(()=>btn.innerHTML = old, 1400);\n        }\n      });\n    });\n  <\/script>\n<\/body>\n<\/html>","protected":false},"excerpt":{"rendered":"<p>Projektdokumentation \u2013 YunoHost Firewall Hardening &#038; Secure Network Operations M Projektdokumentation Firewall \u2022 SSH \u2022 Mail Security \u2022 Autor: MayIT Ziel: Enterprise-Firewall-Konzept f\u00fcr Debian 12 + YunoHost + Netcup Navigation Scope &#038; Zielbild System- und Sicherheitsarchitektur Firewall-Design &#038; Sicherheitsprinzipien Port- und Dienstmatrix Projektumsetzung SSH Hardening Fail2ban &#038; Angriffserkennung Validierung &#038; Abnahmekriterien Betrieb &#038; Aufgabenmodell Troubleshooting [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"normal-width-container","site-content-style":"unboxed","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2627","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false},"uagb_author_info":{"display_name":"MIT","author_link":"https:\/\/www.mayit.eu\/en\/author\/markus_\/"},"uagb_comment_info":0,"uagb_excerpt":"Projektdokumentation \u2013 YunoHost Firewall Hardening &#038; Secure Network Operations M Projektdokumentation Firewall \u2022 SSH \u2022 Mail Security \u2022 Autor: MayIT Ziel: Enterprise-Firewall-Konzept f\u00fcr Debian 12 + YunoHost + Netcup Navigation Scope &#038; Zielbild System- und Sicherheitsarchitektur Firewall-Design &#038; Sicherheitsprinzipien Port- und Dienstmatrix Projektumsetzung SSH Hardening Fail2ban &#038; Angriffserkennung Validierung &#038; Abnahmekriterien Betrieb &#038; Aufgabenmodell Troubleshooting&hellip;","_links":{"self":[{"href":"https:\/\/www.mayit.eu\/en\/wp-json\/wp\/v2\/pages\/2627","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mayit.eu\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mayit.eu\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mayit.eu\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mayit.eu\/en\/wp-json\/wp\/v2\/comments?post=2627"}],"version-history":[{"count":1,"href":"https:\/\/www.mayit.eu\/en\/wp-json\/wp\/v2\/pages\/2627\/revisions"}],"predecessor-version":[{"id":2628,"href":"https:\/\/www.mayit.eu\/en\/wp-json\/wp\/v2\/pages\/2627\/revisions\/2628"}],"wp:attachment":[{"href":"https:\/\/www.mayit.eu\/en\/wp-json\/wp\/v2\/media?parent=2627"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}