Open qxlimitedprod opened 1 year ago
I made some calls using perl here:
/usr/bin/perl -MHTTP::Tiny -e 'print HTTP::Tiny->new->get(q{http://ifconfig.me/all.json})->{content}'
And got logs as follows:
2023-05-28 17:35:13.112901-0300 0x1eb01 Debug 0x0 16310 0 com.objective-see.lulu.extension: [com.objective-see.lulu:extension] remote endpoint: 34.160.111.145:80 / url: (null)
2023-05-28 17:35:13.113059-0300 0x1eb01 Debug 0x0 16310 0 com.objective-see.lulu.extension: [com.objective-see.lulu:extension] found process object in cache: /usr/bin/perl5.30 (pid: 16480)
2023-05-28 17:35:13.113185-0300 0x1eb01 Debug 0x0 16310 0 com.objective-see.lulu.extension: [com.objective-see.lulu:extension] looking for rule for com.apple.perl5 -> /usr/bin/perl5.30
In the first line of this log, you can see that the URL field is null
, but the IP field is filled. Before this connection, I allowed port 53 to the perl process for DNS resolution. I checked with other applications here and I have the impression that the ones that use "Network.framework or NSURLSession connections" have this field filled. This doesn't seem to be the case for perl.
I'm having a hard time understanding how to utilise filter-by-domain rules and whether the feature works at all.
I have a per-process rule for
/usr/bin/perl5.30
that should allow a connection to a certain domain.tld on port 80. It doesn't work. Mind you, if I set the rule to allow the IP x.x.x.x the domain.tld resolves to, instead of the domain name, Lulu allows traffic to pass.The debug messages from the system console look something like this:
I see where Lulu could match the x.x.x.x IP address, I don't see where it tried matching the domain name. Apparently nowhere, since at p. 5 processing hits the blanket 'default deny' rule and blocks traffic from passing.
DNS requests were explicitly white-listed - I tried setting a wildcard rule or a per-process for Perl interpreter only. Didn't help.
What am I missing?
Lulu version: 2.4.2.
macOS version: Ventura 13.2.