iptables为MongoDB 配置Linux 防火墙 |
您所在的位置:网站首页 › iptables防火墙开放端口 › iptables为MongoDB 配置Linux 防火墙 |
在本页面 总览 模式 将默认策略更改为 DROP 管理和维护iptables配置在现代Linux系统上,该iptables程序提供了用于管理Linux内核netfilter或网络数据包筛选功能的方法。这些防火墙规则使管理员可以控制哪些主机可以连接到系统,并通过限制可以连接到系统的主机来限制风险。 本文档概述了iptables Linux上防火墙的基本防火墙配置。使用这些方法作为大型网络组织的起点。有关MongoDB的安全性实践和风险管理的详细概述,请参阅“ 安全性”。 概述¶iptables配置规则分为多个链,描述了过滤和处理特定流量流的过程。链具有顺序,数据包必须通过链中较早的规则才能到达较晚的规则。本文档仅涉及以下两个链: INPUT 控制所有传入流量。 OUTPUT 控制所有传出流量。由于默认端口的所有MongoDB的过程,你必须配置允许网络规则只 需要您的应用程序和相应的沟通 mongod和mongos实例。 请注意,默认情况下,默认策略iptables是允许所有连接和流量,除非明确禁用。本文档中概述的配置更改将使用默认策略创建规则,该规则明确允许来自特定地址和特定端口的流量,该策略将丢弃所有未明确允许的流量。在将iptables规则正确配置 为仅允许要允许的流量之后,可以将默认策略更改为DROP。 模式¶本节包含许多模式和示例,这些模式和示例用于配置iptables以与MongoDB部署一起使用。如果使用port配置设置配置了其他端口,则需要相应地修改规则。 往返mongod实例的流量¶此模式适用于mongod作为独立实例或副本集的一部分运行的所有实例。 该模式的目标是明确允许流量mongod从应用程序服务器到达 实例。在以下示例中,将其替换为应用程序服务器的IP地址: 复制 iptables -A INPUT -s -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -d -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT第一条规则允许所有来自端口的传入流量27017,这允许应用程序服务器连接到 mongod实例。第二条规则,允许来自的传出流量mongod到达应用程序服务器。 可选的 如果只有一台应用程序服务器,则可以用IP地址本身替换 ,例如: 198.51.100.55。您也可以使用CIDR表示法来表达这一点 198.51.100.55/32。如果您想允许更大范围的可能的IP地址,则可以/24使用下列规范之一允许来自的流量: 复制 10.10.10.10/24 10.10.10.10/255.255.255.0 往返mongos实例的流量¶mongos实例为分片群集提供查询路由。客户端连接到mongos实例,这些实例从客户端的角度看作为mongod 实例。依次,mongos连接到mongod作为分片群集组件的所有 实例。 使用相同的iptables命令来允许往返于这些实例的流量,就像允许来自mongod副本集成员的实例的流量一样。以往返于mongod实例的流量部分中概述的配置 为例。 往返MongoDB Config服务器的流量¶配置服务器托管配置数据库,该数据库存储分片群集的元数据。配置服务器侦听端口上的连接 27019。结果,将以下iptables规则添加到配置服务器,以允许端口上的传入和传出连接 27019,以连接到其他配置服务器。 复制 iptables -A INPUT -s -p tcp --destination-port 27019 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -d -p tcp --source-port 27019 -m state --state ESTABLISHED -j ACCEPT更换用的地址或地址空间中所有 的mongod提供配置服务器。 此外,配置服务器需要允许来自mongos群集中所有实例和群集中所有 mongod实例的传入连接。添加类似于以下内容的规则: 复制 iptables -A INPUT -s -p tcp --destination-port 27019 -m state --state NEW,ESTABLISHED -j ACCEPT替换为mongos实例和分片mongod 实例的地址 。 往返MongoDB碎片服务器的流量¶分片服务器默认为端口号 27018。您必须配置以下iptables规则,以允许进出每个分片的流量: 复制 iptables -A INPUT -s -p tcp --destination-port 27018 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -d -p tcp --source-port 27018 -m state --state ESTABLISHED -j ACCEPT用all的IP地址替换规范 mongod。这样,您就可以允许所有分片(包括组成副本集成员)之间的传入和传出流量: 分片mongod副本集中的所有实例。 mongod其他分片中的所有实例。[1]此外,分片需要能够建立与以下各项的传出连接: mongod配置服务器中的所有实例。创建类似于以下内容的规则,然后将替换 为配置服务器和mongos实例的地址 : 复制 iptables -A OUTPUT -d -p tcp --source-port 27018 -m state --state ESTABLISHED -j ACCEPT [1]集群中的所有分片都需要能够与所有其他分片进行通信,以促进组块和平衡操作。 为监视系统提供访问权限¶该mongostat诊断工具在运行时 --discover需要能够访问群集的所有组件,包括配置服务器,分片服务器和mongos实例。 在版本3.6中进行了更改: MongoDB 3.6删除了MongoDB弃用的HTTP接口和REST API。 将默认策略更改为DROP¶iptables链的默认策略是允许所有流量。完成所有iptables配置更改后,您 必须将默认策略更改为,DROP以便上述未明确允许的所有流量将无法到达MongoDB部署的组件。发出以下命令来更改此策略: 复制 iptables -P INPUT DROP iptables -P OUTPUT DROP 管理和维护iptables的配置¶本节包含一些用于管理和使用的基本操作iptables。有多种前端工具可以使某些方面的iptables配置自动化,但是在核心部分,所有 iptables前端都提供相同的基本功能: 使所有iptables规则持久化¶默认情况下,所有iptables规则仅存储在内存中。系统重新启动时,防火墙规则将恢复为默认值。测试规则集并确保其有效控制流量后,可以使用以下操作来使规则集持久化。 在Red Hat Enterprise Linux,Fedora Linux和相关发行版上,您可以发出以下命令: 复制 service iptables save在Debian,Ubuntu和相关发行版上,可以使用以下命令将iptables规则转储到 /etc/iptables.conf文件中: 复制 iptables-save > /etc/iptables.conf执行以下操作,恢复网络规则。 复制 iptables-restore < /etc/iptables.conf将此命令放置在您的rc.local文件中,或/etc/network/if-up.d/iptables通过其他类似操作放置在文件中 。 列出所有iptables规则¶要列出所有当前应用的iptables规则,请在系统外壳上使用以下操作。 复制 iptables -L 刷新所有iptables规则¶如果在输入iptables规则时犯了配置错误,或者仅需要恢复为默认规则集,则可以在系统外壳上使用以下操作来刷新所有规则: 复制 iptables -F如果已经使iptables规则具有持久性,则需要在“ 使所有iptables规则保持持久性”部分中重复适当的过程 。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |