PiHole is a DNS Server for the main purpose of ad-blocking. PiHole has a good list of domain names it blocks that are known ad domains, lets you add custom domains (note, doesn’t have to be ad domains, which is great if you want to restrict certain websites from your kiddos), gives you logs so you can see what DNS queries have been made by what devices on your network, and more all for free.
Do yourself a favor, and get PFSense. PFSense is out of the box focused on security, and you can make as many complicated rules or networks as you like. You can make it work with pretty weak hardware (one of my firewalls is using a Celeron P4500 dual core @ 1.87GHz with 2GB RAM, and manages 100 devices with ease) but for Gigabit speeds you’ll want to invest in a decent NIC from Intel.
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: