This week marked the exciting beginning of our class, where we explored the intricate world of desktop computers. Our hands-on session included examining the different ports on a desktop and opening up the machine to explore its internal components.
One of the highlights was understanding solid state drives (SSDs). Unlike traditional hard drives, SSDs have no moving parts and use non-volatile storage, meaning they retain data even without a continuous power supply. This makes them faster and more reliable.
We also took a closer look at the motherboard, the green circuit board with complex lines known as traces. It acts as the central hub, connecting all the components and facilitating communication between them. Additionally, we learned about the advanced technology of using lasers to transmit information through fiber optics, a critical component in modern communication systems.
Another key component we studied was the Central Processing Unit (CPU). Often referred to as the brain of the computer, the CPU is essential for executing tasks and performing complex mathematical calculations. Understanding its role underscored the importance of this component in a computer’s overall functionality.
I also discovered that GitHub, a popular platform for version control and collaboration, is owned by Microsoft. Although my experience with GitHub has been limited, I am motivated to explore it further and consider contributing to projects like Pingpong.
Overall, this first week was both productive and enlightening, laying a solid foundation for the weeks to come. It has sparked my curiosity and enthusiasm for the intricate workings of desktop computers and modern technology.
This week, I successfully completed Modules 1 and 2 on Red Hat Academy, gaining valuable insights and practical skills in managing scheduled jobs and system maintenance through the command line.
I learned that deferred jobs are tasks scheduled to run in the future. The timespec command initiates the process of entering new jobs into the schedule. Using the atq command provides an overview of pending jobs for the current user, while the atrm command is used to remove scheduled jobs.
The crontab command is essential for managing recurring scheduled jobs. Specifically:
crontab -l lists the scheduled jobs for the current user.
crontab -r removes all scheduled jobs for the current user.
crontab -e allows editing of scheduled jobs for the current user.
An important best practice I learned is to run recurring jobs from system accounts rather than user accounts to maintain system integrity and security.
I also learned about the importance of purging temporary files on persistent storage to prevent disk issues and stale working data. The systemd-tmpfiles tool offers a structured and configurable method to manage temporary directories and files efficiently. By using the systemctl cat systemd-tmpfiles-clean.timer command, you can view the contents of the systemd-tmpfiles-clean.timer unit configuration file, which provides insight into the automated cleanup process.
Overall, this week was incredibly productive, and I feel I have significantly improved my command line skills. These new competencies in job scheduling and system maintenance will be invaluable as I continue my journey in cybersecurity and system administration.
This week, we embarked on the exciting project of designing our own Minecraft server. I learned that a Minecraft server typically involves a network of connected servers rather than a single machine, which allows for greater flexibility and scalability.
Key insights from this week include:
Internet Connection: A stable internet connection with low latency is crucial for a smooth gaming experience.
Memory and CPU: The amount of memory (RAM) and CPU allocation directly impacts the number of players the server can support and the overall quality of the gameplay. Proper allocation of these resources is essential for optimal performance.
Minecraft JAR Types: Choosing the right type of Minecraft JAR is critical. The options include Vanilla, Spigot, Bukkit, or Modded, each offering different features and capabilities.
Core Plugins: Selecting and installing the core plugins is an important step to enhance the server’s functionality and provide the desired features for players.
Permissions Management: Setting up permissions is vital to prevent the server from being destroyed by unauthorized actions. Proper permission settings ensure a secure and enjoyable environment for all players.
I am enthusiastic about the progress we’ve made so far and look forward to learning more in class later today. This hands-on project is not only enhancing my technical skills but also providing a deeper understanding of server management and network configuration.
This week, our focus was on managing users and learning how to remotely connect to a device. Here are the key points I learned:
Root Access: In a Linux system, root is the highest level of access. The root account is at the top of the directory structure and has complete control over the system.
BASH: BASH (Bourne Again SHell) is a command line scripting language used for executing commands and scripts.
SSH (Secure Shell): To remotely access a device securely, both devices need SSH installed. SSH provides an encrypted connection for remote access. The command to install SSH is sudo apt-get install ssh. Once installed, you can connect to another device using ssh username@ipaddress.
This new skill is incredibly exciting, though I know I need more practice to feel comfortable and confident using it regularly.
We also explored some new technologies:
Descript: A software tool that transcribes video to text, making video content more accessible and easier to edit.
Claude 3.5: The latest version of Claude, an AI tool. I experimented with it and appreciated the feedback it provided. Although I attempted to use it to create a game, I discovered that certain features require a paid version.
Overall, this week was highly enjoyable and informative, enhancing both my technical skills and my familiarity with emerging technologies.
Today’s journal entry centers on essential commands for managing file operations in Unix-like systems. Here are the key takeaways:
tar Utility: The tar command is a fundamental tool for creating, managing, and extracting archives. It consolidates multiple files into a single archive file, making data transfer and storage more efficient. Using tar, you can easily package files and directories into one file for convenient handling.
rsync Command: rsync is designed for secure file copying between systems. It offers several options to enhance its functionality:
Dry Run (-n): The -n option performs a dry run, simulating command execution without making actual changes. This helps reveal potential modifications, ensuring critical files remain unaffected.
Verbose (-v): The -v or --verbose option provides detailed output, aiding in troubleshooting and monitoring the progress during transfers.
Archive Mode (-a): The -a or --archive option activates archive mode, which facilitates recursive copying while preserving file attributes. This mode consolidates several valuable options into a single command for efficient file synchronization and backup operations.
These commands are invaluable for efficient and secure file management. Understanding their options and functionalities has significantly enhanced my ability to handle file operations effectively in Unix-like systems.
This week, we explored various aspects of system components, security tools, and monitoring utilities. Here’s a detailed account of what I learned:
Kernel and Drivers
Kernel: The kernel is the core component of an operating system, managing hardware resources and facilitating communication between hardware and software.
Drivers: Drivers are specialized software that allow the operating system to communicate with hardware devices. For instance, keyboard and mouse drivers enable these devices to interact seamlessly with the system.
Microsoft Outage - CrowdStrike
Who is CrowdStrike? CrowdStrike was a leading cybersecurity company that provides endpoint protection, threat intelligence, and incident response services. Their flagship product, Falcon, uses AI and behavioral analytics to detect and prevent threats.
CrowdStrike Driver Update - Blue Screen: Recently, a driver update at kernel level from CrowdStrike caused an outage to systems using CrowdStrike. This issue underscores the importance of thoroughly testing updates before deployment.
Typosquatting Attack: Hackers exploited this situation by typosquatting, creating websites with slightly misspelled versions of legitimate CrowdStrike domains. Users searching for a fix to the update issue were directed to malicious sites, highlighting the need for caution and vigilance.
CIA Triad
The CIA Triad is a fundamental concept in cybersecurity, representing the core principles of information security:
Confidentiality: Ensuring that information is accessible only to those authorized to access it.
Integrity: Maintaining the accuracy and reliability of data throughout its lifecycle.
Availability: Ensuring that information and resources are available to authorized users when needed.
System Monitoring Tools
htop: htop is an interactive process viewer for Unix-like systems, similar to the Task Manager in Windows. It provides real-time monitoring of system processes, including CPU and memory usage.
PID (Process ID): Each running process is assigned a unique Process ID (PID), which can be used to manage and control processes.
ps aux: The ps aux command shows a snapshot of all running processes, including details like user, PID, CPU usage, memory usage, and command.
bashtop: bashtop is a resource monitor that provides a visually appealing and interactive interface for tracking system performance, including CPU, memory, disk, and network usage.
These tools are essential for maintaining system performance and security. Understanding how to use them effectively will enhance my ability to monitor and manage systems efficiently.
Overall, this week’s learning has provided me with deeper insights into system components, security measures, and monitoring tools, further equipping me for a career in cybersecurity.