DUCK DNS And AWS HACKS

  • 1 - Create a diagram (canva)

What are the pros and cons of using Duck DNS? Show a diagram.

duckdns

  • 2 - Write a reflection

Why do we use DNS? How does Duck DNS work? What makes Duck DNS unique? How is Duck DNS useful for our projects? What are the steps to set up Duck DNS?

We use DNS so that we can have ability to use websites, services, and platforms on a computer locally without the use of a set IP address. Instead of the IP address, a domain name is used. DNS works by getting a device connected to a network and then changes the IP address of that device into a new IP address in order to visit different websites or platforms locally. Duck DNS is different from other DNSs because it allows users to create their own customizable domain that can even have subdomains. Duck DNS is useful for our projects because we can access our other network devices without needing to know the IP address or the service's network settings. To set up Duck DNS, you need to sign in at duckdns.org using your google or github account. Secondly, type in a custom name for a domain and press 'add domain'. Then, change the corresponding IP address to a new one that will be used. Finally, click the update button. Now a website can be accessed locally using the set domain instead of its IP address.</p>

  • 4 - In 2-3 complete sentences, talk about any outdated Nginx/Docker functionalities that may need to be addressed or any confusions you may have in regards to the deployment process from Trimesters 1 and 2.

During the deployment process from trimesters 1 and 2, both Nginx and Docker were up to date so there was no outdated functionalities that occurred from them. However, it is best to address the outdated functionalities as old code doesn't work well if at all with more updated code that it used to replace it or add additional features and with the lack of updates that are used to improve security, fix bugs, and make sure everything is still running, a website might not work.

  • 5 - Create a Venn Diagram comparing Nginx with Lighttpd.

Nginx vs Lighttpd

  • 6 - Complete the Python quiz and attach your output from the notebook (should be done once you do the quiz.)

Below is the code for the quiz and the output. The output may be hard to see so the final score will be written out more clearly below.

</div> </div> </div>
import getpass, sys

# method to display question and get user's answers
def question_with_response(prompt, qCount):
    print("Question " + str(qCount)  + " : " + prompt)
    msg = input()
    return msg

# dictionary to hold questions and answers as key : value pairs
questionsDict = {"What does Domain Name Server represent?": "DNS",
    "What does this Represent: Amazon Web Services, which is a cloud computing platform provided by Amazon.": "AWS", 
    "What is the first Step to setting up an AWS Server? 1: Connecting to a Ubuntu EC2 Instance, 2: Start updating the system, 3: Clone the repository which one wishes to deploy, 4: Run the command: main.py to start the project": "1",
    "What is the third Step to setting up an AWS Server? 1: Connecting to a Ubuntu EC2 Instance, 2: Start updating the system, 3: Clone the repository which one wishes to deploy, 4: Run the command: main.py to start the project": "3",
    "What is the fourth Step to setting up an AWS Server? 1: Connecting to a Ubuntu EC2 Instance, 2: Start updating the system, 3: Clone the repository which one wishes to deploy, 4: Run the command: main.py to start the project": ".4",
    "What is the second Step to setting up an AWS Server? 1: Connecting to a Ubuntu EC2 Instance, 2: Start updating the system, 3: Clone the repository which one wishes to deploy, 4: Run the command: main.py to start the project": "2",
    "What files are you supposed to edit after finishing the first steps of setting up the server and cloning it within the AWS Server? 1: Edit the docker files and docker.yml, 2: Edit the main.py file to change the characteristcs.": "1",
    "What is the first step to setting up a DuckDNS Server? 1: Sign in with your DuckDNS account using Github, 2: Configure current ip to the IP address that you want to access and click update ip button , 3: Create the subdomain, 4: Access site by typing in subdomain.duckdns.org": "1",
    "What is the second step to setting up a DuckDNS Server? 1: Sign in with your DuckDNS account using Github, 2: Configure current ip to the IP address that you want to access and click update ip button , 3: Create the subdomain, 4: Access site by typing in subdomain.duckdns.org": "3",
    "What is the third step to setting up a DuckDNS Server? 1: Sign in with your DuckDNS account using Github, 2: Configure current ip to the IP address that you want to access and click update ip button , 3: Create the subdomain, 4: Access site by typing in subdomain.duckdns.org": "2",
    "What is the fourth step to setting up a DuckDNS Server? 1: Sign in with your DuckDNS account using Github, 2: Configure current ip to the IP address that you want to access and click update ip button , 3: Create the subdomain, 4: Access site by typing in subdomain.duckdns.org": "4"
}

# number of questions as length of the dictionary
questions = len(questionsDict)

# set correct to 0
correct = 0


print('Hello, ' + getpass.getuser() + " running " + sys.executable)
print("You will be asked " + str(questions) + " questions.")
print("Are you ready to take a test! Press Enter key to begin. Best of luck :)")
input()

questionCount = 0
# iterate over list of keys from the dictionary. pass dictionary key as question to the question_with_response function
for key in questionsDict:
    questionCount += 1
    rsp = question_with_response(key, questionCount)
    # compare the value from the dictionary to the user's input
    if rsp.lower() == questionsDict[key].lower():
        print(rsp + " is correct! Good Job!")
        correct += 1
    else:
        print(rsp + " is incorrect! Better Luck next time.")

# print final score    
print(getpass.getuser() + " you scored " + str(correct) +"/" + str(questions))

# calculate percentage
page = correct/questions * 100

# print percentage


