Setting up your work environment
File: misc/status.txt [see below for what this means]
You'll need to work on your own for this, since it involves setting up your own computer. But take advantage of our class Slack workspace to ask questions if you get stuck. Also, if you have a friend in the class, doing this setup together can make it more fun and probably more productive.
Goals
- Start using our Slack workspace to communicate with the class.
- Get access to Kali Linux on a UTM or VMWare virtual machine, which you'll need for this class on your working computer.
- Get familiar with the basics of git, GitHub, and the Unix command-line interface.
Rubric
Resources mentioned below
- [TUTORIAL] Guide to using git in this class
Part 1: Slack
- Accept the email invitation that you received for our Slack workspace.
- If you didn't receive it, let me know right away!
- Install the Slack app on your work computer and/or your mobile device. Make a plan that ensures that you'll check Slack once per day.
- Post a short introduction to yourself in the #general channel. Here's what I would like you to include.
- What's one non-tech-related thing you like to do for fun?
- What music or book or movie or painting or podcast (etc.) are you excited about these days?
- Anything else you want to say.
Part 2: Kali Linux
For many of our investigations into practical network security this term, we're going to use tools installed on the Kali distribution of Linux in a virtual machine. There are several good reasons for this setup:
- Kali is extremely widely used by security professionals, for whom it is designed, so you'll get experience with an important tool.
- Kali has a ton of security-related software pre-installed and pre-configured, so we save lots of setup time using Kali instead of a standard macOS or Windows setup.
- Running Kali in a virtual machine means that you can have root access to the Kali installation, even if you're running it on one of Carleton's lab machines. This is particularly important if you want to observe raw network traffic (which we do), since you're generally prevented from doing so by your OS unless you have root/admin privileges.
- Running Kali in a virtual machine means you can take some potentially dangerous actions without screwing up your whole computer.
If your computer runs macOS, you can use the UTM virtual machine software free of charge. If you have Windows, you'll use VMWare. (Carleton has a VMWare license, so for Windows people, Mike Tie will send you an email with a link where you can download VMWare for free.) When you're ready to install Kali, pick the appropriate instructions link below. (Big thanks to Mike Tie and his student workers for preparing these instructions over the summer.)
- Running Windows?. Detailed instructions here.
- Running macOS with an Apple Silicon (M1/M2) CPU?. Detailed instructions here.
- Running macOS with an Intel CPU?. Detailed instructions here.
- Running Linux? Use the Windows instructions to get VMWare, and you can take it from there.
- Don't want to install Kali (e.g., you don't have 20GB hard drive to spare)? You may do your Kali work in Olin 304. Detailed instructions here.
Part 3: git and GitHub
To submit your work for this class and to support collaborative work with your classmates, you will use a git repository to store your code, documentation, presentations, etc.
Here's the short version of your git setup tasks:
- If you don't already have one, create a free account on GitHub.
- Create a GitHub repository named "cs338" or something similar for your work in this class. Make it public and give it a README.
- Add a .gitignore file to the top level of your repository, containing at least the following:
.DS_Store *.pyc __pycache__/
- Fill out this survey so the grader and I can get access to your repository
Don't know anything or much at all about git? Walk through these optional git startup instructions.
Part 4: what to hand in, and how
- As specified above, post in #general on our Slack workspace.
- As requested above, fill out the GitHub survey.
- Make sure your repository includes a .gitignore file with at least the contents specified above.
- Add a folder named misc at the top level of your git repository.
In misc, create a text file named status.txt. In that file, put your name at the top. Then describe briefly your plan for using Kali, and the status of your Kali installation (if any). You can put any other observations or concerns here as well. Don't put questions here, though—use Slack's #general channel for that.
(You might ask "why do I need to include my name in status.txt, when it's in my repository?" (1) in some cases, you'll be sharing documents with me and your classmates, and having your name in your documents will lead to less confusion; (2) it's a good habit to put brief name-plus-title-or-description info at the top of your professional documents.)
While you're at it, scroll to the very top of this page that you're reading right now, and note that it says "File: misc/status.txt" under the assignment title. Whenever I include a "File:" specification like that, I'll expect you to put your work in a file of the specified name in the specified folder.
- Make sure to "git add" both .gitignore and misc/status.txt, commit your changes, and push the whole thing to the GitHub copy of your repository so I can see it.
All done
That's all for now. Next up: we'll start learning how to use Kali and its many tools.