upvote
I just tried littlesnitch and it did not resolve very many ips to domains, which is pretty basic. It also failed to identify most processes, and they were grouped under "Not Identified". It appears these are known limitations of the Linux version [1]. So for that alone I need to stick with opensnitch.

[1] "Little Snitch for Linux is built for privacy, not security, and that distinction matters. The macOS version can make stronger guarantees because it can have more complexity. On Linux, the foundation is eBPF, which is powerful but bounded: it has strict limits on storage size and program complexity. Under heavy traffic, cache tables can overflow, which makes it impossible to reliably tie every network packet to a process or a DNS name. And reconstructing which hostname was originally looked up for a given IP address requires heuristics rather than certainty. The macOS version uses deep packet inspection to do this more reliably. That's not an option here." -- from https://obdev.at/products/littlesnitch-linux/index.html

reply
Regarding unidentified processes: Little Snitch daemon must have been running when the process started in order to identify it reliably. It's best to reboot after installation so that Little Snitch starts before everything else. I should probably note this somewhere.

And regarding failed reverse DNS names: Little Snitch is sniffing DNS lookups. If lookups are encrypted, there is little it can do. We usually recommend DNS encryption at the systemd layer, not at app layer. This way we can see lookups on 127.0.0.53 and the actual lookup sent out is still encrypted.

Also, it's currently only sniffing UDP lookups, not TCP. The eBPF part is already very close to the complexity limits (700k instructions of allowed 1M) and adding TCP parsing would exceed this limit. It should be possible to forbid TCP port 53 with a rule, though. Some complex DNS lookups will fail, but routine things should still work.

reply
The thing is, 127.0.0.53 is a fallback. The real default upstream is nss_resolve, which talks to systemd-resolved via non-DNS protocol on a UNIX-domain socket. Ubuntu disabled this in favor of the less-featured fallback. If you insist on sniffing DNS, you need to add instructions to disable the native nss_resolve module by not including it in /etc/nsswitch.conf.
reply
If I don't know who my machine is talking to, the information is not very useful. So there needs to be a fallback on some level.

Perhaps there should be a mode where littlesnitch just does its own lookup using the system-configured rDNS, for example from the ui or for specific processes, etc? It should be cached if it is a recent lookup, so minimal performance implications; and offloaded to the system rDNS resolver, so minimal instruction set.

reply
Not all "hostname lookups" by applications happen over DNS (or the DNS is done by something like systemd-resolved, which is often using encrypted lookups), so in many cases, depending on NSS configuration (e.g. 'file', 'resolve', 'db', 'nis', 'mymachines', 'libvirt', 'winbind', ...) this would never work?
reply
I'm curious, why not do things like the DNS look-up from userspace?
reply
I guess that makes sense, since it's pretty new. OpenSnitch is great software in terms of functionality but I find the UI lacking. If LittleSnitch can keep the same functionality, while improving the UI, I'm switching. My other current concern here is that the LittleSnitch UI is just a Webview and I think it would be much better if there was a native option (ideally GTK-based for me, but Qt would also be acceptable). Webviews are slow and full of bloat.
reply
I wonder why LS can't be given access to systemd resolved stub resolver to get all my DNS lookups.
reply
Is there any DNS based software to do block/allow? Kinda lika what's present in CiliumNetworkPolicies in Kubernetes networking?
reply
Yes, PiHole is the most common, but malware can easily bypass that using shared domains, P2P or IP addresses directly.

Use a filtering proxy instead and no gateway / route to the internet.

reply
1) Dnsmasq, you don't need the whole PiHole for that.

2) You're advising security through obscurity instead of a network namespace + firewall.

reply
You mean like PiHole or AdGuard?
reply
OpenSnitch (+ block lists) ;)

or DNS stubs with filtering capabilities.

