web-dev-qa-db-fra.com

Je me suis verrouillé hors de SSH avec UFW dans EC2 AWS

J'ai une instance EC2 avec Ubuntu. J'ai utilisé Sudo ufw enable et après autoriser uniquement le port mongodb

Sudo ufw allow 27017

Lorsque la connexion ssh est rompue, je ne peux pas me reconnecter

20

D'une manière ou d'une autre Mahesh la réponse n'a pas fonctionné pour moi, si vous êtes à ma place, essayez ceci.

  • Lancez une nouvelle instance (instance de récupération).
  • Arrêtez l'instance d'origine (NE PAS TERMINER)
  • Détacher le volume (volume problématique) de l'instance d'origine
  • Attaché à l'instance de récupération en tant que/dev/sdf.
  • Connectez-vous à l'instance de récupération via ssh/PuTTY
  • Courir Sudo lsblk pour afficher les volumes joints et confirmer le nom du volume problématique. Il commence généralement par /dev/xvdf. Le mien est /dev/xvdf1
  • Montez le volume du problème.

    $ Sudo mount /dev/xvdf1 /mnt
    $ cd /mnt/etc/ufw
    
  • Ouvrez le fichier de configuration ufw

    $ Sudo vim ufw.conf
    
  • Appuyez sur i pour modifier le fichier.
  • Changement ENABLED=yes à ENABLED=no
  • Tapez Ctrl-C et tapez: wq pour enregistrer le fichier.
  • Affichez le contenu du fichier de configuration ufw à l'aide de la commande ci-dessous et assurez-vous que ENABLED=yes a été remplacé par ENABLED=no

    $ Sudo cat ufw.conf 
    
  • Démonter le volume

    $ cd ~
    $ Sudo umount /mnt
    
  • Détachez le volume de problème de l'instance de récupération et rattachez-le à l'instance d'origine en tant que/dev/sda1.

  • Démarrez l'instance d'origine et vous devriez pouvoir vous reconnecter.

Source: ici

31
Victor Anuebunwa
  • Lancer une autre instance de serveur EC2 La meilleure façon d’y parvenir est d’utiliser la fonction "Launch More Like This" d’EC2. Cela garantira que le type de système d'exploitation, le groupe de sécurité et les autres attributs sont les mêmes, économisant ainsi un peu de temps de configuration.
  • Arrêtez l'instance de problème
  • Détacher le volume de l'instance problématique
  • Attacher un volume à une nouvelle instance

Remarque: les noyaux Linux plus récents peuvent renommer vos périphériques en/dev/xvdf via/dev/xvdp en interne, même lorsque le nom du périphérique entré est/dev/sdf via/dev/sdp.

  • Montez le volume
cd ~
mkdir lnx1
Sudo mount /dev/xvdf ./lnx1
  • Désactiver UFW
cd lnx1
Sudo vim ufw.conf

Maintenant, trouvez ENABLED = yes et changez-le en ENABLED = no.

  • Détacher le volume

Assurez-vous de démonter le volume en premier:

Sudo umount ./lnx1/
  • Rattachez le volume à/dev/sda1 sur notre instance de problème
  • Instance de problème de démarrage
  • Réaffectez l'adresse IP élastique si nécessaire
  • Supprimer l'instance temporaire et son volume associé

Hola !! vous allez bien.

16
Mahesh Gareja

D'autres approches n'ont pas fonctionné pour moi. Mon instance EC2 est basée sur une image Bitnami. Attacher du volume à une autre instance n'a pas fonctionné en raison des verrous du marché.

Arrêtez donc l'instance à problème et collez ce script dans instanceSettings> view-change user data.

Cette approche ne nécessite pas de détacher le volume, donc c'est plus simple par rapport aux autres.


Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
ufw disable
iptables -L
iptables -F
--//

Doit arrêter l'instance avant de coller ceci, après ce démarrage, votre instance et vous devriez pouvoir ssh.

9
zaheer

Je sais que c'est une vieille question, mais j'ai corrigé la mienne en ajoutant une commande dans Afficher/Modifier les données utilisateur à l'aide de bootcmd

J'ai d'abord arrêté mon instance

Ensuite, j'ai ajouté cela dans les données utilisateur

#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"

# Remarque: mon instance est Ubunt

J'ai le même problème et j'ai découvert que cette procédure fonctionne:

1- Arrêtez votre instance

2- Allez dans `Paramètres d'instance -> Afficher/modifier les données utilisateur

3- Collez ceci

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
ufw disable
iptables -L
iptables -F
--//

4- Démarrez votre instance

J'espère que ça marche pour toi

2
Fabián Bertetto