Do yourself a favor, and get PFSense. Here is a wonderful starter breakdown of the best firewall I’ve ever used by Lawrence Systems, and I highly recommend you subscribe to their YouTube channel for more great content.
When I was in high-school, we had a fun game. Get an old machine, put Ubuntu Server on it, install Sendmail, and bombard a cell phone with text messages. While that’s harassment and I don’t condone it, I believe the Python we used still serves ‘educational’ value. Just edit the mailserver = smtplib.SMTP('localhost:port') line, making the localhost:port section relevent to your situation. I’m in no way responsible for what you do with this, so think for yourself before you do anything.
tmux is one of the tools I find myself using every single day as a sysadmin. If you’re working in a shell, mastering tmux can make your job so much easier. It’s a terminal multiplexer, which means you can use one terminal window to have multiple terminal sessions. If you disconnect from the machine you’re working on, a simple tmux attach-session -t sessionname has you back to where you left off.
Do you manage multiple different machines with protocols like SSH, RDP, VNC, or SFTP? If so, you need Remmina. Remmina lets you manage multiple machines from one application. No more needing to reference a file with lists of IP addresses and hostnames. Remmina is a free and open-source progam that is, “aiming to be useful for system administrators and travellers, who need to work with lots of remote computers”. For Ubuntu users, there is an official PPA for the latest stable version: