this post was submitted on 27 Sep 2024
31 points (94.3% liked)

Linux

48165 readers
643 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Hey there folks,

I'm trying to figure out how to configure my UFW, and I'm just not sure where to start. What can I do to see the intetnet traffic from individual apps so I can know what I might want to block? This is just my personal computer and I'm a total newbie to configuring firewalls so I'm just not sure how to go about it. Most online guides seem to assume one already knows what they want to block but I don't even know how/where to monitor local traffic to figure out what I can/should consider blocking.

top 50 comments
sorted by: hot top controversial new old
[–] Shdwdrgn@mander.xyz 22 points 1 month ago (11 children)

You've got it backwards. A firewall blocks everything, then you open up the ports you want to use. A standard config would allow everything going out, and block everything coming in (unless you initiated that connection, then it is allowed).

So the question you should be asking, is what services do you think you're going to be running on your desktop that you plan to allow anyone on the internet to get to?

[–] fhein@lemmy.world 2 points 1 month ago (1 children)

Not entirely clear but perhaps OP is talking about blocking unwanted outgoing reqjests? E.g. anti-features and such since they mention traffic from their apps.

[–] Shdwdrgn@mander.xyz 2 points 1 month ago

Possibly? The way I read it, it sounded like OP wasn't really even sure what a firewall does.

[–] Wingless@mstdn.social 0 points 1 month ago (1 children)

@Shdwdrgn @Cornflake_Dog false. a firewall can indeed have a default block everything policy, but this is still a configurable option

[–] Shdwdrgn@mander.xyz 0 points 1 month ago (1 children)

Sure it CAN be configured, but the typical policy of firewalls is to start from a position of blocking everything. From what I've seen, on Linux the standard starting point is blocking all incoming and allowing all outgoing. On Windows the default seems to be blocking everything in both directions. Sure you could start with a policy of allowing everything and block only selected ports, but what good is that when you can't predict what ports an attacker might come from?

[–] Wingless@mstdn.social 1 points 1 month ago (1 children)

@Shdwdrgn on Linux, the firewall with zero custom rules always allowed everything. did that change in very recent kernels? if that's the case, I'd expect a lot of lost acces to remote servers

[–] Shdwdrgn@mander.xyz 1 points 1 month ago

Most of my experience is with iptables, but yeah, I think until you start adding rules nothing is implicitly denied? Once you enable a couple of initial rules then you should have good blocking from the outside while allowing internal traffic to connect freely. It doesn't get in your way until you start using it, but then it doesn't take much to get it going.

load more comments (9 replies)
[–] mub@lemmy.ml 20 points 1 month ago

If you really need one take white list approach. Block everything you don't need and only open what you need. Have fun finding out what you need.

[–] MangoPenguin@lemmy.blahaj.zone 15 points 1 month ago* (last edited 1 month ago) (1 children)

By default it should be configured to allow all outgoing, and block all incoming. That's perfectly fine for a desktop/laptop and you don't need to mess with it.

You can't really do that much outgoing filtering with a firewall that will be useful, because basically everything operates on port 80/443, and often connects to the same CDNs or datacenter IPs for multiple services.

Instead DNS blocking is a much more effective way to handle it, plus uBlock Origin in your browser.

[–] JubilantJaguar@lemmy.world 9 points 1 month ago (3 children)

Just to clarify this comment for other "total newbies": yes, the UFW default config is fine and "you don't need to mess with it".

But by default UFW itself is not even enabled on any desktop OS. And you also don't need to mess with that. It's because the firewall is on the router.

OP said clearly that this "is just my personal computer" and here we all are spreading unintentional FUD about firewall configs as if it's for a public-facing server.

This pisses me off a bit because I remember having exactly the same anxiety as OP, to the point of thinking Linux must be incredibly insecure - how does this firewall work? dammit it's not even turned on!! And then I learned a bit more about networking.

This discussion should have begun with the basics, not the minutiae.

[–] MangoPenguin@lemmy.blahaj.zone 2 points 1 month ago (1 children)

Many people use laptops and use other wifi networks or tether to their phone, both can expose you because of unknown firewall states or IPv6 being used.

[–] interdimensionalmeme@lemmy.ml 0 points 1 month ago

Your phone tether will NAT you and not route any incoming packets that aren't part of a connection initiated by your host. Firewwll does nothing and anyway you wouldn't even have any open port inside the LAN unless you run services that open ports.

load more comments (2 replies)
[–] drkt@lemmy.dbzer0.com 2 points 1 month ago* (last edited 1 month ago) (2 children)

You shouldn't be touching it, honestly. There's a firewall at your router. It should be responsible for blocking incoming traffic. Firewalls on individual machines are for servers where you know exactly what's going in and out. I don't have a firewall on my desktop or laptop.

