在使用 'sudo ufw enable' 启用防火墙后,我无法再通过ssh连接到我的EC2实例。 有什么方法可以恢复吗? 我猜我应该做像 'sudo ufw allow ssh' 这样的事情,但是在退出会话之前没有这样做。 另外,如果我已经这样做了,那么我是否能够在此之后通过ssh连接,还是需要执行其他操作? 谢谢。
在使用 'sudo ufw enable' 启用防火墙后,我无法再通过ssh连接到我的EC2实例。 有什么方法可以恢复吗? 我猜我应该做像 'sudo ufw allow ssh' 这样的事情,但是在退出会话之前没有这样做。 另外,如果我已经这样做了,那么我是否能够在此之后通过ssh连接,还是需要执行其他操作? 谢谢。
您可以进行数据恢复,但是过程较为复杂。
您需要将卷分离并重新附加到新实例上。安装该卷,然后找到并编辑配置文件以允许通过ssh连接。
完成后,您可以将卷交换回原始实例。
在大多数情况下,如果您在VPC中正确使用安全组,则可能不需要启用软件防火墙。安全组可以处理大多数常见的防火墙用途。
成功!@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 提供的建议!