I’m almost ready with my lemmy instance server. Now what are some steps that are definitly worth doing after setup?
Definitely install fail2ban and use certificates for ssh authentication. Also, use cloudflare and consider using an email delivery service like jetmail instead of sending mail directly from the instance.
You could then block any incoming traffic that doesn’t come for port the ssh port or from cloud flare for port 443.
In my opinion, folks should avoid Cloudflare at all costs. They’re free speech maximalists with a history of defending NAZI’s and other terrible people. They only discontinue service to white nationalists when the media attention gets too hot. Then they turn around and let them back in once things have died down.
Also, speaking as a screen reader user, if they think your IP address is suspicious (maybe because you’re using Tor or a VPN), they present an inaccessible captcha and don’t offer work-arounds. Then because the entire website is blocked behind the captcha, screen reader users can’t even get in contact with you to let you know what’s happening.
Cloudflare is a major player in the infrastructure of the internet. The should remain neutral and provide their service to anyone operating within the law.
Care to share any source on the first part? Not doubting, I’m just genuinely curious because this is the first time I’ve read that.
From a Mashable article published at the time, quoting the CEO in his own words:
In an interview, Prince expressed doubt about his decision to remove The Daily Stormer from Cloudflare, and conveyed concern over companies like his own, and their ability to pull a lever, and knock a website offline.
If you go back to [the] early days of Cloudflare, we’ve wrestled with: ‘What is our role in term of controlling what content flows through our network?’ And we believed that the right principle was to remain content neutral.
I think he’s exactly correct. This is what Net Neutrality is about. Service providers on the Internet should be treated like a utility. It’s easy to conflate this issue with that of ‘tolerating the intolerant,’ but I don’t think that’s correct at all. It’s also an argument that many parts of the Internet infrastructure have had. Cloudflare is a big part of the infrastructure underpinning the Internet at large, but it’s only a part. There are many others that need to come together to support a simple website. What about RIRs (Regional Internet Registries) like ARIN, who are responsible for allocating IP addresses? If you’re going to be upset with Cloudflare for struggling about whether or not to be neutral, why should they get off the hook? I think it’s probably because most people don’t understand how the Internet works, and so they remain ignorant of what goes into simply ‘hooking up’ a website to the Internet, allowing these other critically necessary components to fly under the radar of the public attention.
The debate about various Internet infrastructure entities remaining neutral has long raged. By and large, the communities that build and maintain these kinds of underpinnings have come down on the side of remaining neutral. It’s a vastly complex situation, with no easy answers, and a LOT of ‘hidden’ variables and concerns.
Also, use cloudflare and …
I was using CF initially for proxying, but noticed some weirdness with federation***. I would only get updates from Beehaw, but lemmy.world and other servers’ updates wouldn’t come through. As soon as I dropped the proxy and restarted the server, my instance got flooded by updates. I’m really not sure where to start debugging, so I’ve kept it off for now
*** see comments under chris below. Fixed
CF has some firewall feature active by default. You have to turn them off.
Oh thanks for the direction. Will check it out!
Checked it out. I ended up having a WAF rule blocking non-US traffic… Given Beehaw is US based, the fact that I was mostly getting posts from this instance makes a lot of sense now. Thanks again
Glad I could help
consider using an email delivery service like jetmail instead of sending mail directly from the instance
Why is this better? To overcome spam filters, or is there some security risk associated with e-mails?
Better delivery and avoids exposing your IP via emails, although it’s best to setup a some sort of tunnel to avoid having that problem altogether.
Is it possible to have a public-facing instance without exposing your IP? I am not sure I understand that part, and I am very interested in understanding how to achieve that.
Thank you! I will look into cloudfare, what people say about it, and what resources are necessary to avoid DDoS attacks without it!
For incoming http(s) connections you can hide behind Cloudflare, which also helps for caching pictures. For outgoing connections to other instances you could also hide behind an outgoing proxy, in my opinion that’s not really necessary, but I’m sure others would disagree on that.
To further this, I use a mail relay that accepts connections on SMTP and then forwards outbound email via a service like AWS or sendgrid via their API.You can run a forwarder in a container.
Practice standard server security.
- Disable all inbound ports in the firewall except for those you absolutely need (like port 80/TCP, port 443/TCP, sshport/TCP, DENY all other inbound)
- Use the principle of least privilege. Don’t run your docker containers or web server as the
root
user. Make a new user, give it only the permissions needed in order to run the service definitely not sudo group. Set a strong password for those users, and disable remote/SSH logins for them - For SSH, use public key authentication, disable password login afterward
- Instead of fail2ban, I like and would recommend Crowdsec. Needs some fiddling for Lemmy though, due to rate limits and federation