首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止新的孤立虚拟接口监听0.0.0.0:*

如何防止新的孤立虚拟接口监听0.0.0.0:*
EN

Unix & Linux用户
提问于 2017-12-05 15:25:49
回答 1查看 1.1K关注 0票数 1

我正在创建一个新的虚拟界面:

代码语言:javascript
复制
ifconfig eth0:0 123.123.22.22

命令netstat -tlnp返回如下内容:

代码语言:javascript
复制
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:50505         0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:7337          0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:3790            0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:6001            0.0.0.0:*               LISTEN      2450/Xvnc4      
tcp        0      0 0.0.0.0:6002            0.0.0.0:*               LISTEN      2626/Xvnc4      
tcp        0      0 192.168.2.77:22         0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:3001          0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:52698         0.0.0.0:*               LISTEN      3488/plugin_host
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      -               
tcp6       0      0 ::1:7337                :::*                    LISTEN      -               
tcp6       0      0 :::5901                 :::*                    LISTEN      2450/Xvnc4      
tcp6       0      0 :::5902                 :::*                    LISTEN      2626/Xvnc4      
tcp6       0      0 ::1:631                 :::*                    LISTEN      -               
tcp6       0      0 ::1:5432                :::*                    LISTEN      -               
tcp6       0      0 ::1:6010                :::*                    LISTEN      -  

因此,如果我为虚拟接口和物理接口创建nmap,结果将是相同的(这将用netstat中的"Local“值来解释)。我试图关闭这个新虚拟接口中的端口(5901,5902,6001,6002)。两个接口的nmap

代码语言:javascript
复制
PORT     STATE SERVICE
5901/tcp open  vnc-1
5902/tcp open  vnc-2
6001/tcp open  X11:1
6002/tcp open  X11:2

命令:

代码语言:javascript
复制
sudo iptables -A INPUT -i eth0:0 -p tcp --dport 5901 -j DROP

端口将是不可访问的,但是是打开的(对于nmap)。有什么方法可以阻止eth0:00.0.0.0监听流量吗?

如果主机有两个IP地址,分别为192.168.1.1和10.1.2.1,并且在主机上运行的服务器监听0.0.0.0,则这两个IP都可以到达。(wiki)

目标:

  • 在LAN中公开新接口,并更改Mac地址(看起来像另一台机器)
  • 将停靠器容器绑定到新创建的接口,在某些端口中公开服务。
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2017-12-06 11:06:25

要模拟第二个(虚拟)以太网卡,在现有网卡的基础上使用不同的MAC,并从不同的命名空间(例如容器),您需要一个macvlan接口。

这里是如何在Docker容器中使用它们的说明。

您似乎对您尝试过的一些网络功能背后的原则感到有点困惑。也许以下几点是有帮助的:

  • eth0:0只是ifconfig工具在某些接口上处理第二个IP地址的旧方法。如果您使用像ip addr这样的新工具,它只会在eth0上显示第二个IP地址。这只适用于OSI级别3,因此没有不同的MAC地址,它不会与网络命名空间交互,比如在docker中,而且通常使用起来很麻烦,因为您必须确保每个应用程序都正确地绑定到其中一个地址。该绑定是防止应用程序侦听0.0.0.0的必要条件;没有办法一般性地阻止"eth0:00.0.0.0侦听流量“(忽略这种形式的句子根本没有意义;接口没有侦听,应用程序正在通过绑定侦听某些IP地址和/或某些接口)。
  • iptables允许您进行数据包过滤,用于防火墙、NAT等。它不允许您更改MAC地址,控制哪个应用程序监听哪个地址,等等。
  • “我已经使用了modprobe”也是没有意义的:modprobe是加载内核模块的一种方式,如果您不能说明您想要使用哪个内核模块,用于什么目的,以及为什么它一开始没有自动加载,这句话没有传达任何信息。

另外,请阅读XY问题:当你想做X,并认为你可能需要做Y到X,总是问X,然后提到你尝试Y。在很多情况下(如这里)Y是完全错误的。

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

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

复制
相关文章

相似问题

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