如何在ufw防火墙意外激活后恢复对amazon EC2实例的ssh访问

时间:2014-01-30 16:06:21

标签: ssh amazon-ec2 amazon ubuntu-12.04

我在EC2 ubuntu服务器12.04实例中激活了ufw防火墙,但我忘了允许访问端口22.现在我无法通过ssh连接到该实例。此实例是EBS支持的。

2 个答案:

答案 0 :(得分:21)

好吧,多亏了EBS,有一个解决方案。

  1. 停止您的实例
  2. 将您的EBS卷附加到另一个实例。如果你没有,请创建一个微实例。
  3. Mount你的EBS卷在哪里,即。的/ opt /恢复
  4. 列表项
  5. 编辑{your-ebs-mount} /etc/ufw/ufw.conf并将enabled = yes更改为enabled = no
  6. Umount EBS
  7. 从临时实例中删除
  8. 重新连接到原始实例。 (确保以root身份附加)
  9. 重新启动实例
  10. 现在您的实例中的防火墙已被隐藏,因此您可以通过ssh访问它。

答案 1 :(得分:2)

第1步:   在实例设置中打开查看/更改用户数据。
 第2步:  添加脚本(如下所述)并保存。

#cloud-config
bootcmd:
- cloud-init-per always fix_broken_ufw_1 sh -xc "/usr/sbin/service ufw stop >> /var/tmp/svc_$INSTANCE_ID 2>&1 || true" 
- cloud-init-per always fix_broken_ufw_2 sh -xc "/usr/sbin/ufw disable>> /var/tmp/ufw_$INSTANCE_ID 2>&1 || true"

第3步:  重新启动实例:(机器的ip将被更改)   脚本将在启动时执行,ufw将被禁用。

现在我们可以通过ssh连接实例。

参考:https://github.com/ibrahim45/configuration/blob/master/boot_script_instance.md