IPSET匹配不适用于一种Linux安装,但不适用于另一种...仅影响IPv4

克里夫·阿姆斯特朗(Cliff Armstrong)

我有两台Ubuntu 16.04服务器,一台在本地网络上的一个小小的Intel Atom Itx盒上,一台作为VPS托管。两者都在上周内重新安装。两者的配置通常相同,但需要付出更多的努力来强化可公开访问的VPS。都没有重新编译内核。两者通常都安装了相同的软件包集。

但是……其中之一,VPS坚持认为它的netfilter无法与ipset相匹配。

wolferz@unipuma ~ $ sudo shorewall check
Checking using Shorewall 5.1.6.1...
Processing /etc/shorewall/params ...
Processing /etc/shorewall/shorewall.conf...
Loading Modules...
Checking /etc/shorewall/zones...
Checking /etc/shorewall/interfaces...
Determining Hosts in Zones...
Locating Action Files...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking MAC Filtration -- Phase 1...
Checking /etc/shorewall/blrules...
   ERROR: ipset names in Shorewall configuration files require Ipset Match in your kernel and iptables /etc/shorewall/blrules (line 39)

我打算使用的配置在很大程度上取决于ipset来对大型IP进行动态黑名单和白名单。因为netfilter不太适合经常更改或有大量规则列表(每个ip一个...通常成千上万个)。

没有ipset匹配,这里就没有前进的方向。尽管事实上我正在使用Shorewall来管理netfilter和ipset,但这似乎不是Shorewall问题。除非以某种方式歪斜检测到它...但是我不确定如何确认它的输出。

这就是Shorewall在VPS上检测为内核的netfilter功能的内容。

wolferz@unipuma ~ $ sudo shorewall version
5.1.6.1

wolferz@unipuma ~ $ sudo shorewall show -f capabilities | grep IPSET
IPSET_MATCH=                <== this is the problem
IPSET_MATCH_COUNTERS=       <== this is not great either
IPSET_MATCH_NOMATCH=        <== this is not great either
IPSET_V5=Yes
OLD_IPSET_MATCH=

wolferz@unipuma ~ $ sudo shorewall6 version
5.1.6.1

wolferz@unipuma ~ $ sudo shorewall6 show -f capabilities | grep IPSET
IPSET_MATCH_COUNTERS=       <== normal for ipv6
IPSET_MATCH_NOMATCH=        <== normal for ipv6
IPSET_MATCH=Yes             <== correct
IPSET_V5=Yes
OLD_IPSET_MATCH=

wolferz@unipuma ~ $ uname --kernel-release
4.4.0-93-generic

wolferz@unipuma ~ $ ipset --version
ipset v6.29, protocol version: 6

wolferz@unipuma ~ $ iptables --version
iptables v1.6.0

wolferz@unipuma ~ $ ip6tables --version
ip6tables v1.6.0

它说IPSET_MATCH=了什么,但后面什么也没有,它应该显示出来IPSET_MATCH=Yes它在VPS上失败,而不是在本地服务器上失败。甚至更好奇的是,ip6tables报告了ipset匹配支持,而iptables没有。

我本来没有在本地服务器上安装Shorewall(尽管我打算这样做)……所以我继续进行安装。但是我很着急,从apt那里安装了它,并得到了Shorewall版本5.0.4当它报告说它具有完整的ipset匹配功能时,我认为这可能是Shorewall特有的5.1.6.1因此,我像在vps上一样使用apt来从tarball中删除5.0.4和安装5.1.6.1两者5.0.45.1.6.1给出相同的输出。

wolferz@khaos ~ $ sudo shorewall version
5.1.6.1

wolferz@khaos ~ $ sudo shorewall show -f capabilities | grep IPSET
IPSET_MATCH_COUNTERS=Yes
IPSET_MATCH_NOMATCH=Yes
IPSET_MATCH=Yes
IPSET_V5=Yes
OLD_IPSET_MATCH=

