'enable firewall port 22 on ec2 server after disable it

Step error: 1. sudo ufw enable 2. Command may disrupt existing ssh connections. Proceed with operation (y|n)? y 3. exit Before ssh again and can not access. On Security Group, port 22 is opening But firewall disable port 22. How to access server again?



Solution 1:[1]

You could use the following Simplest way (user-data) to turn off the ufw.

  1. Stop the instance
  2. In Instance Settings, View/Change User Data
  3. Copy and Set the below user data as plain text and save
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, once]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
sudo ufw disable
--//
  1. Start the instance

You will be able to SSH into your server now as ufw is disabled. You might want to stop the instance and remove user data and start it again.

Solution 2:[2]

At this point, there is nothing you can do to get back into the machine. It seems (from your comments) that ufw automatically starts and you have not added a rule to it to allow SSH traffic.

What you can do to recover data is

  • shut down the EC2 instance,
  • detach the EBS volume,
  • launch a different EC2 instance,
  • log into it,
  • mount the EBS volume and
  • copy the data to the new instance

Solution 3:[3]

Simple step to step working Solution:

This error comes when you allow ufw and enable it on ec2.

  1. Stop the Instance

  2. Go to Action > Instance Setting > Edit User Data

And make sure to choose As Text in Edit User Data Screen

  1. Add below commands
#!/bin/bash
sudo ufw allow ssh
sudo ufw allow 22
sudo ufw allow 443
sudo ufw allow 8080
sudo ufw allow 80
sudo ufw status 
sudo ufw enable
  1. Now start the Instance And check that it is on Running State

  2. check your public IP (This has been changed after restart)

  3. Now finally connect to the instance using ssh : ssh -i <username>@<ip-address>

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 0x90
Solution 3