this post was submitted on 24 Mar 2025
92 points (95.1% liked)

Selfhosted

44983 readers
421 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
 

I've been running my server without a firewall for quite some time now, I have a piped instance and snikket running on it. I've been meaning to get UFW on it but I've been too lazy to do so. Is it a necessary thing that I need to have or it's a huge security vulnerability? I can only SSH my server from only my local network and must use a VPN if I wanna SSH in outside so I'd say my server's pretty secure but not the furthest I could take it. Opinions please?

top 50 comments
sorted by: hot top controversial new old
[–] GreenKnight23@lemmy.world 3 points 11 hours ago (1 children)

I'll ask this question.

would you fuck without a condom at a hundred man orgy?

[–] rhys@mastodon.rhys.wtf 3 points 11 hours ago

@GreenKnight23 @theselfhoster Yes. I wouldn't even question it.

[–] ipkpjersi@lemmy.ml 3 points 17 hours ago (1 children)

You should, yes. I run a firewall (I usually use ufw) on all of my Internet-connected devices, since all of my devices run Linux. There's not really any good reason not to in 2025.

But is there a good reason to run one on a server? Any port that's not in use won't allow traffic in. Any port that's in use would be added to the firewall exception anyway.

The only reasons I can think of to use a firewall are:

  • some services aren't intending to be accessible - with containers, this is really easy to prevent
  • your firewall also does other stuff, like blocking connections based on source IP (e.g. block Russia and China to reduce automated cyber attacks if you don't have users in Russia or China)

Be intentional about everything you run, because each additional service is a potential liability.

[–] Mouette@jlai.lu 3 points 1 day ago

I just went done this road and i'd say it is worth it even only for the learning part. I've set counter per application in nftable, and via a python script send them in SVG graph format to Glance dashboard. The result is I can monitor my whole network per application and the best part it all add up very well so I know there is no 'unknown' outgoing or ingoing traffic on my machine.

[–] Mikelius@lemmy.ml 4 points 1 day ago

My personal advice, secure it down to only permitting what needs it, regardless of your trust to the network.

Treat each device as if they've been compromised and the attacker on the compromised device is now trying to move laterally. Example scenario: had you blocked all devices except your laptop or phone to your server, your server wouldn't have been hacked because someone went through a hacked cloud-connected HVAC panel.

I lock down everything and grant access only to devices that should have access. Then on top of that, I enable passwords and 2FA on everything as if it were public... Nothing I self host is public. It's all behind my network firewall and router firewall, and can only be accessed externally by a VPN.

[–] Fizz@lemmy.nz 59 points 2 days ago (8 children)

Disclaimer, I'm not a network professional im only learning. But you dont need ufw since your router firewall should be able to filter majority of the traffic. But in security there is a concept of layers. You want your router firewall then your device firewall to provide multiple layers incase something slips through one layer.

So to give a simple answer, it depends how secure you want your network to be. Personally I think UFW is easy so you may as well set it up. 5sec of config might stop a hacker traversing your network hoping from device to device.

[–] mr_jaaay@lemmy.ml 3 points 23 hours ago

To follow up on this, I'd look to network segmentation as another useful security barrier. I've just started playing around with VLANs, but the way I plan on setting things up is to have individual VLANs for services, management and IoT, with the LAN for all other user-land devices. On top of this you add strict firewall rules to what can talk to what, on which ports, etc. So all devices on the network can do DNS queries to my two DNS servers, for instance, but things from my services VLAN can't reach anything outside of this VLAN...

[–] farcaller@fstab.sh 28 points 2 days ago

This is the best answer. Your router protects you from the outside, but a local firewall can protect you from someone prodding your lan from a hacked camera or some other IoT device. By having a firewall locally you just minimize the attack surface further.

[–] null_dot@lemmy.dbzer0.com 14 points 2 days ago (1 children)

This. It's unnecessary but it's another layer.

[–] elvith@feddit.org 10 points 2 days ago (3 children)

Instead of thinking with layers, you should use think of Swiss cheese. Each slice of cheese has some holes - think of weaknesses in the defense (or intentional holes as you need a way to connect to the target legitimately). Putting several slices back to back (in random order and orientation) means that the way to penetrate all layers is not a simple straight way, but that you need to work around each layer.

load more comments (3 replies)
[–] agile_squirrel@lemmy.ml 2 points 1 day ago (3 children)

I have about 20 services on my machine so I'm going to need to open a ton of ports (ssh, SSL, multiple higher number ports since some services require several ports). At that point, what is the point of a firewall if so many ports are open? With so many ports open, it seems like a firewall doesn't add much security vs the complexity it adds.

[–] Fizz@lemmy.nz 2 points 1 day ago

If someone exploits a service on the machine they can then connect outside that machine on any port. Ufw would prevent this. The router firewall would also likely prevent this unless they used an open port of the router or upnp was enabled.

[–] eldain@feddit.nl 2 points 1 day ago (2 children)

I recommend fail2ban to stop the automated attacks that are the background noise of the internet. It will set your firewall to block certain ip's for a while, especially ports 21/22 are getting hammered with dictionary login attempts. And port 80 and 8080 for example get constantly version checked to see if you are vulnerable with an old apache, old dokuwiki etc, so don't expose more than you need to and maybe learn about ssh tunnels and close a few.

I once installed ossim in a small network with a server and it showed me it is war out there, scripts flying everywhere.

[–] lud@lemm.ee 3 points 1 day ago

Also get rid of password authentication if you can.

[–] agile_squirrel@lemmy.ml 1 points 1 day ago (1 children)

My server is only available on my LAN and via a VPN. Is fail2ban applicable? Or is it mainly for public facing servers?

[–] eldain@feddit.nl 1 points 1 day ago

Only public facing ports, maybe your openvpn login. But that means you are already firewalled up and your attack surface is tiny, good 👍

[–] swab148@lemm.ee 5 points 1 day ago (1 children)

Sounds like you could use a reverse proxy.

[–] Jakeroxs@sh.itjust.works 2 points 1 day ago (1 children)

That doesn't count as a firewall though no? I use traefik as my reverse proxy (and like one thing on nginx that also goes through traefik ultimately) but I still put crowdsec on top

[–] swab148@lemm.ee 3 points 1 day ago (1 children)

No, but putting a bunch of those services behind a reverse proxy would lower the amount of open ports. It would also have the side effect of making firewall configuration easier, since you don't need rules for all those ports anymore.

[–] Jakeroxs@sh.itjust.works 2 points 1 day ago

True, I love not having to open ports anymore, game changing.

load more comments (4 replies)
[–] DarkMetatron@feddit.org 7 points 1 day ago

I only bind applications to ports on the Internet facing network interfaces that need to be reachable from outside, and have all other ports closed because nothing is listening on them. A firewall in this case would bring me no further protection from external threats, because all those ports have to be open in the firewall too.

But Linux comes with a firewall build in, so I use it even if it is not strictly needed with my strict port management regime for my services. And a firewall has the added benefit to limit outgoing network traffic to only allowed ports/applications.

That depends. If you have exposed services, you could use some features of the firewall to geoip restrict incoming requests to prevent spam from China and Russia and whatnot.

If you don't have any services running on a publicly accessible port, then what would the firewall protect?

[–] irmadlad@lemmy.world 15 points 1 day ago

IMHO, security measures are necessary. I have a tendency to go a bit heavy on security because I really hate having to mop up after a breach. So the more layers I have, the better I feel. Most of the breaches I've experienced were not some dude in a smokey, dimly lit room, wearing a hoody, and clacking away at a keyboard, while confidently announcing 'I'm In!' or 'Enhance!'. Most are bots by the thousands. The bots are pretty sophisticated now days. They can scan vulnerabilities, attack surfaces, et al. They have an affinity for xmrig too, tho those are easy to spot when your server pegs all resources.

So, for the couple days investment of implementing a good, layered security defense, and then the time it takes to monitor such defenses, is worth it to me, and lets me sleep better. To each their own. Not only are breaches a pain in the ass, they have serious ramifications and can have legal consequences such as in a case where your server became a hapless zombie and was orchestrated to attack other servers. So, even on the selfhosted side of things, security measures are required, I would think.

It takes about 5 minutes to set up UFW which would be the absolute minimum, I would think.

[–] foggy@lemmy.world 11 points 1 day ago

If it is just you on your server and the only access from outside your network is SSHing in front the VPN? You're good. Especially if it's just you on your network/VPN.

If there are services that others utilize, you need a firewall. Can't trust other people's devices to not drag in malware.

[–] magic_smoke@lemmy.blahaj.zone 12 points 2 days ago* (last edited 2 days ago)

I like to run ufw on all my machines but I'm also a tinfoil-hat wearing wacko who believes that no computer should ever really be trusted. Just trusted enough to do specific tasks.

If someone somehow busts into one of my VLANs, at least the other machines on that net will still have some sort of protection.

[–] ancoraunamoka@lemmy.dbzer0.com 7 points 2 days ago (1 children)

One thing that hasn't been said in this thread is the following: Do you trust your router? Do you have an isp that can probe your router remotely and access it? In those cases, you absolutely need a firewall

[–] ikidd@lemmy.world 3 points 1 day ago

Absolutely. Even if your ISP is firewalling, never trust they will maintain it, and some of these cheapshit routers they use are awful. Use your own router and put it on the ISP routers DMZ.

[–] hsdkfr734r@feddit.nl 6 points 2 days ago* (last edited 2 days ago)

In your case: no need for a fw if you can trust your local network.

Generally: services can have bugs - reverse proxy them. Not everybody needs to access the service - limit access with a firewall. Limit brute-force/ word-list attempts - MFA / fail2ban.

[–] mhzawadi@lemmy.horwood.cloud 7 points 2 days ago

If your router is setup to only allow in the ports with a service hanging off it, like SSH. Then a firewall wont add anything your router doesnt.

On the flip side, if your running any kind of VPS or directly accessible server, like a VPS or dedicated server. Then a firewall is required.

Now protecting your server from other things on your local network might something you want to do, think IoT stuff getting popped and being used to hack other things on the network

[–] superglue@lemmy.dbzer0.com 4 points 1 day ago (1 children)

I use OpenWRT on my network and each server I have is on its own VLAN. So in my case, my router is the firewall to my servers. But I do have on my todo list to get the local firewalls working as well. As others have said, security is about layers. You want an attacker to have to jump multiple hurdles.

[–] possiblylinux127@lemmy.zip 1 points 1 day ago (1 children)

Why did you put each server in its own vlan? You now have a bunch of separate broadcast domains that need a router to move traffic between them. Switching is much faster since it is done in hardware most of the time.

[–] superglue@lemmy.dbzer0.com 1 points 1 day ago (1 children)

Mainly for security reasons. Both servers have some limited exposure to the internet. Are you saying doing it that way has performance implications? I haven't noticed any problems its all fast just like before when everything was on the same LAN

[–] possiblylinux127@lemmy.zip 1 points 1 day ago (1 children)

It will impact server to server performance significantly.

If the servers are independent that's fine but don't do a file share or some other performance critical component across vlans.

[–] superglue@lemmy.dbzer0.com 1 points 1 day ago (1 children)

Interesting, I haven't noticed anything, in fact since I switched everything has felt faster. And I'm constantly sending large files to devices on other VLANs.

load more comments (1 replies)
[–] Evotech@lemmy.world 3 points 1 day ago* (last edited 1 day ago)

No

If it's just one server you probably already use a firewall on the server.

[–] Shimitar@downonthestreet.eu 5 points 2 days ago

You don't. Providing you have an upstream gateway that do the firewall for you, provided you don't have an open WiFi, provided you use a reverse proxy, provided you have sane network settings all around, provided you run linux(or similar).

Even better if you are behind CGNAT.

Provided you know what you are doing.

On the other hand, setting up a firewall in a safe way is no easy task either.

I use an opnSense on top of my home network, given all the above "provided".

Before that, I never run a firewall and never had an issue. Always being cg-nat tough.

[–] Max_P@lemmy.max-p.me 4 points 2 days ago

Is it directly exposed over the Internet? If you only port forward the VPN on your router, I wouldn't worry about it unless you're worried about someone else already on your LAN.

And even then, it's really more like an extra layer of security against accidentally running something exposed publicly that you didn't intend to, or maybe you want some services to only be accessible via a particular private interface. You don't need a firewall if you have nothing to filter in the first place.

A machine without a firewall that doesn't have any open port behave practically the same from a security standpoint: nothing's gonna happen. The only difference is the port showing as closed vs filtered in nmap, and the server refusing to send any response not even a rejection, but that's it.

[–] CompactFlax@discuss.tchncs.de 2 points 1 day ago (1 children)

You have a firewall. It’s in your router, and it is what makes it so that you have to VPN into the server. Otherwise the server would be accessible. NAT is, effectively, a firewall.

Should you add another layer, perhaps an IPS or deny-listing? Maybe it’s a good idea.

[–] non_burglar@lemmy.world 7 points 1 day ago (8 children)

Op means, as they said, a firewall on the server itself.

NAT is, effectively, a firewall.

No it isn't. Stop giving advice on edge security.

[–] hedgehog@ttrpg.network 3 points 1 day ago (2 children)

Are you saying that NAT isn’t effectively a firewall or that a NAT firewall isn’t effectively a firewall?

[–] non_burglar@lemmy.world 4 points 1 day ago

NAT simply maps IPS across subnet boundaries in such a way that upstream routing tables don't need updating.

If you use destination NAT forward rules to facilitate specific destination port access, you are using a firewall.

What sort of isp supplied residential equipment doesn’t block inbound connections? Pedantically, you’re correct.

load more comments (7 replies)
load more comments
view more: next ›