Wednesday, June 8, 2022

AWS EC2 - SSH locked with UFW

Need to update the instance's user data:

1. Stop the instance

2. Right click (windows) or ctrl + click (Mac) on the instance to open a context menu, then go to Instance Settings -> Edit User Data or select the instance and go to Actions -> Instance Settings -> Edit User Data

If you're still on the old AWS console, select the instance, go to Actions -> Instance Settings -> View/Change User Data

3. Past following in: 


ontent-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. Once added, restart the instance and ssh should work. 

The user-data disables ufw if enabled and also flushes any iptable rules blocking ssh access.

Friday, March 18, 2022

Nginx Virtual Hosts on Ubuntu

Nginx Virtual Hosts on Ubuntu


1. Create Root Directory

sudo mkdir -p /var/www/login.jordan.app/html

sudo chown -R $USER:$USER /var/www/login.jordan.app/html

sudo chmod -R 755 /var/www/login.jordan.app


2. Creating Sample Pages

vi /var/www/login.jordan.app/html/index.html

<html>
    <head>
        <title>Welcome to login.jordan.app!</title>
    </head>
    <body>
        <h1>Success! The jordan.app server block is working!</h1>
    </body>
</html>


3. Create Block Files

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/login.jordan.app

sudo vi /etc/nginx/sites-available/login.jordan.app

server {
        listen 80;
        listen [::]:80;

        root /var/www/login.jordan.app/html;
        index index.html index.htm index.nginx-debian.html;

        server_name jordan.app www.jordan.app login.jordan.app;

        location / {
                try_files $uri $uri/ =404;
        }
}

grep -R default_server /etc/nginx/sites-enabled/


4. Enabling Server Block

sudo ln -s /etc/nginx/sites-available/login.jordan.app /etc/nginx/sites-enabled/


5. Modify config file

sudo vi /etc/nginx/nginx.conf

Remove the # symbol to uncomment

server_names_hash_bucket_size 64;
    
sudo nginx -t
    

6. Restart 

sudo systemctl restart nginx
    
    
7. Modify host file 

sudo vi /etc/hosts
    
3.104.250.177 jordan.app www.jordan.app login.jordan.app


AWS EC2 - SSH locked with UFW

Need to update the instance's user data: 1. Stop the instance 2. Right click (windows) or ctrl + click (Mac) on the instance to open a c...