LABS AND PROGRESS
- Lab 1 – Create a Virtual Machine
This lab was my introduction to using Linux in a virtual machine. I installed Kali Linux and learned how to work with the vm environment that I would use throughout the course. After getting the vm set up, I practiced basic Linux commands such as echo, date, ls, and pwd. These commands helped me become familiar with using the terminal instead of relying on a graphical interface.
The hardest part for me was mostly getting everything set up correctly and figuring out how the vm worked. The commands themselves were not too difficult, but I had to get used to typing commands instead of clicking around. This lab gave me the basic setup that I needed for all of the other labs, so it was a good starting point for the class
- Lab 2 – Working with Command Line
This lab helped me become more comfortable navigating the Linux filesystem through the command line. I practiced displaying my current working directory, moving between directories using absolute and relative paths, listing files, and viewing information about files. I also created, copied, renamed, and deleted files and directories.
One thing I had trouble with was remembering where I was in the filesystem. Sometimes I would be in a different directory than I thought I was, which made my commands not work the way I expected. Using pwd helped with this because I could check where I was before doing something. By the end of the lab, I felt a lot more comfortable moving around Linux from the command line.
- Lab 3 – VI Editor
This lab was about using the VI editor to create and edit files. At first, VI was probably one of the more confusing things I used because it does not work like a normal text editor. I had to learn that there are different modes and that pressing Esc takes you back to command mode.
The biggest challenge was remembering how to save and exit. I had to practice commands like :w, :q, and :wq a few times before they started making sense. After getting some practice with it, VI became less confusing. I learned that being able to edit files from the terminal is useful, especially when working on a Linux system where you might not have a normal text editor available.
- Lab 4 – User and Group Accounts
This lab was about creating and managing users and groups in Linux. I learned how to create users, create groups, set passwords, and assign users to different groups. I also worked with primary and secondary groups and changed users’ login shells.
I ran into a few problems during this lab, especially when trying to delete users. At one point, Linux would not let me remove a user because the user was still being used by a process. I also had some errors when entering commands. These problems were actually helpful because I had to figure out what Linux was telling me instead of just moving on. The main thing I learned was how Linux uses users and groups to control access to different parts of the system.
- Lab 5 – Password Cracking
This lab was about testing how strong different types of passwords are. I created six different users and gave each one a different type of password, such as a simple word, numbers, words with numbers, and passwords with symbols and different capitalization. After that, I exported the password hashes and used John the Ripper with the rockyou.txt wordlist to see which passwords could be cracked.
One challenge I had was getting John the Ripper to work correctly with the password hashes. I ran into problems with the hash format and also had an issue where John could not crack one of the hashes because of my Linux being outdated or something like that, although after some time I figured it out. I also had to look at the output and figure out what was happening instead of assuming the command was wrong. This lab helped me understand that passwords are not stored as plain text and that attackers can use password cracking tools to test or attack password hashes. My biggest takeaway was that simple passwords are much easier to crack, which shows why using stronger and more complicated passwords is important.
- Lab 6 – File Permisson
This lab helped me understand Linux file permissions better. I learned about read, write, and execute permissions and how they work for the owner, group, and other users. We also used commands like ls -l, chmod, and umask.
One of the things that helped me understand the lab was actually getting a “Permission denied” message. I could see that the user was not allowed to access something, and then after changing the permissions and group settings, the user was able to get through. I learned that Linux checks who you are and what permissions you have before allowing you to access or change something.
- Lab 7 – Storage Management
This lab was about disks, partitions, and filesystems. I used commands like lsblk, fdisk, and parted to see the disks and partitions on my Linux VM. I also added a virtual disk, created a partition, formatted it as an ext4 filesystem, mounted it to /cyse, and created a file there.
One problem I ran into was that my VM did not show the disk names exactly like the instructions. Instead of /dev/sda, I was seeing things like /dev/vda, /dev/vdb, and their partitions. I had to figure out that these were the names my VM was using. I also had to be careful about whether I was inside fdisk or back at the regular terminal. This lab helped me understand what actually happens when you add and set up a new disk in Linux.
- Lab 8 – Shell script
This lab was my introduction to writing Bash scripts. I learned how to make a script, add commands to it, use input from the user, and make the script executable with chmod +x. Instead of typing every command separately, I could put them into a script and run the script.
I had some trouble understanding the difference between a normal text file and a Bash script. For example, when I tried to run test.txt with Bash, I got a “command not found” error. I learned that just because a file contains text does not mean Bash can run it as a script. After practicing with the scripts, I understood how they could be used to make tasks easier and faster.
- Lab 9 – Automation Tasks
This lab showed me how Bash scripts and cron can work together. I created the Alice user, made a backup script for her home directory, and created a compressed backup that was stored in /var/backups. Then I used crontab to have the script run automatically.
The part I had the most trouble with was setting up the cron job. When I first used sudo crontab -e, I was confused by the screen asking me to choose an editor. Once I selected Nano, I was able to add the cron command and save it. I also learned how to check the cron jobs and remove them when I was finished. This lab showed me how Linux can do repetitive tasks automatically instead of having someone run them every time.
- Lab 10 – Networking Basics
This assignment was about subnetting and figuring out information about different IP addresses. I learned how to find the network address, broadcast address, first and last usable IP addresses, and the maximum number of hosts. I also had to convert the IP addresses and subnet masks into binary.
At first, subnetting looked pretty confusing because there were a lot of numbers involved. Once I learned the formulas and how the block size works, it became much easier. I realized that I could use the same steps for different IP addresses instead of trying to figure each problem out from scratch. This assignment helped me understand how IP addresses are divided into networks and why subnetting is important for networkin
- Lab 11 – Basic Network Configurations
This lab was about looking at the network settings on my Kali Linux VM. I used commands like ifconfig, route, netstat, ping, host, and cat to find information about my network. I looked at things like my IP address, MAC address, network mask, routing table, DNS information, and hostname.
One thing that was a little confusing was the network setting in UTM. The lab talked about NAT, but UTM called the setting “Shared Network.” Once I figured that out, I was able to continue with the lab. I also got to compare the network settings when using shared networking and bridged networking. This lab helped me understand that there are different ways a virtual machine can connect to a network and how to use Linux commands to check what is happening.
Overall final thoughts/Reflection
Looking back at all of the labs I did, I got a lot more comfortable with Linux than I was at the beginning of the semester. At first, even basic commands and moving around the terminal was confusing. As the labs went on, I started recognizing commands and understanding what they were actually doing. Sometimes though, I had situations where the instructions did not exactly match what I was seeing on my Kali VM but I ended up working through it. The biggest thing I took away from all of these labs is that Linux is mostly about understanding what the system is doing and paying attention to things going on. These labs covered a lot of different topics, but they all connected in some way to managing and securing a computer system. I still have more to learn, but I feel a lot more comfortable working in the Linux terminal now than I did at the start of the semester.