this post was submitted on 04 May 2025
116 points (96.8% liked)

Selfhosted

46648 readers
391 users here now

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:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

Hey all, i've decided I should probably setup something else to help block nefarious IP addresses. I've been looking into CrowdSec and Fail2Ban but i'm not really sure the best one to use.

My setup is OpnSense -> Nginx Proxy Manager -> Servers. I think I need to setup CrowdSec/Fail2Ban on the Nginx Proxy Manager to filter the access logs, then ideally it would setup the blocks on OpnSense - but i'm not sure that can be done?

Any experience in a setup like this? I've found a few guides but some of them seem fairly outdated.

Edit: thanks everybody for the great info. General consensus seems to be with crowdsec so I'll go down that path and see how it goes.

Edit 2: So after having it up and running for the better part of a day, i'm going to remove it again. For some reason there was a performance impact loading websites, probably because it was waiting for a response from the Crowdsec hub? Either way, after stopping it from running everything is back to normal again. So I might revisit how I do it and probably try Fail2Ban now instead. Thanks everybody

you are viewing a single comment's thread
view the rest of the comments
[–] SirMaple__@lemmy.ca 8 points 2 days ago* (last edited 2 days ago) (2 children)

Crowdsec with a central LAPI server. You should install it on the servers themselves to monitor the application logs directly. Then every bouncer(firewall, router, edge device) connected to the LAPI will all block the same IPs. I got sick of repeat offenders and upped the ban time to 1 year in hours.

[–] mbirth@lemmy.ml 9 points 2 days ago (1 children)

I’ve recently enabled banning whole subnets if more than 3 malicious actors from that subnet are on the blocklist. This is great for all those DigitalOcean droplets and other cheap hosters used by those people…

[–] SirMaple__@lemmy.ca 1 points 2 days ago* (last edited 2 days ago) (1 children)

I've been thinking about going this route. What size subnet are you banning? /24?

Only thing stopping me is I selfhost email and don't want to ban say a whole subnet from Microsoft/Azure and end up blocking the outgoing servers for O365. I'm sure I can dig around and look at the prefixes to see which are used for which of their services just haven't had the time yet.

[–] mbirth@lemmy.ml 4 points 2 days ago (1 children)

I let CrowdSec determine that. I'm seeing /13, /12 and even /10 in my decisions list. All seem to be Amazon AWS ranges.

[–] sudneo@lemm.ee 2 points 2 days ago

Wow, those are big networks. Obviously I suppose in case of AWS it doesn't matter as no human visitor (except maybe some VPN connection?) will visit from there.

As someone who bans /32 IPs only, is the main advantage resource consumption?

[–] Matty_r@programming.dev 2 points 2 days ago (1 children)

Awesome that makes a lot of sense, cheers. So I'll install the Crowdsec agent on the Nginx Proxy Manager, and potentially also on the servers.

[–] SirMaple__@lemmy.ca 2 points 1 day ago* (last edited 1 day ago) (1 children)

No problem. It's a great piece of software. I have it monitoring logs for nextcloud, vaultwarden, mailcow(postfix & dovecot), basic nginx proxies (just to be safe and for rate limiting). I have 4 OPNsense and 1 Debian bouncers.

I had an issue with so a note about setting up the bouncer on OPNsense. If you have the LAPI on a different machine you can currently only connect OPNsense to it using the command line. The LAPI options in the web interface are for defining the interface to bind to and run the LAPI on OPNsense itself. Which isn't an issue, I just wanted it on a VM so it's easier to keep online instead of it going down if the OPNsense it's on fails. Plus I like to keep SSH disabled on my OPNsense devices and spend a bit of time using cscli on the LAPI VM from time to time.

[–] Matty_r@programming.dev 1 points 1 day ago

Cheers, I've since discovered that's is "bouncers" that I want on the endpoints I.e on my Nginx Proxy Manager. I'll just use the LAPI on the Opnsense box for now I think.