Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam.
-
Posts here are to be centered around self-hosting. Please ensure it is clear in your post how it relates to self-hosting.
-
Don't duplicate the full text of your blog or git here. Just post the link for folks to click.
-
Submission headline should match the article title.
-
No trolling.
-
Promotion posts require your active participation in selfhosting or related communities, or the post will be removed. No more than 10% of your posts or comments may be self-promotional, or your post will be removed. F/LOSS Exception: If your post is about a project that is completely open source & can be self-hosted in full without payment, your post is exempt from this rule as long as you continue to engage in comments.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
view the rest of the comments
So, I have a standalone pFsense box running Suricata (IDS/IPS) on WAN & LAN, pfblockerng (filtering), unbound, ntopng (traffic analysis), and Tailscale as an overlay on the firewall. The servers are on their separate VLANs, IoT, phone, laptops and other devices are also isolated. On the server I run Cloudflare Tunnels/Zero Trust, UFW, Tailscale as an overlay, and Fail2Ban. Everything is 'default deny until something complains'. I've never run oPensense so I can't speak to their software, but pFsense has been rock solid for me for years. I utilize Lnav to review logs. It's lean, easy to install, and it just works.
To be quite honest about updates like Docker container updates, I wait until all the early adopters work out all the bugs for me and update when I feel comfortable. Updates to Ubuntu Jammy are usually straight forward and I can't say I've had many issues over the years with Ubuntu Jammy updates. There may be a rare occasion, but nothing really stands out at this moment. The only issue I can think of here recently is when Docker updated but Portainer hadn't caught up, but that was about a 30 minute fix.
It took me a while to get everything lined out from the modem to the servers, but my track record makes me feel pretty comfortable with how I have everything set up. In fact, literally most of the time, I just enjoy the set up and scout for the next project.
How did you monitor your vlans with suricata? I have enough trouble tuning a couple subnets, never mind tuning for correlation between 3 or 4. This assumes you have different subnets per vlan, of course.
At present I only monitor the VLAN serving the 'computer room' which includes the servers. It's where all the 'stuff' happens so I figured I'd start with the most important. However I am in the process of learning how to SPAN (Switch Port Mirroring) where you configure your managed switch to copy traffic from specific VLAN port or all VLANs ports to a dedicated 'monitoring port' where a micro server is running Suricata. The mirrored traffic will retain their VLAN tags and Suricata can parse these tags.
Those are the lofty plans. LOL I'm still fiddling around with it and Suricata because you have to actually set Suricata up to be able to do that. It doesn't right out of the box.
I'm not sure how far down this path you've gone, but suricata will not automatically correlate primitives into actual alerts from different vlans without transforms, which are cpu-intensive for what they do.
You may want to pull your tap/span/mirror from a point where they converge, like internal side of network egress.
It is possible to offload the correlation to a downstream SIEM or log aggregator like Wazuh or ELK. Again, it's something I'm currently trying to spool up on. I know it can be done, I'm just trying different things until I do get it right. I appreciate any input.
Oh, yeah, absolutely. Suricata was created not long after snort, in the days when an ids did the gathering and the correlation.
You're totally right, the way most people and orgs do it today is to ship ids logs to a siem for the correlation, overall easier to manage. ELK is the go-to for most, not sure about wazuh, I've only seen it in the homelab space, but it might work.
There is a distro (not totally open source) called SELKS, which sets up suricata, elastic and some other tooling (kibana) in a commonly-used setup. I deploy it a lot because it saves time with the non-security setup with dB's and such. Pretty easy to point syslog to it and you can see alerts right away and start tuning.
I'm envious of your position, I learned a lot setting this stuff up.
I did not know about SELKS. I will definitely check it out. Thank you for the tip.