【问题标题】:IP address whitelisting for specific service特定服务的 IP 地址白名单
【发布时间】:2016-02-18 16:43:57
【问题描述】:

如何过滤外部连接到在 Docker 上运行的特定服务?具体来说,如何将传入请求过滤到列入白名单 IP 的静态列表?

【问题讨论】:

  • 为什么不使用iptables,特别是如果发布的端口是静态的?
  • 我可以试试。我不熟悉在 ubuntu 上配置 iptables,但如果这是正确的方法,我可以研究一下。谢谢
  • 您是否在特定的静态端口上运行 CaaS(容器即服务)?
  • 我真的不确定。我们使用 IBM 的 Bluemix 来托管容器。我假设有一种简单的方法可以在 Docker 文件或其他方式中执行此操作。我现在正在探索 iptables。似乎是一个合理的选择。

标签: networking iptables whitelist


【解决方案1】:

这个答案假设:

  • 容器将始终侦听同一主机:端口。
  • 容器将始终绑定在同一个网卡接口上,如果有多个可用的话。这可以通过在docker run 命令中使用选项-p hostIp:hostPort:containerPort 轻松完成。

基于这两个假设,可以假设容器中运行的服务将始终侦听定义为 hostIp:hostPort 的同一主机套接字。


现在,您所要做的就是防火墙,它独立于 docker。

我不是专家,也没有测试这些行!在执行它们之前被警告。

# DROP every packets coming from every sources sent to the port $PORT
iptables -A INPUT -p tcp --dport $PORT -j DROP
# ACCEPT every packets coming from source xx.xx.xx.xx sent to port $PORT
iptables -A INPUT -p tcp -s xx.xx.xx.xx --dport $PORT -j ACCEPT
# Repeat the last command if needed, you can also specify a network, such as 192.30.252.0/22 instead of xx.xx.xx.xx

这些规则将按此精确顺序设置。白名单可以比作黑名单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 2021-08-26
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    相关资源
    最近更新 更多