> I can imagine pledge(2) becoming very complex if individual ports are
> blocked. It is not just the syscall, it's also the code in the
> kernel. From what I can gather, pledge is really to restrict processes
> to a subset of functions available, rather than restricting each
> individual argument, unless there are exceptional reasons for doing so.
> 
> However, out of curiosity I've been tinkering with PF rules.
> 
> Ruleset:
> 
>       block drop all
>       pass in proto tcp from any to any port 65535 user test2
> 
> Then running as user "test" (NOT test2):
> 
>       $ nc -l 65535
> 
> Note nc stays there, probably opened the socket successfully.
> 
> Even with "block reset all" in PF rules, nc does this.
> 
> It would be nice if the "reset" keyword tells the kernel to return
> EACCES when bind(2) is called on a port blocked by PF rules for a
> particular user.

You really haven't got a clue.



Reply via email to