Started off by
- Enabling unattended updates
- Enable only ssh login with key
- Create user with sudo privileges
- Disable root login
- Enable ufw with necessary ports
- Disable ping
- Change ssh default port 21 to something else.
Got the ideas from networkchuck
Did this on the proxmox host as well as all VMs.
Any suggestions?
this is not even all of it.
the big take away is i try to layer things. the endpoint devices are most important to protect and monitor as those are the foot hold something needs to then move through the network.
i then use network level protections to secure the remaining portions of the network from other portions of the network.
Messy…just messy
Anything that has internet access like your IoT can be C&C utilizing stateful connections. An outbound socket is built, and reflected traffic can come back in. Your IoT devices especially should not be exposed to the internet. They can’t even have an antivirus agent installed on them.
That’s actually no longer true… kinda. You can’t install AV on them, but there are security companies filling the niche of embedded IoT security. Now, you won’t see this in your average consumer device, but on the commercial market there is a growing demand for some way to secure an embedded device from malicious software/firmware modifications.
You can SPAN internal traffic to an IDS device currently. Or, if internal network throughput isn’t an issue, you can force east-west traffic through an IPS with DPI enabled instead.
That’s historically how east-west would be mediated within an enterprise environment for devices incapable of being secured with agents.
Absolutely, and I’ve implemented similar east-west controls (as either prevent-first or for detection). You’ll get no argument from me on that. I’m just noting an interesting trend as IoT devices become more ubiquitous in commercial and industrial environments, and some of those devices must (for whatever reason) have access to some part of the network or internet.
True, and 100% agree except I forgot to mention
1.) The fortigate has a known list of botnet command and control servers that are blocked 2.) I only allow them to access their home server domain names for the only purpose of allowing for firmware updates. They are not capable of accessing any other domains or IPs
Replace Fortinet with Pfsense (+Suricatta/Snort) for non-propriety. (I have a Fortinet firewall and I can’t bring myself to pay for their packages). One thing I’d recommend for you, as I host a lot of stuff is DNS Proxy though cloudflare, so the services I’m hosting are not pointing to my origin IP.
None of my services are available outside my house without first logging into the fortigate SSL VPN. That is the only open port I have.
The SSL VPN uses a loopback interface so only IPs from the US can access it, and I have strong auto block enabled and I add IPs of systems that try brute forcing into the box so they get blocked
I did forget to mention that I use cloud flair already for the exact reason you mentioned so my home IP is not used.
I also have a domain name with valid wildcard certificate. The domain is used to access the SSL VPN and I also then use the cert within my entire homelab so I have everything encrypted
I was not a fan of PF sense, the fortigate has more security features that I wanted
Pretty cool man, thanks for sharing.