使用防火墙后无法ssh进入AWS EC2

10

在使用 'sudo ufw enable' 启用防火墙后,我无法再通过ssh连接到我的EC2实例。 有什么方法可以恢复吗? 我猜我应该做像 'sudo ufw allow ssh' 这样的事情,但是在退出会话之前没有这样做。 另外,如果我已经这样做了,那么我是否能够在此之后通过ssh连接,还是需要执行其他操作? 谢谢。


2
这对我有用。更容易些。在EC2 AWS中使用UFW锁定了SSH,无法登录 - katu
这对我有用:https://dev59.com/81gQ5IYBdhLWcg3w-o1w - Reindert Van Herreweghe
2个回答

17

您可以进行数据恢复,但是过程较为复杂。

您需要将卷分离并重新附加到新实例上。安装该卷,然后找到并编辑配置文件以允许通过ssh连接。

完成后,您可以将卷交换回原始实例。

在大多数情况下,如果您在VPC中正确使用安全组,则可能不需要启用软件防火墙。安全组可以处理大多数常见的防火墙用途。


谢谢datasage。我会试一下的。 - tgoneil

6

成功!@datasage提供了恢复的一般步骤。以下是我必须更改的实际文件的详细信息,供其他可能需要的人使用。

创建新实例并将原始操作系统卷作为数据卷挂载到/mnt/ufwOOPS后,我对/mnt/ufwOOPS/lib/ufw中的文件进行了以下更改,这相当于'sudo ufw allow 22'的手动等效项:

将以下3行分别添加到user.rules和user6.rules的## RULES ##部分

user.rules:

### tuple ### allow any 22 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 22 -j ACCEPT
-A ufw-user-input -p udp --dport 22 -j ACCEPT

user6.rules:

### tuple ### allow any 22 ::/0 any ::/0 in
-A ufw6-user-input -p tcp --dport 22 -j ACCEPT
-A ufw6-user-input -p udp --dport 22 -j ACCEPT

感谢 @datasage 提供的建议!


3
好的,这正是我所需要的。仅有的区别是在 Ubuntu 18.04 中配置文件位于 /etc/ufw 目录下,而这与 4 年前有所不同。 - Hildy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接