wolferz@khaos ~ $ sudo shorewall6 version
5.1.6.1

wolferz@khaos ~ $ sudo shorewall6 show -f capabilities | grep IPSET
IPSET_MATCH_COUNTERS=
IPSET_MATCH_NOMATCH=
IPSET_MATCH=Yes
IPSET_V5=Yes
OLD_IPSET_MATCH=

wolferz@khaos ~ $ uname --kernel-release
4.4.0-93-generic

wolferz@unipuma ~ $ ipset --version
ipset v6.29, protocol version: 6

wolferz@unipuma ~ $ iptables --version
iptables v1.6.0

wolferz@unipuma ~ $ ip6tables --version
ip6tables v1.6.0

相同的发行版,相同的发行版,相同的内核。好的,所以我想,也许是他们安装VPS的模板搞砸了。我决定检查已安装模块中的差异:

wolferz@unipuma ~ $ sudo ls -R -D /lib/modules/4.4.0-93-generic/kernel/ | grep -P '\.ko$' | sort > unipuma_sorted_modules.list

...将其发送给其他主机...

wolferz@khaos ~ $ sudo ls -R -D /lib/modules/4.4.0-93-generic/kernel/ | grep -P '\.ko$' | sort > khaos_sorted_modules.list

wolferz@khaos ~ $ diff --brief --report-identical-files khaos_sorted_modules.list unipuma_sorted_modules.list

Files khaos_sorted_modules.list and unipuma_sorted_modules.list are identical

然后,我检查了所用内核的实际配置:

wolferz@unipuma ~ $ sudo cat /boot/config-4.4.0-93-generic | grep -P '(?:NETFILTER|IPSET)' | sort > unipuma_kernel_config.list

wolferz@khaos ~ $ sudo cat /boot/config-4.4.0-93-generic | grep -P '(?:NETFILTER|IPSET)' | sort > khaos_kernel_config.list

wolferz@khaos ~ $ diff --brief --report-identical-files khaos_kernel_config.list unipuma_kernel_config.list
Files khaos_kernel_config.list and unipuma_kernel_config.list are identical

那好吧 使我困惑。相同的内核。相同的模块。相同的配置。不同的功能。

而且...只是为了消除这种想法,也不是虚拟主机。我有第三台运行CentOS6的服务器,并且此版本的Shorewall(以及较旧的netfilter / iptables / ipset版本)没有此问题。它使用与上述Ubuntu 16.04 vps相同的虚拟化(KVM)托管在同一台物理计算机上。

...帮助?

克里夫·阿姆斯特朗(Cliff Armstrong)

那好吧 感谢所有的好主意。没有你们的帮助就做不到。

正如我所知道的那样,这个问题很简单。在shorewall.conf文件中,我有以下内容:

IPTABLES=/sbin/ip6tables

问题是...那是Shorewall.conf文件。不是Shorewall6.conf文件。当我开始配置ipv4一半时,我已经复制了它,很显然,它错过了特定的“ 6”。

更正的行是:

IPTABLES=/sbin/iptables

因此,为什么这个问题表现得像一个iptables问题……有点。是的,三天后...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript Switch语句中的默认仅适用于一种情况,但不适用于两种情况?

来自分类Dev

.serialize仅适用于一种形式

来自分类Dev

所需的 html 仅适用于一种形式

来自分类Dev

grep用于一种模式,但不适用于另一种模式

来自分类Dev

PHP / XML路由适用于一种路由,不适用于另一种路由

来自分类Dev

case_when 适用于一种情况,而不适用于另一种情况

来自分类Dev

为什么以下代码适用于一种模型但不适用于另一种模型?

来自分类Dev

CSS Transition仅适用于一种转换类型?

来自分类Dev

绑定模式= TwoWay仅适用于“一种”方式

来自分类Dev

Pytorch摘要仅适用于U-Net的一种特定输入大小