reply
Not sure, I was wondering the same, opensnitch is what I have installed but its not on currently, I probably got tired of it for whatever reason.
reply
[dead]
reply
"I researched a bit, found OpenSnitch, several command line tools, and various security systems built for servers. None of these gave me what I wanted: see which process is making which connections, and in the best case deny with a single click." https://obdev.at/blog/little-snitch-for-linux/
reply
I've used OpenSnitch for years, and while LittleSnitch definitely has a better UI for showing which process is making which connections over time, OpenSnitch does a pretty good job here. I get a modal popup when a program that hasn't made a connection tries to make a connection, and I can either allow/deny in one click, or further customize the rule e.g. allowing ntpd to connect, but only to pool.ntp.org on port 123.

Where LittleSnitch is definitely ahead is showing process connections over time after said process has been allowed.

reply
When I looked at OpenSnitch (years ago), it didn't support running headless on a server. Am I mistaken about this, or has it changed?
reply
You can run daemons on several nodes (different machines) and view them all through a central ui, it is pretty cool.
reply
The UI is a separate package. Though you might just configure the firewall yourself at that point.
reply
It is free, no subscription at all and truly open source.

As software should be.

reply
how should maintainer make money?
reply
Personally I'd be fine with a commercial license with source available here... the issue isn't the price, it's the fact that you're asked to MITM every network connection you make under the control of a binary blob.

I think it's fair to ask that a developer choosing to build a thing that requires that kind of access should be expected to err on the side of transparency.

reply
I've happily been a paid user on macOS for years, I would guess the number of paid users there was able to fund the Linux development.
reply
reply
So... what if the maker can't make it on donations only?
reply
Then development will stop and users don't have the software anymore.

If users consider this software important they should donate so they can keep using it.

reply
How exactly is this different from payed software?
reply
There is a ton of software that lives on because it matters to the developer(s). I know "but mah monetization" is huge on this forum but it's not an all encompassing rule and it does not completely reflect the existing reality.
reply
Strong disagree on this stance. You want to use the software? Cool, pay for it. Need access to source? It's on github, go nuts. Want to change it? Sure, feel free, but whoever uses it should pay the original developer. You can even charge extra for your modifications. Don't like the terms? Too bad - feel free to rewrite from scratch.

FOSS simply isn't sustainable if you want to make a living out of it. It protects a lot of user freedoms - even those that don't actually matter to users that much - at the expense of the rights of developers. There are a lot of ways that developers could be paid and users would still be protected (have access to source and the right to modify). The only ones benefitting from the current situation are BigTech.

/rant

reply
Who are we to dictate terms to or divine the intentions of someone who releases software with say the MIT license? It might sound surprising but a lot of developers just want to share their work altruistically. There are some you couldn't pay if you wanted to. It's all voluntary.

> FOSS simply isn't sustainable if you want to make a living out of it.

This is probably true enough. Yet there are a million open source projects that existed, some for decades. There has go to be another way and another motivation.

> even those that don't actually matter to users that much - at the expense of the rights of developers

I would assume those developers would use a different license or even create their own terms.

> The only ones benefitting from the current situation are BigTech.

Paying the original developers will not change this. Big tech is big. They take whatever they can, sometimes killing the original project in the process. Perhaps a license like GPL is the solution to that particular problem.

I don't mean to come off snarky. I do agree with a lot of the things that you're saying but I see the free software movement as a completely voluntary and human thing. You could not get rid of it if you wanted. Paying for it is an auxiliary thing and concentrates too much on the wrong thing IMO. A lot of free software developers are already gainfully employed, some are millionaires. Yes some are struggling but then they are still voluntarily sharing their work with the whole world. That must mean they have their valid reasons for doing so.

reply
The developer isn’t accepting a job offer to develop it, they’re accepting donations. That’s literally how the software devs for Opensnitch choose to receive payment.
reply
Hunt, gather.
reply
There was also toolmaker to support the hunter and gatherer… so… back to square one.
reply
open source / free software is not necessarily free as in free beer. You can sell GPL software.
reply
deleted
reply