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 posting.
-
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.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
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
Public key auth, and fail2ban on an extremely strict mode with scaling bantime works well enough for me to leave 22 open.
Fail2ban will ban people for even checking if the port is open.
Honest question, is there a good default config available somewhere or is what
apt install fail2ban
does good to go? All the tutorials I’ve found have left it to the reader to configure their own rules.Honestly the default config is good enough to prevent brute force attacks on ssh. Just installing it and forgetting about it is a definite option.
I think the default block time is 10 minutes after 5 failed login attempts in 10 minutes. Not enough to ever be in your way but enough to fustrate any automated attacks. And it's got default config for a ton of services by default. Check your /etc/fail2ban/jail.conf for an overview.
I see that a recidive filter that bans repeat offenders for a week after 10 fail2ban bans in one day is also default now. So I'd say that the results are perfect unless you have some exotic or own service you need fail2ban for.
Well your rules will depend on what services are actually running on the host. For a basic setup I recommend just configuring /etc/fail2ban/fail2ban.local, /etc/fail2ban/jail.local and /etc/fail2ban/jail.d/sshd.conf.
You will also want to harden sshd configuration.
From there, every time you add a new service with an authentication mechanism, setup a corresponding fail2ban jail/filter to check the logs for auth failures. Here are a few examples: gitea jail and filter, jellyfin jail and filter, nextcloud jail and filter.
Fail2ban comes with pre-made filters for common services, just enable the relevant jails from
jail.local
. If you need to write custom jails/filters, make sure to check that your filters work against actual log messages usingfail2ban-regex