gpt4 book ai didi

linux - 无法连接到 22 (ssh) AWS 以外的任何端口

转载 作者:太空宇宙 更新时间:2023-11-04 12:59:11 25 4
gpt4 key购买 nike

我在 AWS 上有一个 ubuntu 实例,我在服务器上运行 mongod。 mongod 已将绑定(bind) ip 设置为 0.0.0.0 并使用 netstat 进行了验证。

sudo netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1055/sshd
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 1049/mongod
tcp6 0 0 :::22 :::* LISTEN 1055/sshd

我还在 AWS EC2 控制台上设置了安全组规则,以便允许来自端口 27017 上的公共(public) IP 的入站连接。我无法从笔记本电脑连接到 mongod (27017)。

telnet ec2-<ip-removed>.compute-1.amazonaws.com 27017                    1 ↵
Trying <ip-removed>...
telnet: connect to address <ip-removed>: Operation timed out

但是我从我的笔记本电脑连接到端口 22 上的 ssh 没有问题

telnet ec2-<ip-removed>.compute-1.amazonaws.com 22                    130 ↵
Trying <ip-removed>...
Connected to ec2-<ip-removed>.compute-1.amazonaws.com.

此设置一周前运行良好,突然我的笔记本电脑客户端拒绝连接到 mongo。我在端口 6800 上尝试了另一个服务,设置了入站规则并将绑定(bind) ip 设置为 0.0.0.0/32 它也无法连接。我没有设置其他规则,实例上也没有 iptables 或防火墙。

我也尝试过重启服务器,但没有成功。

也可以从服务器本身连接到 mongo

ubuntu@aws$ telnet localhost 27017
Trying 127.0.0.1...
Connected to localhost.

最佳答案

如评论中所述,通过实例上运行的 iptables 阻止了来自外部网络的端口访问。

我对 iptables/AWS 访问策略的方法是始终使用“开放”AWS 访问策略并使用 iptables 锁定所有内容。这样一来,控制访问就更接近于实例,并且不会因为将访问策略彼此分层而使事情过于复杂。

老实说,您的 mongod 实例甚至不应该位于 DMZ(可公开访问)中,您应该将 iptables 设置为仅允许从内部网络访问 mongod 实例。您可能有一个需要访问 mongod 的“应用程序服务器”,因此请公开访问应用程序服务器,而不是 mongod 实例。

这是在我的“docstore”实例之一上运行的 iptables 示例:

root@service-a-2.sn3.vpc3.example.com ~ # -> iptables -L -vn
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1419 15M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 /* 001 accept all to lo interface */
27M 4531M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 /* 005 accept related established rules */ state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- eth0 * 10.3.0.0/16 0.0.0.0/0 /* 015 accept internal icmp */ state NEW
74 4440 ACCEPT tcp -- eth0 * 10.3.0.0/16 0.0.0.0/0 multiport dports 22 /* 777 accepts ssh */ state NEW
420K 25M ACCEPT tcp -- eth0 * 10.3.0.0/16 0.0.0.0/0 multiport dports 27017 /* 777 allow mongo access */ state NEW
462K 28M ACCEPT tcp -- eth0 * 10.3.0.0/16 0.0.0.0/0 multiport dports 3306 /* 777 allow mysql access */ state NEW
656 28976 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 /* 999 drop all INPUT */

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 27M packets, 9639M bytes)
pkts bytes target prot opt in out source destination

请注意,我正在使用 CIDR(无类域间路由) block 来识别内部网络,这样您就不会陷入必须指定实际 IP 地址的困境。

关于linux - 无法连接到 22 (ssh) AWS 以外的任何端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34750874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com