Introduction to Network Security

Rose-Hulman Institute of Technology, Winter 2024-25

Welcome to CSSE490: Introduction to Network Security at RHIT!

virus_farm

This course serves as an introduction to the basic concepts of network security with an emphasis on practical and development skills. Topics include denial of service attacks and defenses, authentication, key distribution, message authentication, access control, protocol security, virtual private networks, and security standards. The course will provide a review of basic network design, the end-to-end principle, and basic cryptography. Prerequisites: CSSE 220 or approval of the instructor.

Before class starts, please familiarize yourself with this website, including the different menus on the left-hand pane. This is the source of all authoritative announcements for the class, if this page and what I say in class contradict each other, please follow what is on this webpage.

Before the first class

Before our first class, please read the syllabus and get to know your instructor. This class is mostly built on labs that you will be doing during class meeting times, therefore it is important that you come to the first day prepared with a good development environment.

Therefore, I do recommend that you follow the steps below to get started strong on day 1:

  1. Terminal Emulator
    Get yourself a good terminal emulator, preferably running on a Unix-based distribution. Follow the steps in the tutorials page to set yourself up with one.
  2. Terminal skills
    For this class to work out, you will need to be comfortable with a terminal window. There are plenty of tutorials out there to help you out, but essential skills like navigating directories, copying and moving files, grep, and compiling and running programs are crucial for your success.
  3. Version Control
    This term, we will be transitioning to use GitHub Classroom for lab distribution and submission. Each lab/concept lab will have an assignment link for you to accept the lab and obtain a fork of the lab starter code repository.
  4. Connectivity
    Throughout the class, we will be working on dedicated machines that would allow us to run risky experiments. Follow the steps in the tutorials page to make sure you can access your assigned virtual machine, and make sure that you can ssh into it.
  5. tmux
    It is in the nature of networking labs that you will be working across two or more machines (containers in our case). Therefore, it is crucial that you can switch between them easily. I strongly recommend that you take a moment to familiarize yourself with tmux and check out my provided configuration file on the tutorials page.
  6. Coding
    Most of your coding will be done on the remote machines you are assigned. Those machines already have vim and emacs preintalled. You can check out my config file for vim in the tutorials page. You can also hook up vscode to connect remotely to your machine if you prefer to use an IDE. I will leave that one up to you to figure out if you elect to do so.
  7. Enjoy
    Enjoy the class and please give me feedback as we move along the quarter!