Debian 9 - 只允许某些 IP 访问 MongoDB

Debian 9 - 只允许某些 IP 访问 MongoDB

如何让我的Mongo只能访问某些IP?

我试过 iptables

iptables -A INPUT -s 192.168.2.111 -p tcp --destination-port 27016 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d 192.168.2.111 -p tcp --source-port 27016 -m state --state ESTABLISHED -j ACCEPT
.

但是,什么确切地是吗?我怎么能够否定所有其他IP?如何编辑 iptables 以添加更多 IP 以允许并保持阻止“未列出”?我怎样才能使这个 iptables 配置永久存在?

我尽我所能的英语。

答案1

但是,这到底是做什么的呢?

这只是两条单独的规则,没有任何意义。

如何拒绝所有其他 IP?

有两种方法。首先正在设置拒绝策略:

iptables -P INPUT DROP
iptables -P OUTPUT DROP

但这种方式不是最佳实践,因为如果您重置所有规则,您将失去与服务器的连接。使用第二方式:

您需要“接受所有”策略以及拒绝所有流量的链中的最后一条规则:

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT

some rule...
some rule...
some rule...

iptables -A INPUT --destination $host --jump DROP
iptables -A OUTPUT --source $host --jump DROP

其中$host- 是主机的 IP 地址

如何编辑 iptables 以添加更多 IP 以允许并保持阻止“未列出”?

您可以将多个地址或 IP 子网添加到单个规则中。例如:

iptables -A INPUT --source 192.168.2.111,192.168.2.1,192.168.56.0/24 --destination $host --protocol tcp --dport 27016 --jump ACCEPT

我怎样才能使这个 iptables 配置永久存在?

iptables-persistent


注意:如果您拒绝或丢弃所有输入/输出流量,您需要定义接受规则以正确连接到服务器。

为了ssh

iptables -A INPUT --source 192.168.2.111 --protocol tcp --dport 22 --jump ACCEPT
iptables -A OUTPUT --match conntrack --ctstate ESTABLISHED,RELATED --jump ACCEPT

谨慎使用 iptables,尤其是在远程服务器上,如果出现问题,您将无法直接访问这些服务器。

相关内容