CS 2550 - Foundations of Cybersecurity

Project 0: Linux Basics

This project is due at 11:59pm on Friday, January 18, 2019.

Description and Deliverables

This class has projects that require the use of the command line. Since different OS's have different command line environments, we will use Ubuntu 18.04 OS as a concrete example for the whole class. When we provide examples in the future, or when students ask us to help debug problems, we will assume that everything is being done on Ubuntu 18.04.

Even if you already have a bash command line (e.g. you use Linux, own a Mac, or have installed WSL on Windows 10) for this project we ask that everyone complete the following steps in full. Later on, if you want to use your own command line, so be it.

Step to Complete The Project

To receive full credit for this project, complete the following steps. Ultimately, you will turn in three files that you will produce during the steps.

  1. Install VirtualBox on your own computer.
  2. Download an ISO image of Ubuntu 18.04 Desktop.
  3. Open VirtualBox and create a new Virtual Machine (VM). Make sure to allocate at least 2GB of RAM and 10GB of disk space to the new VM.
  4. Install Ubuntu 18.04 into your new VM. Follow the prompts to complete the installation of Ubuntu into the VM. A useful tutorial can be found here.
  5. Once Ubuntu is installed, reboot the VM, wait for Ubuntu to load, and log-in to your new Ubuntu installation using the credentials you provided during setup.
  6. Open a command line (also known as a terminal) and install the screenfetch program using the apt tool. You can think of "apt" as the app store for Ubuntu: it lets you install new programs from the command line. Of course, to do this you need administrator privileges, so you also need to use the sudo command. Putting it all together, execute the following command:
     $ sudo apt install screenfetch
  7. If you run the screenfetch program, it will print out useful information about Ubuntu and your system. Run screenfetch again, but redirect the output (using the > operator) to a file on disk named sf-output.txt. Make sure you remember where you saved this file, you will need it again!
  8. If you don't already have an account on the Khoury College systems, you will need to get one. You can sign-up for one here.
  9. Use the ssh program on the Ubuntu command line to log-in to one of the Khoury College Linux servers. The most commonly used server is login-students.ccs.neu.edu. After using ssh your command line will now be "remote", meaning all commands and programs now run remotely on the College's Linux machine, not in your Ubuntu VM.
  10. Run the following command to make a new directory on the Khoury Linux machine that you will use for turning in Project 0:
    mkdir -p ~/cs2550/project0
    mkdir is a program that makes directories (i.e. folders) on the hard drive. The tilde character is a shortcut that always refers to your home directory (typically /home/your_username/). If you use the ls program, you will be able to see the new directories you made.
  11. Run the ps -ef program while still SSHed into the Khoury Linux machine, and redirect the output to a file named ~/cs2550/project0/ps-output.txt.
  12. Open a new command line in your Ubuntu VM, i.e. a command line that is not SSHed into another machine. Use the scp program to copy the sf-output.txt file that you made earlier to ~/cs2550/project0 on the Khoury College Linux machine. SCP is a program that lets you copy files from one machine to another; in this case, you are copying the sf-output.txt file from your Ubuntu VM to the Khoury College machine.
  13. Create a file named ~/cs2550/project0/hello.txt on the Khoury College Linux machine (using SSH and a text editor of your choosing, such as Emacs, VIM, or Nano). This file must contain your full name and Khoury College username. For example, this file might say:
    Hi, my name is Christo Wilson, and my username is cbw.
  14. At this point, your ~/cs2550/project0 directory should contain three files. You are now ready to turn-in the project using the instructions below.
Throughout these steps, you will be using various Linux command line programs. Most programs have built-in help messages if you run them with "--help" or "-?" as the command line argument. Furthermore, all programs have helpful Manual Pages that you can access by running:
$ man <program_name>
These various sources of help text may be useful if you get stuck during the project.

Learning the Linux Command Line

Martin Petrauskas has put together a helpful guide that explains how to setup VirtualBox (including how to change several important settings). This guide also has several chapters on basic Linux command line usage that may prove useful throughout this course if you are unfamiliar with the Linux command line. The guide is a work-in-progress, and the latest version can always be found here:

Submitting Your Project

Before turning in the project, you must register yourself for our grading system using the following command:
$ /course/cs2550sp19/bin/register-student [NUID]
NUID is your Northeastern ID number, including any leading zeroes. This command is available on all of the Khoury College lab machines.

To turn-in your project, you must submit exactly three files:

the format and specification of which are described above. All files should be placed in a directory (such as ~/cs2550/project0). You submit your project by running the turn-in script as follows:
$ /course/cs2550sp19/bin/turnin project0 <project directory>
where <project directory> is the name of the directory with your submission. The script will print out every file that you are submitting, so make sure that it prints out all of the files you wish to submit! The turn-in script will not accept submissions that are missing any of the three required files. You may submit as many times as you wish; only the last submission will be graded, and the time of the last submission will determine whether your assignment is late.

At any time, you can run the following command to see all of your current grades for projects, essays, quizzes, and tests.

$ /course/cs2550sp19/bin/gradesheet

Grading

This project is worth 4% of your final grade, broken down as follows (out of 100): Points can be lost for turning in files in incorrect formats (e.g. not ASCII) or failing to follow specified formatting or naming conventions.