You will spend the best years of your life chasing random network connections if you block everything by default.

[–] possiblylinux127@lemmy.zip 0 points 1 month ago* (last edited 1 month ago)

This is good sane advise. I think a lot of people here don't understand networking

[–] ReversalHatchery@beehaw.org 0 points 1 month ago (1 children)

I don't have a firewall on my desktop or laptop

you are brave to use your laptop that way. or is it used as a stationary device?

but yes it is useful at home if you live with people who you don't trust to be managing their computer safely

[–] drkt@lemmy.dbzer0.com 0 points 1 month ago (1 children)

you are brave to use your laptop that way

why? I don't connect it to untrusted networks

[–] ReversalHatchery@beehaw.org 0 points 1 month ago (1 children)

run sudo ss -tulpn, and have a look at the processes and their privileges listening for incoming connections. If one of them has a vulnerability, through which a third party can make that software do things it was not intended for.. that's pretty bad.
This can most easily happen with software whose developers are underresouced/careless/stubborn.

A recent case of that happening: https://www.evilsocket.net/2024/09/26/Attacking-UNIX-systems-via-CUPS-Part-I/
Tl;Dr, remote code execution vulnerability in software that most often runs as root, automatically.

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

You don't understand local host. Services listen on 127.0.0.1 which is a local only address. You can only connect to it locally

[–] ReversalHatchery@beehaw.org 1 points 1 month ago

who speaks about localhost? out of 21 active ports on my machine, only 3 is only listening on localhost. dhclient, avahi-daemon, syncthing, kdeconnect.. cups-browsed did not listen only on localhost either

[–] fool@programming.dev 1 points 1 month ago

