Krystian Cybulski Asked: 2009-10-19 16:44:24 +0800 CST2009-10-19 16:44:24 +0800 CST 2009-10-19 16:44:24 +0800 CST iptables "recent" 模块 - 设置模块参数 772 iptables 'recent' 模块的手册页解释说模块本身接受参数。如何设置这些参数?我想他们会被设置在加载模块的地方。我不知道那在哪里。 有没有人有任何想法? iptables 4 个回答 Voted womble 2009-10-19T17:44:36+08:002009-10-19T17:44:36+08:00 如果手动加载模块,只需将其添加到 modprobe 命令行: modprobe ipt_recent param1=val1 param2=val2 否则,如果它是自动加载的,您可以在 中创建一个文件/etc/modprobe.d,例如/etc/modprobe.d/ipt_recent,其内容为: options ipt_recent param1=val1 param2=val2 这将与上面的 modprobe 行做同样的事情。 flickerfly 2013-10-05T07:29:08+08:002013-10-05T07:29:08+08:00 警告:了解更改此设置会影响机器的内存使用,因为这些详细信息存储在内存中,而 iptables 需要更多资源来处理存储大量数据。 设置 xt_recent 配置文件 创建文件 /etc/modprobe.d/xt_recent.conf 并包含如下一行: options xt_recent ip_list_tot=50 ip_pkt_list_tot=150 不要忘记添加一些关于你在做什么的评论。未来你会感谢你的。 准备重新初始化 xt_recent 在我们删除防火墙中当前使用最新模块的任何规则之前,或者干脆禁用防火墙。您可能希望在执行此操作之前保存您的规则,sudo iptables-save > somefile.txt或者sudo service iptables save如果您的发行版支持它。 根据您的情况选择这两种中的一种进行清理。此时您也可以简单地重新启动计算机并跳至添加规则。 关闭 iptables sudo service iptables stop 删除特定规则: 用于iptables -L --line-numbers列出规则并在规则中查找“最近:”。 使用iptables -D INPUT #where # 是删除规则的行号。 重新初始化 xt_recent 用 删除模块sudo modprobe -r xt_recent。用sudo modprobe xt_recent. 检查以确保您的参数与sudo cat /sys/module/xt_recent/parameters/ip_pkt_list_tot. 添加您无法添加的规则 如果您停止 iptablessudo service iptables start以将其恢复。 使用您想要的更高值重新添加您的规则。 奖金: sudo watch 'iptables -nvL'将允许您观看符合 xt_recent 规则的内容。 planetbeing 2013-05-02T15:20:42+08:002013-05-02T15:20:42+08:00 我没有回复 TopQ 答案的声誉,但我注册了一个帐户只是为了告诉人们不要按照他的建议去做。该模块的源代码(http://lxr.linux.no/linux+v3.9/net/netfilter/xt_recent.c)没有规定来检测对该参数的更改,也没有规定重新分配负责的内核缓冲区跟踪最近的热门歌曲。 因此,如果您 chmod 参数 writable 并随后更改它,现有最近命中日志的后续条目将超出先前分配的内核缓冲区并导致内核崩溃。 TopQ 2011-09-16T09:47:56+08:002011-09-16T09:47:56+08:00 如果模块已经加载,您仍然可以通过操作 /sys/module/ipt_recent/parameters/ 中的值来更改参数。 例如,要更改 ip_pkt_list_tot 的值,您可以执行以下操作: 回声 200 > /sys/module/ipt_recent/parameters/ip_pkt_list_tot 当然,你得有权限。
如果手动加载模块,只需将其添加到 modprobe 命令行:
否则,如果它是自动加载的,您可以在 中创建一个文件
/etc/modprobe.d
,例如/etc/modprobe.d/ipt_recent
,其内容为:这将与上面的 modprobe 行做同样的事情。
警告:了解更改此设置会影响机器的内存使用,因为这些详细信息存储在内存中,而 iptables 需要更多资源来处理存储大量数据。
设置 xt_recent 配置文件
创建文件 /etc/modprobe.d/xt_recent.conf 并包含如下一行:
options xt_recent ip_list_tot=50 ip_pkt_list_tot=150
不要忘记添加一些关于你在做什么的评论。未来你会感谢你的。
准备重新初始化 xt_recent
在我们删除防火墙中当前使用最新模块的任何规则之前,或者干脆禁用防火墙。您可能希望在执行此操作之前保存您的规则,
sudo iptables-save > somefile.txt
或者sudo service iptables save
如果您的发行版支持它。根据您的情况选择这两种中的一种进行清理。此时您也可以简单地重新启动计算机并跳至添加规则。
关闭 iptables
sudo service iptables stop
删除特定规则:
iptables -L --line-numbers
列出规则并在规则中查找“最近:”。iptables -D INPUT #
where # 是删除规则的行号。重新初始化 xt_recent
用 删除模块
sudo modprobe -r xt_recent
。用sudo modprobe xt_recent
.检查以确保您的参数与
sudo cat /sys/module/xt_recent/parameters/ip_pkt_list_tot
.添加您无法添加的规则
如果您停止 iptables
sudo service iptables start
以将其恢复。使用您想要的更高值重新添加您的规则。
奖金:
sudo watch 'iptables -nvL'
将允许您观看符合 xt_recent 规则的内容。我没有回复 TopQ 答案的声誉,但我注册了一个帐户只是为了告诉人们不要按照他的建议去做。该模块的源代码(http://lxr.linux.no/linux+v3.9/net/netfilter/xt_recent.c)没有规定来检测对该参数的更改,也没有规定重新分配负责的内核缓冲区跟踪最近的热门歌曲。
因此,如果您 chmod 参数 writable 并随后更改它,现有最近命中日志的后续条目将超出先前分配的内核缓冲区并导致内核崩溃。
如果模块已经加载,您仍然可以通过操作 /sys/module/ipt_recent/parameters/ 中的值来更改参数。
例如,要更改 ip_pkt_list_tot 的值,您可以执行以下操作:
回声 200 > /sys/module/ipt_recent/parameters/ip_pkt_list_tot
当然,你得有权限。