Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用防火墙限制对Windows Server docker容器的访问?_Docker_Containers_Traefik_Windows Firewall_Windows Container - Fatal编程技术网

如何使用防火墙限制对Windows Server docker容器的访问?

如何使用防火墙限制对Windows Server docker容器的访问?,docker,containers,traefik,windows-firewall,windows-container,Docker,Containers,Traefik,Windows Firewall,Windows Container,我试图将对Windows docker容器的访问限制为特定IP。看起来在Linux容器上使用iptables很容易做到这一点,但我很难为Windows Server容器找到合适的解决方案。关于StackOverFlow问题的第一个答案中描述了我试图在Windows容器上执行的类似操作,但这是Linux 首先,我似乎无法在容器内启动Windows Defender防火墙服务(不在主机上)。具体发生的情况在StackOverFlow问题中描述。但简而言之,启动服务名称MpsSvc根本不起作用。修改注

我试图将对Windows docker容器的访问限制为特定IP。看起来在Linux容器上使用iptables很容易做到这一点,但我很难为Windows Server容器找到合适的解决方案。关于StackOverFlow问题的第一个答案中描述了我试图在Windows容器上执行的类似操作,但这是Linux

首先,我似乎无法在容器内启动Windows Defender防火墙服务(不在主机上)。具体发生的情况在StackOverFlow问题中描述。但简而言之,
启动服务名称MpsSvc
根本不起作用。修改注册表项不起作用。那篇文章中有描述。那么,这是否意味着不可能在容器内使用Windows防火墙来限制访问

文档声明Windows Server容器上的默认出站/入站流量为
ALLOW ALL
。我想将其锁定,以便容器的流量只来自一个来源

我们正在使用的Orchestrator是Azure服务结构。在集群中,有一个主系统节点/主机。该节点承载(类似于流量管理器/负载平衡器)。Traefik实例也在集群中的每个后续节点上运行。每个节点都有一堆容器——很简单。这里的基本思想是,我只想让来自主系统节点的流量到达容器。其他一切都需要封锁

我怎样才能做到这一点

我们正在使用的容器的基本映像是
mcr.microsoft.com/windows/servercore:ltsc2019
。我正在尝试创建我们自己的基础映像版本,并进行一些修改(如安全强化、日志记录等),将其发布到我们的Azure容器注册中心(ACR),计划让开发人员从我们的ACR而不是Microsoft的公共中心
拉取

至于网络,不确定它是否重要,但它使用默认的
NAT
网络

docker网络检查nat

[
    {
        "Name": "nat",
        "Id": "78l2lk902jsxu82jskais92alxp51mcf2907djsla81m154985snjo1d69xh51da",
        "Created": "2020-04-15T20:18:39.9097816-07:00",
        "Scope": "local",
        "Driver": "nat",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "windows",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.27.128.0/20",
                    "Gateway": "172.27.128.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {
            "com.docker.network.windowsshim.hnsid": "5045b0b6-d9a6-4b50-b1da-f66b0b770feb",
            "com.docker.network.windowsshim.networkname": "nat"
        },
        "Labels": {}
    }
]