Hello! This is v1 RFC patch dedicated to restriction of listening sockets. It is based on the landlock's mic-next branch on top of v6.10 kernel version. Description =========== LANDLOCK_ACCESS_NET_BIND_TCP is useful to limit the scope of "bindable" ports to forbid a malicious sandboxed process to impersonate a legitimate server process. However, bind(2) might be used by (TCP) clients to set the source port to a (legitimate) value. Controlling the ports that can be used for listening would allow (TCP) clients to explicitly bind to ports that are forbidden for listening. Such control is implemented with a new LANDLOCK_ACCESS_NET_LISTEN_TCP access right that restricts listening on undesired ports with listen(2). It's worth noticing that this access right doesn't affect changing backlog value using listen(2) on already listening socket. For this case test ipv4_tcp.double_listen is provided. Closes: https://github.com/landlock-lsm/linux/issues/15 Code coverage ============= Code coverage(gcov) report with the launch of all the landlock selftests: * security/landlock: lines......: 93.4% (759 of 813 lines) functions..: 95.3% (101 of 106 functions) * security/landlock/net.c: lines......: 100% (77 of 77 lines) functions..: 100% (9 of 9 functions) Mikhail Ivanov (9): landlock: Refactor current_check_access_socket() access right check landlock: Support TCP listen access-control selftests/landlock: Support LANDLOCK_ACCESS_NET_LISTEN_TCP selftests/landlock: Test listening restriction selftests/landlock: Test listen on connected socket selftests/landlock: Test listening without explicit bind restriction selftests/landlock: Test listen on ULP socket without clone method selftests/landlock: Test changing socket backlog with listen(2) samples/landlock: Support LANDLOCK_ACCESS_NET_LISTEN include/uapi/linux/landlock.h | 23 +- samples/landlock/sandboxer.c | 31 +- security/landlock/limits.h | 2 +- security/landlock/net.c | 131 +++++- security/landlock/syscalls.c | 2 +- tools/testing/selftests/landlock/base_test.c | 2 +- tools/testing/selftests/landlock/config | 1 + tools/testing/selftests/landlock/net_test.c | 448 +++++++++++++++---- 8 files changed, 519 insertions(+), 121 deletions(-) -- 2.34.1