来自分类Dev

document.getElementById仅适用于一种产品

来自分类Dev

分页仅适用于ModelViewSet Django Rest Framework的一种特定方法

来自分类Dev

CSS Transition仅适用于一种类型的转换?

来自分类Dev

折和求和组仅适用于多种类型中的一种

来自分类Dev

logstash geoip不适用于IPv4

来自分类Dev

Android Linkify.addLinks()适用于一个textview,不适用于另一种

来自分类Dev

RewriteRule适用于一种情况,但不适用于其他情况

来自分类Dev

代码适用于一种情况,但不适用于其他情况

来自分类Dev

Systemd单元文件仅适用于一个实例名称,不适用于另一实例名称

来自分类Dev

Rxjava:插入仅适用于单个但不适用于可填充

来自分类Dev

Angular Test 仅适用于模拟服务类,但不适用于值

来自分类Dev

我的jQuery脚本仅适用于一个元素,不适用于另一元素

来自分类Dev

.NET CORE 3.1仅适用于Linux,不适用于Windows?

来自分类Dev

将文本设置为居中仅适用于一个微调器,而不适用于其他

来自分类Dev

onclick事件仅适用于按钮,不适用于与按钮一起使用的glyphicon

来自分类Dev

CSS代码仅适用于一部分,而不适用于其他部分

来自分类Dev

渐变仅适用于一张照片,而不适用于其他照片

来自分类Dev

javascript效果仅适用于第一个元素,而不适用于其他元素?

来自分类Dev

r rpart 仅适用于整数而不适用于因子?得到一棵没有深度的树

Related 相关文章

  1. 1

    Javascript Switch语句中的默认仅适用于一种情况,但不适用于两种情况?

  2. 2

    .serialize仅适用于一种形式

  3. 3

    所需的 html 仅适用于一种形式

  4. 4

    grep用于一种模式,但不适用于另一种模式

  5. 5

    PHP / XML路由适用于一种路由,不适用于另一种路由

  6. 6

    case_when 适用于一种情况,而不适用于另一种情况

  7. 7

    为什么以下代码适用于一种模型但不适用于另一种模型?

  8. 8

    CSS Transition仅适用于一种转换类型?

  9. 9

    绑定模式= TwoWay仅适用于“一种”方式

  10. 10

    Pytorch摘要仅适用于U-Net的一种特定输入大小

  11. 11

    document.getElementById仅适用于一种产品

  12. 12

    分页仅适用于ModelViewSet Django Rest Framework的一种特定方法

  13. 13

    CSS Transition仅适用于一种类型的转换?

  14. 14

    折和求和组仅适用于多种类型中的一种

  15. 15

    logstash geoip不适用于IPv4

  16. 16

    Android Linkify.addLinks()适用于一个textview,不适用于另一种

  17. 17

    RewriteRule适用于一种情况,但不适用于其他情况

  18. 18

    代码适用于一种情况,但不适用于其他情况

  19. 19

    Systemd单元文件仅适用于一个实例名称,不适用于另一实例名称

  20. 20

    Rxjava:插入仅适用于单个但不适用于可填充

  21. 21

    Angular Test 仅适用于模拟服务类,但不适用于值

  22. 22

    我的jQuery脚本仅适用于一个元素,不适用于另一元素

  23. 23

    .NET CORE 3.1仅适用于Linux,不适用于Windows?

  24. 24

    将文本设置为居中仅适用于一个微调器,而不适用于其他

  25. 25

    onclick事件仅适用于按钮,不适用于与按钮一起使用的glyphicon

  26. 26

    CSS代码仅适用于一部分,而不适用于其他部分

  27. 27

    渐变仅适用于一张照片,而不适用于其他照片

  28. 28

    javascript效果仅适用于第一个元素,而不适用于其他元素?

  29. 29

    r rpart 仅适用于整数而不适用于因子?得到一棵没有深度的树

热门标签

归档