I am an IT professional with 5 years of experience, having worked in various roles including IT Technician, Service Desk Tech, IoT Help Desk Customer Service Rep, and Operations Tech. Throughout my career, I have gained extensive knowledge and hands-on experience in troubleshooting, network management, and providing top-notch customer service for a variety of tech and admin needs. In addition to my IT expertise, I bring 17 years of military experience as a Physical Security professional, which has honed my skills in security protocols, problem-solving, and attention to detail. This combination of technical knowledge and military discipline enables me to approach every challenge with a strong work ethic and a strategic mindset.
In my free time, if I'm not spending time with my family. I enjoy studying new technology through Udemy courses and working in my homelab, which allows me to expand my knowledge and stay updated with the latest trends. I also dedicate time to building projects, as I find hands-on experience crucial for sharpening my skills. By combining these learning methods, I can continuously improve and apply what I’ve learned, ensuring that I stay ahead in my field.
Project 1:
User Account Creation Script
Project 2:
Home NAS with my Ubuntu VM
Project 3:
Apache Web Server on Ubuntu Server
Project 4:
Automated System Backup
Project 5:
Automated Security Network Monitoring and Reporting
Project 6:
Account Status Report Script
Project: User Account Creation.
Objective: Create a Bash script that automates the process of creating accounts.
Steps Taken:
1. After deploying the script, it will prompt the user for a username,
2. Once username has been established. Type out first and last name for the comment in the script.
3. After fullname has been provided, assign the user to the appropriate group.
4. Answer if the user should be assign to the sudoer group.
5. After selecting yes or no to assign the user to the sudoer group, create a password.
6.Once password has been created. The user's account has been completed.
7.Then confirm if the user is actually created and has been assigned to the appropriate group by iding them from the terminal.
Project complete. User has been created and has been assigned to the appropriate group.
Project: Home NAS with my Ubuntu VM.
Objective: Create a shared NAS filesystem using samba.
Steps Taken:
1. Install Samba
2. Then we need to create a share drive that will be used in order for my Windows PC to connect to over the network.
3. Set up permissions to nobody:nogroup. This way if something goes wrong within this drive it doesn't cause a problem with the system.
4. Provide the drive with 0777 so that I can even upload some executables.
5. Now we need to open up the smb.conf file to input some changes that will allow us to connect to a specified drive from my Ubuntu server. We do this be either VIM or nano. I'm using nano.
6. Add the path, valid users, and permission requirements within the share.
7. Once the smb config file has been updated. Restart Samba.
8. Now we go and map out the drive destination on my windows machine.
8. After inputting the drive destination. I was able to map it to my laptop and tranfer an image over to my Ubuntu server.
Project: Apache Web Server.
Objective: Host an Apache Web Server on Ubuntu Server Hosted on Digital Ocean.
Steps Taken:
1. Update the Server.
2. Install Apache.
3. Start Apache.
4. Enable Apache
5. Allow HTTP and HTTPS traffic:.
6. Verify the Web Server
7.Customize the index.html file in the html directory with nano. I just renamed the original file to index_1.html and recreated a new one.
8. Typed out a simple html file.
9. Typed my VM Server's ip4 address into Chrome and now I have my own website.
Project: Automated System Backup.
Objective: Create an automated backup of the entire system.
Steps Taken:
1. Prepare Backup Directory called backups.
2. Create the Backup Script within the /usr/local/bin/ directory.
2.1. Date format for filename.
2.2. Backup destination.
2.3. Backup filename.
2.4. Exclude directories to avoid backing up mounted devices and proc/sys.
2.5. Log file.
2.6. Create the backup.
3. Check if the backup was successful.
4. Make the Script Executable.
5. Schedule the Backup with a cron job by opening crontab.
6. Lets test the script.
7. Now lets rotate old backups.To avoid filling up the disk, letscreate a script that removes backups older than 7 days.
8. Now lets confirm that the backups are being made.
Project complete. Now we have a backup script that will run daily and archive backups older than 7 days.
Project: Automated Security Network Monitoring and Reporting
Objective:Periodically scan the network for open ports and services, then generate a report with the findings.
Steps Taken:
1. Update the Ubuntu server and install nmap.
2. Create the bash script and name it network_security_monitor.sh. Let's start with setting up the variable for the report file. Giving it the date, directory that the report needs to be stored in, filename based on date, and the target ip address that we want to scan.
3. Create report directory if not exists.
4. Perform network scan.
5. Perform nmap scan (top 1000 ports by default).
6. Summarize open ports.
8. Let's make it where is notifies me that the script is complete.
Script completed.
9. Make the script executable.
10. Schedule routine monitoring with cron.
11. Add a line to run the script at a specific time. I set it to the 14 minute for training purposes.
12. Confirm that the report is being saved into the security_reports directory.
13. Now let's take a look inside the report.
Project completed. We have a timed script that periodically scan the network for open ports and services.
Project: Account Status Report Script
Objective: Write a bash script using VIM to report user account statuses.
Steps Taken:
1. Open a VIM document within the /usr/local/bin and name it account_status_report.sh.
2. Start with writing report file location and the email address that I would like the report to be sent to.
2.1. Create or clear the report file. Let's have it provide the name of the report along side the date and time the report was ran.
2.2. Loop through all local users with UID >= 1000 (non-system users).
2.3. Check if the account is locked
2.4. Check password expiration info
2.5. Send report via email
3. Make the script executable.
4. Lets check an see if the script will run before setting up a cronjob.
5. Looks like it's providing the username, status, and password expiration.
6. Now lets open crontab and set a time for when we want this script to run. For training purposes, I'm setting it up for every minute.
7. Set the report to run every minute and provide error logs if anything goes wrong.
8. Now we'll wait until either the report or error appears..
Error report.
Account status report.
Project completed. We have a timed script that will run at a specific time that will report user account status. Now, you might have noticed that I should be recieving emails for these reports. This is because I have not set up a mail server on my Rocky VM. This will be included into my next project.