Linux Systems for Cybersecurity
- Lab 1 – Install Linux VM
This lab gave me experience with establishing a virtual machine on Linux for the class. I downloaded a hypervisor and generated a VM Kali Linux. It was troublesome selecting proper software and creating configurations at first.
I also had difficulty ensuring that the virtual machine created had adequate resource allocation and that it was properly using the correct ISO file. After modifying the settings and following all of the instructions carefully, I completed the installation without issue. This lab has helped me further comprehend how virtual machines can provide for the secure environment needed to perform cybersecurity activities.
- Lab 2 – Working with Command Line
This lab assisted me in successfully completing some introductory Linux navigation tasks which was looking for directories that contained files, checking file types, and understanding system-level directories, i.e., /etc. As well as initially getting confused about what are “Absolute Pathnames” and “Relative Pathnames” as related to a Linux operating systems’ file system hierarchy.
One of the biggest difficulties I encountered was copying and renaming directories in the system files when I am unable to access the directory due to a permission restriction on that file. After executing these commands several times, when I would verify that I completed the command correctly using the ls command, I became more confident in utilizing the terminal to perform file and directory management. I also have learned how to successfully perform this task using the Terminal Command Line Interface, similar to how many Cyber Security Analysts work in the field.
- Lab 3 – Working With Vi Editor
This laboratory session taught me how to use the vi editor while using Kali Linux and showed me how to open files, move to a specified line in a file, add text to a file, and switch between insert mode and command mode. I had some difficulty at first with remembering the different commands/modes that are available.
Another challenge I encountered was using the correct commands to navigate the file and perform the edit without making errors. After I had practiced the commands (such as I, Esc, /search, dd, :wq) within the vi editor, I began to feel more at ease navigating through and performing edits within vi. This lab has shown me just how valuable vi is to make edits to configuration files for the purpose of security within the cyber security field.
- Lab 4 – User and Group Accounts
This lab helped me learn about managing users, generating new users, viewing account information and making the necessary modifications to accounts in Kali Linux. I also learned about managing groups by creating groups, renaming the group and adding members to an existing group.
I sometimes had difficulty keeping track of the commands used for managing users and groups (i.e., switching between and confirming your login session or login account) but after repeating the process and confirming results with commands such as grep, id, and ls -l, I gained a better ability to manage users and manage account permissions and settings. This lab has given me insight as to how a system Administrator controls user access and protects the security of a Linux operating system.
- Lab 5- Password Cracking
This lab has allowed me to learn how to test passwords’ strength in Kali Linux. I created six different user accounts with a variety of password types (i.e., complex) and exported the hashes to a file. I was able to then use the tool “John the Ripper” along with the wordlist, “rockyou.txt,” to try to brute force my way through all six users’ passwords. It was initially somewhat confusing keeping track of which user was created with what kind of password (type and hash file).
One of my main challenges with this lab was learning how the tool, John, handled the hashes and figuring out which password was broken the fastest. After running John against the hashes for about 10 minutes and reviewing the results, I could definitely identify the weakness of the passwords broken within the first couple of minutes. This lab was an eye-opening experience in that I learned how important it is to use strong and complex passwords for information security purposes.
- Lab 6 – File Permissions
This lab provided an opportunity for me to learn how to manage file and folder permissions using Kali Linux. The process involved creating users and groups, learning how to create a common project directory for everyone involved in the project, and using different commands (such as chmod, chown, and umask) in order to restrict access to files or folders for individual users. I also worked with SGID to understand how group member privileges are inherited when multiple users try to access a common/shared file.
The biggest challenge I faced when working on this project was keeping a record of the many times, I changed my access permissions when switching between different user accounts. I used the ls -l command to confirm my access at every stage of the activity, as well as to test whether my users could access the files/folders that I had granted them permission to access. At the end of this lab, I gained an understanding of how SGID helps manage collaborative access and protects resources that are shared by multiple users on a common database using Linux Operating System.
- Lab 7 – Manage Local Storage
This lab introduced me to the management of local storage on Linux. I examined the existing disks and partitions through the commands: ls/dev/sda , fdisk -l, parted -l. Thereafter, I added a new virtual hard disk into the VM, and made comparisons on how the system appeared before and after its mounting.
Some of the challenges were creating a new partition and formatting it as well. After using fdisk, creating an ext4 filesystem, mounting it under /cyse, and verifying it with df, I saw how Linux deals with storage devices. This lab has motivated me by demonstrating to me how computer administrators insert disks, create partitions, and manage filesystems in actual environments.
- Lab 8 – Shell Scripting
The lab taught me how to write simple shell scripts in Kali Linux. This involved creating scripts with either vi/nano, adding the appropriate shebang line, marking the scripts as executable, and running the scripts from the Terminal. I learned about conditional statements, how to read input from the user, and how to check if a file or directory exists.
One of the difficulties I encountered was getting the logic in the script correct, particularly around the file type checks and printing the appropriate messages once the checks completed. After running the scripts many times and correcting small errors, I became more comfortable with how Bash handles conditions and performs file operations. Overall, this lab demonstrated how shell scripting enables automation and increases efficiency in managing Linux systems.
- Lab 9 – Task Automation
In this lab, I learned about automating system backups in Kali Linux using both shell scripting and crontab. I created a new user, wrote a script to archive and compress the user’s home directory, and moved the backup files to /var/backups. Finally, I made sure the script was scheduled to run periodically for 30 days via cron.
The biggest challenge that I encountered in completing this lab was formatting the filename variables as well as the tar command properly so that the backup was saved with the correct MIDAS-date format. After going through the testing phase of the script and checking my cron output, I was able to see how Linux can automate repetitive functions. This lab has demonstrated to me how useful automation such as scripting and scheduling are for system administrators in managing backups effectively.
- Lab 10 – Networking Basics
This lab has allowed me to practice subnetting while actually calculating the network addresses, broadcast addresses, usable ranges of IP addresses and the maximum number of hosts for various subnets. I used the information provided by the tables along with the IP Address/Subnet Mask pairs to calculate the binary values for each result so that I could verify my results.
As I began this lab, I had a difficult time determining the binary values and block sizes when calculating the first and last usable IP addresses. Once I went through the lab step-by-step to confirm my results, it became clear to me what patterns occurred. Overall, this lab helped improve my understanding of how to divide up networks and how subnetting can help with organization and security of IP addressing in real-world environments.
Lab 11 – Basic Network Configuration
This lab allowed me to examine basic networking on Kali Linux using tools such as ifconfig, route, netstat, ping and host. It provided me with an opportunity to review my IP address, routing table, current connections and DNS.
While working through the lab, I had difficulty distinguishing between NAT and Bridged mode after changing the VM’s network adapter type. Once I repeated the commands in both modes, it helped illustrate the changes in my IP address, routing, and connectivity. Overall this experience has given me a better appreciation of how Linux performs network configuration, along with what effects various VM networking modes have on the behavior of the system.