首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用ipset阻止某些协议?

如何用ipset阻止某些协议?
EN

Unix & Linux用户
提问于 2017-10-03 20:00:15
回答 1查看 845关注 0票数 0

问题是,我目前有3台虚拟测试机器,Client1、ip 192.168.1.10、Client2、ip 192.168.2.20和路由器,其中ip 192.168.1.1192.168.2.1是连接Client1和Client2的网关。

在路由器上,我设置了hash:ip,port集,例如:

ipset add myset 192.168.2.20,tcp:80

ipset add myset 192.168.2.20,tcp:443

在Client2上,我在端口80上安装了nginx,我不希望Client1能够通过端口80上的tcp连接到Client2,在路由器上我添加了一个规则:iptables -A FORWARD -m set --match-set myset dst -j DROP

在Client1 i exec wget 192.168.2.20/index.html上,由于路由器上的iptables规则,Client1不应该能够连接到Client2和抓取index.html,但是它不能工作,文件也可以成功地检索。

问题只存在于hash:ip,port集类型的ipset。如果我选择hash:ip类型并将协议/端口部件移到iptable之外,一切都会正常工作。但是,我需要使用完全的ipset来随时交换块列表。

我做错了什么?所有3个VM都运行在Ubuntu17.04上,安装最少,没有GUI。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2017-10-05 07:05:28

由于的评论,这个问题得到了解决:

而不是

iptables -A FORWARD -m set --match-set myset dst -j DROP

我不得不用

iptables -A FORWARD -m set --match-set myset dst,dst -j DROP (两个dst而不是一个)

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/395909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档