如何让我的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,尤其是在远程服务器上,如果出现问题,您将无法直接访问这些服务器。