print("Total Percentage: " + str (format(page,".2f")) + "%")
Hello, lucas running /home/lucas/anaconda3/bin/python
You will be asked 11 questions.
Are you ready to take a test! Press Enter key to begin. Best of luck :)
Question 1 : What does Domain Name Server represent?
DNS is correct! Good Job!
Question 2 : What does this Represent: Amazon Web Services, which is a cloud computing platform provided by Amazon.
AWS is correct! Good Job!
Question 3 : What is the first Step to setting up an AWS Server? 1: Connecting to a Ubuntu EC2 Instance, 2: Start updating the system, 3: Clone the repository which one wishes to deploy, 4: Run the command: main.py to start the project
1 is correct! Good Job!
Question 4 : What is the third Step to setting up an AWS Server? 1: Connecting to a Ubuntu EC2 Instance, 2: Start updating the system, 3: Clone the repository which one wishes to deploy, 4: Run the command: main.py to start the project
3 is correct! Good Job!
Question 5 : What is the fourth Step to setting up an AWS Server? 1: Connecting to a Ubuntu EC2 Instance, 2: Start updating the system, 3: Clone the repository which one wishes to deploy, 4: Run the command: main.py to start the project
4 is incorrect! Better Luck next time.
Question 6 : What is the second Step to setting up an AWS Server? 1: Connecting to a Ubuntu EC2 Instance, 2: Start updating the system, 3: Clone the repository which one wishes to deploy, 4: Run the command: main.py to start the project
2 is correct! Good Job!
Question 7 : What files are you supposed to edit after finishing the first steps of setting up the server and cloning it within the AWS Server? 1: Edit the docker files and docker.yml, 2: Edit the main.py file to change the characteristcs.
1 is correct! Good Job!
Question 8 : What is the first step to setting up a DuckDNS Server? 1: Sign in with your DuckDNS account using Github, 2: Configure current ip to the IP address that you want to access and click update ip button , 3: Create the subdomain, 4: Access site by typing in subdomain.duckdns.org
1 is correct! Good Job!
Question 9 : What is the second step to setting up a DuckDNS Server? 1: Sign in with your DuckDNS account using Github, 2: Configure current ip to the IP address that you want to access and click update ip button , 3: Create the subdomain, 4: Access site by typing in subdomain.duckdns.org
3 is correct! Good Job!
Question 10 : What is the third step to setting up a DuckDNS Server? 1: Sign in with your DuckDNS account using Github, 2: Configure current ip to the IP address that you want to access and click update ip button , 3: Create the subdomain, 4: Access site by typing in subdomain.duckdns.org
2 is correct! Good Job!
Question 11 : What is the fourth step to setting up a DuckDNS Server? 1: Sign in with your DuckDNS account using Github, 2: Configure current ip to the IP address that you want to access and click update ip button , 3: Create the subdomain, 4: Access site by typing in subdomain.duckdns.org
4 is correct! Good Job!
lucas you scored 10/11
Total Percentage: 90.91%

I scored 10/11

Total Percentage: 90.91%

Alternatives to Certbot Hacks (I was unable to install and set up Certbot)

Research and compare the security features of OpenSSL and LibreSSL, and write about the recent vulnerabilities within it.

OpenSSL and LibreSSL are very similar as they are both made to manage and to create a connection with an application and data. However, they are different in the fact that OpenSSL is more feature-oriented while LibreSSL is more security-based. OpenSSL is designed to be used as an easy way for programmers to create applications. This resulted in OpenSSL focusing more about the tool's features and accessibility and less about the security of the code. While the security for OpenSSL is good, it is more likely to have an attack compared to LibreSSL. LibreSSL is designed to provide safer connection between data and for maintainng a clean space. I manages a clean space by remove unnecessary and/or outdated code. This results in LibreSSL being more security-based by limiting the features it allows. OpenSSL and LibreSSL is a sort of trade off. However, both have revealed vulnerabilities as attackers were able to cause a denial-of-service attack by sending one of the SSLs a certificate request that would cause it to loop, cutting a connection between multiple devices. Lucky, that bug was fixed for both SSLs but still revealed flaws in their security.

AWS DATABASES HACKS

Quiz 1

What is the main difference between relational and non-relational databases?

A. Relational databases are only used for structured data, while non-relational databases are only used for unstructured data.

B. Relational databases can easily handle high data volumes, while non-relational databases cannot.

C. Relational databases are based on tables and use SQL, while non-relational databases are based on collections and use JSON-like documents.

D. Relational databases are more expensive than non-relational databases.

Which AWS database service is best suited for applications that require low-latency speed?

A. Amazon ElastiCache

B. Amazon Neptune

C. Amazon DocumentDB

D. Amazon RDS

What is the purpose of the code example provided in the lesson?

A. To demonstrate how to create a table in Amazon Aurora.

B. To show how to query data from a DynamoDB table.

C. To provide an example of how to connect to a database instance in RDS using Python.

D. To showcase how to insert data into a MySQL table.

Quiz 2

Which of the following is not an AWS database option?

A. Amazon RDS

B. Amazon Neptune

C. SQLite

D. Amazon DynamoDB

Which of the following is a file-based, lightweight RDBMS?

A. Amazon RDS

B. Amazon Neptune

C Amazon DynamoDB

D. SQLite

Which AWS service enables you to store and query highly connected datasets?

A. Amazon Relational Database Service (RDS)

B. Amazon DynamoDB

C. Amazon Neptune

D. Amazon DocumentDB

</div>