From d87d509f439b65356e74136d3caa2de876564df5 Mon Sep 17 00:00:00 2001 From: lkristianl Date: Thu, 21 Apr 2022 19:36:44 +0200 Subject: [PATCH] feat(node): Add Fail2Ban in OnPrem security #683 --- config.py | 3 +++ diagrams/onprem/security.py | 6 ++++++ docs/nodes/onprem.md | 1 + resources/onprem/security/fail2ban.png | Bin 0 -> 32935 bytes 4 files changed, 10 insertions(+) create mode 100644 resources/onprem/security/fail2ban.png diff --git a/config.py b/config.py index f527ab6ee..fd7ae3a13 100644 --- a/config.py +++ b/config.py @@ -151,6 +151,9 @@ "Rabbitmq": "RabbitMQ", "Zeromq": "ZeroMQ", }, + "security": { + "Fail2Ban": "fail2ban", + }, "storage": { "Ceph": "CEPH", "CephOsd": "CEPH_OSD", diff --git a/diagrams/onprem/security.py b/diagrams/onprem/security.py index d0447421b..bff96009a 100644 --- a/diagrams/onprem/security.py +++ b/diagrams/onprem/security.py @@ -12,6 +12,10 @@ class Bitwarden(_Security): _icon = "bitwarden.png" +class Fail2Ban(_Security): + _icon = "fail2ban.png" + + class Trivy(_Security): _icon = "trivy.png" @@ -21,3 +25,5 @@ class Vault(_Security): # Aliases + +fail2ban = Fail2Ban diff --git a/docs/nodes/onprem.md b/docs/nodes/onprem.md index 0ec40683a..73635cd4c 100644 --- a/docs/nodes/onprem.md +++ b/docs/nodes/onprem.md @@ -219,6 +219,7 @@ Node classes list of onprem provider. ## onprem.security - **diagrams.onprem.security.Bitwarden** +- **diagrams.onprem.security.Fail2Ban**, **fail2ban** (alias) - **diagrams.onprem.security.Trivy** - **diagrams.onprem.security.Vault** diff --git a/resources/onprem/security/fail2ban.png b/resources/onprem/security/fail2ban.png new file mode 100644 index 0000000000000000000000000000000000000000..58eea952d7d1939a84f248df5a535c334ce28560 GIT binary patch literal 32935 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 literal 0 HcmV?d00001