Lots of good answers here but I'll toss in my own "figure out what you need" experience from my first firewall funtime. (Disclaimer: I used nftables -- it should be similar to ufw in terms of defaults though).

  • Right off the bat, everything unneeded was blocked. I "needed" no configuration, except for maybe...
  • Whatever CUPS runs on (when I use it)
  • Sometimes I ran python -m http.server -- I unblocked port 8000 for personal use.
  • I chose to unblock port 53 (DNS). I wanted to connect to another computer via hostname IIRC (e.g. connecting to raspberry-pi.local. I might be misremembering this though).
  • At one point I played with NGINX -- that's port 80 (HTTP) and port 443 (HTTPS).
  • SSH was already permitted (port 22 -- you need root access to enable traffic through ports below 1024 anyway so this wasn't an issue for running typical apps)

I didn't use WireShark back then, really. I think I just ran something like

sudo lsof -nP -iTCP -sTCP:LISTEN

which showed me a bunch of port traffic (mostly just harmless language servers).

You don't have to dive to deep into all the "egress" and "ingress" and whatnot unless you're doing something special. Or your software uses a weird port. (LocalSend lol)

[–] savvywolf@pawb.social 1 points 1 month ago (2 children)

Worth noting that if you're trying to block telemetery or ads or things like that, using an adblocking dns is probably the better option. Either through a pihole on your network or some online adblocking dns.

Other than that, if you're looking for one because you think you "need" one, don't worry too much if it's just a personal computer connected to a router. Most distros ship with sensible defaults for security.

If you actually want to use a firewall, block all incoming and allow all outgoing is a reasonable rule of thumb if you aren't running a server. Note that "block incoming" doesn't block connections that the system itself started.

[–] Chewy7324@discuss.tchncs.de 1 points 1 month ago (1 children)

Blocking incoming traffic and accepting outgoing traffic is usually the default for distributions anyway.

[–] uint@lemmy.world 0 points 1 month ago

Debian is a notable exception.

[–] Cornflake_Dog@lemmy.wtf 0 points 1 month ago (1 children)

This seems to be some of the most worthwhile advice. I do use a pretty reasonable DNS client (NextDNS) and it allows me to configure some useful filters and such, and when I'm browsing the internet I also use uBlock Origin and manually allow any third party content one by one.

I did configure UFW to block incoming and allow outgoing, and that should be more than enough for me. I think I'm a pretty "standard" user in the sense that I would make a fairly average target for a would-be attacker. It's not like I own a web server with goodies worth exploiting.

A part of me really wants to learn more because at some point I'll have my own router that I'll want to ensure is configured properly because I'll likely end up making my own server for media stuff.

Thank you for your reply!

[–] uint@lemmy.world 0 points 1 month ago

I recommend reading "TCP/IP Illustrated: Volume 1, Second Edition" if you want to learn more about networking. Make sure it's the second edition, because the first edition is very old. The second edition is also over a decade old now, but it's still almost completely correct, as the basics haven't changed much. And don't mistake the book to be overly simplified because of the title; it's a very technical book that references the actual RFCs wherever appropriate.

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

I would advise that you ignore a lot if the advise here and do your own research. You probably don't need a local Firewall and if you want to block content use DNS and browser extensions

[–] forbiddenlake@lemmy.world 3 points 1 month ago (1 children)

You probably don't need a local Firewall

If the computer never leaves the house, maybe. If it's ever on public Wi-Fi though, default deny inbound at a bare minimum. Linux computers with cups installed and running but no firewall were revealed yesterday to be vulnerable to RCE.

[–] possiblylinux127@lemmy.zip 1 points 1 month ago

Cups only listens on local host only by default. Also it requires you to connect to a printer which is unaffected by the Firewall.

[–] interdimensionalmeme@lemmy.ml 1 points 1 month ago

You don't need a firewall on the LAN. It is just an annoyance to have to open ports later. Extra bureaucracy without benefits. This isn't Windows, you can can easily control your processes, choose if they bind to the network interface and on which port.

[–] superkret@feddit.org 1 points 1 month ago* (last edited 1 month ago)

A firewall by default blocks everything coming from outside going in (without being requested).
Firewalls can also block traffic going out from your PC to the internet. In a company where you need to protect against data exfiltration by employees, and as a last resort safeguard against malware communicating with outside servers, you want that. In that case, a security expert makes a detailed plan of all installed software, to determine what needs to connect from which internal IP to which external IP over which port. Then all other outbound traffic is blocked. This needs to be adjusted constantly, every time a new software is installed or an update changes a software's requirements. It's a full-time job.

On a home PC running Linux, that's absolute overkill. There are no untrusted users in your home and you're probably not the target for a directed attack by skilled actors. So just leave ufw on default, which blocks all inbound traffic and allows all outbound.

[–] stoy@lemmy.zip 0 points 1 month ago (2 children)

UFW

This is just my personal computer and I'm a newbie to configure firewalls

Leave it alone.

If you want to experiment, set up a VM and experiment there.

Also, if you want to learn about Linux firewalls, go for iptables instead. UFW is easier, yes, but you won't get the standard way of configuring a Linux firewall, though to be honest, unless you are directly connecting the computer to the internet, you probably won't need to bother.

And if you are working in an environment where you are dealing with a segmented network with limited access between segments, they will probably already use a separate firewall that is easier to manage centrally than induvidual firewalls running on individual computers

[–] ReversalHatchery@beehaw.org 0 points 1 month ago (1 children)

I think it's fine to start with UFW on a desktop system at home to learn the very basics and get an idea on what ports you actually need. learning iptables/nftables is useful, but not necessary for a simple user at that level

[–] stoy@lemmy.zip 0 points 1 month ago (1 children)

Eh, I get what you mean but I disagree.

That is sort of saying that if someone want to learn Swedish, but since they don't know any Swedish, it is better to start them on Norweigan first.

If UFW had used a similar syntax to that of iptables, then it would be a decent way of doing it, but in this example I disagree with you

[–] ReversalHatchery@beehaw.org 1 points 1 month ago

That is sort of saying that if someone want to learn Swedish, but since they don't know any Swedish, it is better to start them on Norweigan first.

nobody wants to learn Swedish here. they want to be understood in a community that knows both Swedish and Norwegian, and if Norwegian is easier, they can learn just that

If UFW had used a similar syntax to that of iptables, then

then it wouldn't be Uncomplicated anymore

[–] JubilantJaguar@lemmy.world 0 points 1 month ago* (last edited 1 month ago) (2 children)

You don't need a firewall on a typical desktop computer. You only need them on routers and servers.

That is because your personal computer is not actually on the internet. It is on a local network (LAN) and it talks only to your router. The router is the computer connected to the internet, and it has a firewall.

The question highlights a classic misunderstanding about networking that IMO should be better addressed. I was like OP once, and panicking about this pointlessly.

Addendum: You're all replying to OP as if they're a sysadmin managing a public-facing server. But OP says clearly that they're just a beginner on a PC - which will almost certainly be firewalled by their router. We should be encouraging and educating people like this, not terrorizing them about all the risks they're taking.

[–] floquant@lemmy.dbzer0.com 2 points 1 month ago (1 children)

Unless your ISP provides IPv6 connectivity, which gives every endpoint a globally-routable address. Firewalling at the router only works because of NAT.

[–] JubilantJaguar@lemmy.world 1 points 1 month ago (1 children)

That's why I wrote typical. The question was from a beginner, not a networking expert.

[–] floquant@lemmy.dbzer0.com 1 points 1 month ago

Indeed... IPv6 needs to be actively disabled, not enabled, by default.

[–] mcmacker4@lemmy.world 0 points 1 month ago (3 children)

I think you need a bit of Swiss cheese in your security philosophy. Relying only on your router's firewall is a single point of failure. If it fails you are screwed. Relying on multiple layers means if one layer fails, another one might save you.

swiss cheese security model

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