- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 iptables 中记录一些来自恶意 IP 地址的丢弃数据包,这些 IP 地址不断攻击我的服务器。
来自这个恶意 IP 的所有内容都被丢弃,我不再在 Web 服务器日志中看到它,这是一件好事。使用 tcpdump,我可以看到仍然来自该 IP 的流量,我想在 iptables 中记录丢弃的数据包,因为我知道它正在工作并且它们正在被丢弃。
我有一些 iptables 规则,但我不知道为什么日志记录不起作用。我确定我错过了什么。
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A 输入 -i lo -j 接受
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A INPUT -s 80.82.65.0/24 -j DROP
-A INPUT -s 167.74.0.0/18 -j DROP
-A INPUT -s 167.87.0.0/16 -j DROP
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A 输入 -j 日志记录
-A FORWARD -m state --state INVALID -j DROP
-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -m state --state INVALID -j DROP
-A LOGGING -s 80.82.65.0/24 -m limit --limit 5/min -j LOG --log-prefix "iptables 丢包"--log-level 7
$ grep iptables/etc/rsyslog.conf
kern.debug/var/log/iptables.log
最佳答案
您的配置的问题在于,指定应丢弃数据包的规则位于指定应在 LOGGING
链中处理该数据包的规则之前,该链将被记录。
一旦 iptables
将数据包与第一条规则(DROP
操作的规则)匹配,它就会停止搜索并且不会到达另一条规则。
我会改变规则的顺序并重写如下:
iptables -N LOGANDDROP
iptables -A INPUT -s 80.82.65.0/24 -j LOGANDDROP
iptables -A LOGANDDROP -m limit --limit 5/min -j LOG --log-prefix "iptables dropped packets " --log-level 7
iptables -A LOGANDDROP -j DROP
为了完整起见,我将建议一个替代解决方案,它不涉及创建新的临时链:
iptables -A INPUT -s 80.82.65.0/24 -m limit --limit 5/min -j LOG --log-prefix "iptables dropped packets " --log-level 7
iptables -A INPUT -s 80.82.65.0/24 -j DROP
此方法基于以下警告。如前所述,iptables
默认行为是查找手头包的第一个匹配项,一旦找到,就停止搜索其他匹配项。但是,此规则有一个异常(exception):
LOG
操作的规则不会导致 iptables
停止搜索其他适用规则。虽然此解决方案更短,因此乍一看可能更具吸引力,但不推荐使用,因为它不够强大。一旦有多个源需要相同的处理,则应为每个新源复制这两个配置行(而不是在以前的解决方案中仅添加一行)。此外,一旦完成,更改日志记录详细信息将需要更改多个规则(而不是之前解决方案中的单个规则)。
我还认为,由于此解决方案依赖于上述警告,因此不太容易遵循和理解,这是配置 iptables
时需要考虑的重要因素,但这只是我个人的看法。
注意 - 请参阅 this useful link iptables
的简明教程。
关于iptables - 在 IPTables 中记录丢弃的数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25692685/
(>>)的定义功能如下:(>>) :: Monad m => m a -> m b -> m b但我想实现这个功能翻转如下: 我有一个函数tabulate :: Int -> [Int] -> IO
我在新线程中创建一个新的托管对象上下文,并向其中插入一些对象。我可以通过不保存上下文来丢弃(忘记它们)它们吗?我的问题是这样的:我开始一个漫长的过程,在开始时创建一些 NSManagedObjects
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 3年前关闭。 Improve t
虽然建议打开编译器标志,如 -Wvalue-discard或 -Wunused:implicits通过使用 sbt-tpolecat 显式或隐式地. 有时您需要解决这些问题,但要以一种明确的方式;因为
在 R 中,na.omit()函数可用于丢弃包含 NA 值的 data.frame 中的条目。作为副作用,如果确实丢弃了行,则该函数会向结果添加一个属性 'omit',其中包含被丢弃的 row.nam
使用 geom_blank我想添加一些新的因子水平,但我似乎无法这样做并保留 NA水平 library('ggplot2') pl <- ggplot(data.frame(x = factor(c(
谁能告诉我两者之间是否有什么区别 DROP IF EXISTS [TABLE_NAME] DROP [TABLE_NAME] 我问这个问题是因为我在 MVC Web 应用程序中使用 JDBC 模板。如
例如,我有以下表达式映射: function! DelNthSpace() let col=match(getline('.'), '[[:blank:] ]', col('.'
默认情况下,Chrome 会丢弃后台未使用的选项卡以节省内存。 我想知道是否有一种方法可以让我现在可以在我的网站被 Chrome 丢弃的情况下 - 这样我就可以告诉我的用户,下次他们进入时,如何避免这
我的数据库中有一个元素列表,每个元素都有自己的日期时间字段。我想丢弃比今天更旧的元素,这意味着我只会看到 future 的元素。 这是我当前的代码: def get_dates_approved(re
我为我的 linux 机器编写了一个 C++ 工具,它接收 UDP (OSC) 数据包并立即将它们发回(这是它唯一做的事情)。但似乎有一些丢弃的数据包。当我向我的 linux(从另一台机器)发送 10
在创建 cron 作业时,我总是这样写: 15 0 * * * /somepath/somescript.pl > /dev/null 2>&1 关于末尾“>/dev/null 2>&1”丢弃所有st
我已经四处寻找有关此问题的指示,但找不到任何指示。假设我有一个 Python 列表: list = set([((3, 2), (2, 1)), ((3, 2), (3, 1)
我正在介绍 C,我需要编写一个程序来提示用户输入字符、等号和整数。我需要使用 getchar() 直到 '=' 然后使用 scanf() 获取整数。然后程序应该只输出整数返回给用户。 现在它打印出不必
如何忽略数据框中随机分布在数据框中的空单元格?这是我的例子 ColA ColB ColC ColD ColF ColG ColH A
我无法在网上找到我的问题的单一答案... 我正在为我的投资组合构思一个网站创意,并决定涉足一些 jQuery 让它更令人兴奋。我正确链接了 jQuery 并且工作,但是当我使用 .toggle 方法时
据我了解,在 Linux 中创建虚拟驱动器的过程是这样的 fallocate -l size /path/to/file.img; dd if=/dev/zero of=/path/tofile.im
大多数时候,我都是这样做的。 class a { public: ~ a() { i = 100; // OK delete (int *)j
下面的代码编译。它似乎运行良好。 但是它会导致任何未定义的行为吗? 我想抛弃 *this 的常量。 这是为了允许 const my_iterator 改变它指向的数据。 测试: class A { p
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Is const_cast safe? 显然我永远不会写这段代码,但它是真实程序中出现的一个非常简单的例子。
我是一名优秀的程序员,十分优秀!