AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-310762

nbonniot's questions

Martin Hope
nbonniot
Asked: 2021-07-13 05:34:24 +0800 CST

CentOS 7 上的 Fail2ban 使用 Docker 驱动的 Traefik 禁令 OK,无需添加 iptables 规则

  • 0

我使用“经典”配置设置了一个由 Docker 引擎在 Swarm 模式下运行的 Traefik 实例(见下文,为简洁起见,我只放置了相关的 [to me] 部分。如果需要,请随时询问更多详细信息)。

已安装 Fail2Ban 以及 firewalld(CentOS 发行版)。到目前为止,我通过观察 Traefik 访问日志进行了简单的过滤器/监狱配置,主要用于阻止 DOS 和暴力破解。

我的问题:当我尝试使用Nikto或Hydra时,我可以看到我尝试使用的 IP 已被列入黑名单:

# fail2ban-client status symfony-auth
Status for the jail: symfony-auth
|- Filter
|  |- Currently failed: 3
|  |- Total failed:     906
|  `- File list:        /var/log/traefik/access.log
`- Actions
   |- Currently banned: 1
   |- Total banned:     2
   `- Banned IP list:   37.19.218.169

但是 iptables 规则部分没有任何变化,我可以看到给定的 IP 没有被阻止。此外,如果我尝试从被禁止的 IP 在网站上导航,即使它被禁止,我也可以做到。

我必须补充一点,我00-firewalld.conf file有关于此发行版操作的默认说明:

# cat /etc/fail2ban/jail.d/00-firewalld.conf
# This file is part of the fail2ban-firewalld package to configure the use of
# the firewalld actions as the default actions.  You can remove this package
# (along with the empty fail2ban meta-package) if you do not use firewalld
[DEFAULT]
banaction = firewallcmd-rich-rules[actiontype=<multiport>]
banaction_allports = firewallcmd-rich-rules[actiontype=<allports>]
backend=systemd

最后,我没有任何时差,比如这里说的。

# tail /var/log/messages
Jul 12 13:28:05 ....
# timedatectl
               Local time: Mon 2021-07-12 13:30:18 UTC
           Universal time: Mon 2021-07-12 13:30:18 UTC
                 RTC time: Mon 2021-07-12 13:30:13
                Time zone: UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no


那为什么我的封禁IP还能访问目标网站呢?感谢您的线索和启示。

片段

特拉菲克docker-compose.yml

记录部分

version: "3.3"

services:
  reverse-proxy:
    image: "traefik:v2.4"
    command:
      # Log configuration
      #- "--log.level=DEBUG"
      - "--log.filepath=/var/log/traefik/traefik.log"
      - "--accesslog.filepath=/var/log/traefik/access.log"
     

卷部分:

    # ...
    volumes:
      # To persist certificates
      - traefik-certificates:/letsencrypt
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - /var/log/traefik:/var/log/traefik/
    # ...

Fail2Ban

我的过滤器

/etc/fail2ban/filter.d/my_filter.conf

[Definition]
failregex = ^<HOST>.*"(GET|POST|HEAD).*" (404|444|403|400|301) .*$
ignoreregex =

我的监狱

[my_jail]
 enabled  = true
 port     = http,https
 filter   = my_filter
 logpath  = /var/log/traefik/access.log
 maxretry = 10

客户状态

# fail2ban-client status
Status
|- Number of jail:      2
`- Jail list:   sshd, my_jail
centos configuration fail2ban docker-swarm
  • 1 个回答
  • 600 Views
Martin Hope
nbonniot
Asked: 2020-12-02 00:57:30 +0800 CST

Systemd python脚本不会记录(缓冲区原因)?

  • 0

尽管这里暴露的问题看起来非常相似,但提供的解决方案都没有工作。语境 :

  • 树莓派零 W,Raspbian Lite (2020-08-20)
  • 我想注册一个 python3 脚本作为服务,在后台运行

我想让它与 systemd 一起使用,它与以下配置一起使用:

application.service在于/etc/systemd/system/application.service

[Unit]
Description=application
After=multi-user.target


[Service]
User=custom_user
Type=idle
TimeoutSec=0
PIDFile=/run/application.pid
ExecStart=/usr/bin/python3 -u /path/to/application.py >> /path/to/log.log 2>&1
KillMode=control-group
Environment="PYTHONUNBUFFERED=1"

Restart=always
RestartSec=3s

[Install]
WantedBy=multi-user.target

此服务在启动时正确加载,在预期的段(与Wants和WantedBy部分相关)上。但它不会在我提供的日志文件中记录任何内容。您注意到Environment强制进入和与Python 可执行调用传递PYTHONUNBUFFERED的参数相同。-u这根本没有效果。

如果我在 CLI 上启动完全相同的 exec 行,则脚本会运行并记录。通过服务定义,根本没有日志。

旁注:

  • 如果我检查journalctl输出,我会找到我的日志行
  • logrotate并log2ram在日志文件/目录中设置

我最终添加了我的命令行,/etc/rc.local后跟一个&符号。根据我的说法,这不是一次尝试,因为我想以尽可能最好的方式注册该服务,以了解它所运行的系统。

感谢您的回复和启发。

scripting logging python systemd raspbian
  • 1 个回答
  • 822 Views
Martin Hope
nbonniot
Asked: 2016-06-25 07:01:57 +0800 CST

Docker:包含 LAMP 的应用程序容器还是仅 LAMP 容器?

  • 1

我有 20/30 个站点到主机的服务器,我想使用 Docker 容器来实现可扩展性、可维护性和安全性。

经过几次搜索,我发现了两种方法:

  1. 每个应用程序一个容器(包括所有容器,例如 LAMP),
  2. 每个“服务”一个容器,例如 Apache、Mysql 和应用程序。

关于我的目标(20/30 个站点到主机,类似应用程序的重复容器......)我会选择第一个。作为一个初学者,我征求意见:什么是最好的?

感谢您的回答!

尼古拉斯

linux hosting architecture docker containers
  • 1 个回答
  • 304 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve