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
    • 最新
    • 标签
主页 / server / 问题 / 640873
Accepted
Neel
Neel
Asked: 2014-10-31 05:39:32 +0800 CST2014-10-31 05:39:32 +0800 CST 2014-10-31 05:39:32 +0800 CST

如何使用 Fail2Ban 禁止 Syn Flood 攻击?

  • 772

在我的日志中,我经常看到像这样丢弃的 ip:

> Oct 30 17:32:24 IPTables Dropped: IN=eth0 OUT=
> MAC=04:01:2b:bd:b0:01:4c:96:14:ff:df:f0:08:00 SRC=62.210.94.116
> DST=128.199.xxx.xxx LEN=40 TOS=0x00 PREC=0x00 TTL=244 ID=45212
> PROTO=TCP SPT=51266 DPT=5900 WINDOW=1024 RES=0x00 SYN URGP=0
> 
> Oct 30 17:29:57 Debian kernel: [231590.140175] IPTables Dropped:
> IN=eth0 OUT= MAC=04:01:2b:bd:b0:01:4c:96:14:ff:ff:f0:08:00
> SRC=69.30.240.90 DST=128.199.xxx.xxx LEN=40 TOS=0x00 PREC=0x00 TTL=245
> ID=12842 DF PROTO=TCP SPT=18534 DPT=8061 WINDOW=512 RES=0x00 SYN
> URGP=0

从上面,我假设这些是我的 IpTables 规则正在丢弃的 Syn Flood。这就是我在 iptables for Syn 中的内容(尽管不确定这些规则中的哪一个正在删除上面的规则):

# Drop bogus TCP packets
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP

# --- Common Attacks: Null packets, XMAS Packets and Syn-Flood Attack ---
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

在 Fail2ban 中,我没有在filter.d文件夹中看到任何针对 Syn 攻击的特定过滤器。我的问题是:

1)我是否只是忽略上述日志而不担心为这些日志设置 Fail2Ban 过滤器,因为它的互联网并且总是会有脚本小子在做这些吗?

2) 由于 Fail2ban 工作基于 iptables 日志,有没有办法在我的服务器上禁止上述 Syn 尝试?

这是我对过滤器的蹩脚尝试,但它不起作用。不确定它是否有效:

[Definition]
failregex = ^<HOST> -.*IPTables Dropped:.*SYN URGP=0
ignoreregex =

我正在使用 Debian + Nginx

debian
  • 3 3 个回答
  • 10268 Views

3 个回答

  • Voted
  1. Best Answer
    Neel
    2014-10-31T06:30:44+08:002014-10-31T06:30:44+08:00

    我为此提出了另一种解决方案,到目前为止它似乎正在工作。基本上,我编写了一个过滤器,它扫描日志并阻止在给定的findtime. 因此,此过滤器将阻止由于 Syn、Xmas 攻击、端口扫描等原因而被丢弃的 IP - 无论您的 iptables 规则中列出什么。换句话说,它会阻止由于各种原因一直出现在 iptables 阻止列表中的那些。

    本地监狱

    [iptables-dropped]
    
    enabled = true
    filter = iptables-dropped
    banaction = iptables-allports
    port = all
    logpath = /var/log/messages
    bantime = 1800
    maxretry = 3
    

    过滤器:iptables-dropped.conf

    [Definition]
    failregex = IPTables Dropped: .* SRC=<HOST>
    ignoreregex =
    

    确保在 iptables 规则中记录这样丢弃的 IP,以便上述过滤器起作用:

    # log iptables denied calls (access via 'dmesg' command) to /var/log/messages file
    iptables -N LOGGING
    iptables -A INPUT -j LOGGING
    iptables -A LOGGING -m limit --limit 5/min -j LOG --log-prefix "IPTables Dropped: " --log-level 4
    iptables -A LOGGING -j DROP
    

    以上似乎对我有用。

    • 5
  2. Paolo Subiaco
    2020-04-07T08:44:40+08:002020-04-07T08:44:40+08:00

    超级fail2ban过滤器!!它就像一个魅力。非常感谢!

    无论如何,我建议以这种方式编辑修改正则表达式的 fail2ban 过滤器:

    failregex = ^%(__prefix_line)slost connection after .*\[<HOST>\]$
                ^%(__prefix_line)stoo many errors after .*\[<HOST>\]$
    
    • 0
  3. geambulat.serkan
    2022-04-11T02:49:11+08:002022-04-11T02:49:11+08:00

    你能帮我一把吗?如何通过安装 nftables 而不是 iptables 来使用 SYN 过滤器?

    • -1

相关问题

  • 关闭 FTP

  • 如何在同一台电脑上从 putty 连接 debian vmware

  • debian- 文件到包的映射

  • Debian Ubuntu 网络管理器错误 [关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

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