Commit Graph
36053 Commits
Author SHA1 Message Date
Yu Watanabe e558d4f47a network: dhcp4: downgrade log level when interface is removed 2021-04-29 08:58:13 +09:00
Yu Watanabe 4cbd379e01 network: drop meaningless bitfield specifiers 2021-04-29 08:58:13 +09:00
Yu Watanabe bf8a5f6473 Merge pull request #19449 from yuwata/network-downgrade-log-level
network: downgrade log level and fix typo
2021-04-29 08:54:08 +09:00
Yu Watanabe 086a351ad9 network: ndisc: fix ipv6 route preference for routes with Gateway=_ipv6ra 2021-04-29 08:50:54 +09:00
Lennart Poettering fd98562099 Merge pull request #19374 from yuwata/network-dhcp-routes-to-ntp
network: dhcp4: introduce RoutesToNTP= boolean setting
2021-04-28 22:47:21 +02:00
Lennart Poettering 249e7b6692 Merge pull request #19441 from keszybz/riscv-syscall-lists
Add syscall list for riscv
2021-04-28 21:17:43 +02:00
Yu Watanabe 27a213392f network: neighbor: downgrade log level
As commented in the code, kernel sends messages about neighbors after
a link is removed.
2021-04-29 03:16:30 +09:00
Yu Watanabe 83e7c37b19 network: link: downgrade log level
The error is harmless, and will be ignored. Let's downgrade log level.
2021-04-29 03:16:30 +09:00
Yu Watanabe dec2ed3e75 network: dhcp4: downgrade log level
It is not necessary to log such information on higher level.
2021-04-29 03:12:29 +09:00
Yu Watanabe e110d0f0f6 systemctl: fix build failure
Follow-up for 255b1fc8a3.
2021-04-29 03:03:55 +09:00
Yu Watanabe 255b1fc8a3 bus-print-property: introduce BusPrintPropertyFlags
Follow-ups for 1ceaad6937.
2021-04-28 17:36:09 +02:00
Zbigniew Jędrzejewski-Szmek 3796bdc55d basic/unit-file: ignore any hidden files immediately
Hidden and backup files cannot be valid unit name (we reject anything
starting with a dot, and we require type suffixes). So let's not iterate
over those at all.
2021-04-28 17:12:32 +02:00
Zbigniew Jędrzejewski-Szmek e7702c20aa basic/missing-syscall: add regen instructions 2021-04-28 15:41:34 +02:00
Lennart Poettering 84e8edec30 missing: add syscall wrappers for new mount API 2021-04-28 15:41:34 +02:00
Zbigniew Jędrzejewski-Szmek 9899580a58 basic/missing-syscall: sort syscalls alphabetically and add numbers for mount_setattr, move_mount, open_tree 2021-04-28 15:41:34 +02:00
Zbigniew Jędrzejewski-Szmek 302beee342 basic/missing-syscall: add numbers for riscv (64-bit) 2021-04-28 15:41:34 +02:00
Zbigniew Jędrzejewski-Szmek 94dfd85b0c basic/missing-syscalls: only emit one warning about missing numbers
The ifdef pattern is the same for all syscalls, so most of the time, if one is
not defined, all others will too. So let's reduce the noise a bit and emit one
warning in case the support for the architecture is fully missing. (Current
template was copied over from before when we added numbers for each syscall by
hand and stopped making sense when we started generating the header from a
table that is expected to have all syscall numbers.)
2021-04-28 15:41:34 +02:00
Lennart Poettering 53515c6939 Merge pull request #19446 from poettering/logind-trigger-new
logind/dissect: use sd_device_trigger() more
2021-04-28 13:26:29 +02:00
Uwe Kleine-König cbcdcaaa0e Add support for conditions on the machines firmware
This allows to limit units to machines that run on a certain firmware
type. For device tree defined machines checking against the machine's
compatible is also possible.
2021-04-28 10:55:55 +02:00
Lennart Poettering b64c4ece74 dissect-image: use sd_device_trigger() API
Let's use the new API here too.
2021-04-28 10:24:20 +02:00
Lennart Poettering d8021ea1da logind: use new sd_device_trigger() API
This is a follow-up for 21012e20a4 and
related commits, i.e. one more occasion we can use the
sd_device_trigger() API.
2021-04-28 09:48:42 +02:00
William A. Kennington III 192a9d95ea network: neighbor: Always add neighbors with replace
We were duplicating setting flags for the message and a combination of
NLM_F_APPEND and NLM_F_CREATE which does not make sense. We should have
been using NLM_F_REPLACE and NLM_F_CREATE since the kernel can
dynamically create neighbors prior to us adding an entry. Otherwise, we
can end up with cases where the message will time out after ~25s even
though the neighbor still gets added. This delays the rest of the setup
of the interface even though the error is ultimately ignored.
2021-04-28 00:06:20 +09:00
Franck Bui 45b1fc3a88 system-conf: drop reference to ShutdownWatchdogUsec=
Commit 65224c1d0e renamed ShutdownWatchdogUsec
into RebootWatchdogUsec but left a reference of ShutdownWatchdogUsec in
system.conf.
2021-04-27 12:38:57 +01:00
Zbigniew Jędrzejewski-Szmek 862e01d70f Merge pull request #17655 from wat-ze-hex/bpf-build-rule
Introduce SocketBind{Allow|Deny}= properties powered by source compiled BPF
2021-04-27 12:52:30 +02:00
Frantisek Sumsal 1ceaad6937 systemctl: hide some empty properties without --all
Fixes: #19423
2021-04-27 12:16:50 +09:00
Julia Kartseva 18ef723ef6 systemctl: show SocketBind{Allow|Deny} properties 2021-04-26 16:26:28 -07:00
Julia Kartseva dcf4781caf dbus: add dbus-cgroup for SocketBind{Allow|Deny}= 2021-04-26 16:26:28 -07:00
Julia Kartseva 28b76fc82a tests: add test program for SocketBind{Allow|Deny}=
Verify that service exited correctly if valid ports are passed to
SocketBind{Allow|Deny}=
Use `ncat` program starting a listening service binding to a specified
port, e.g.
"timeout --preserve-status -sSIGTERM 1s /bin/nc -l -p ${port} -vv"
2021-04-26 16:26:28 -07:00
Julia Kartseva 3d027d4d60 shared, bpf: add bpf link serialization
core: serialize socket_bind bpf links
2021-04-26 16:26:24 -07:00
Julia Kartseva 8dd210ab66 core: add SocketBind{Allow|Deny} fragment parser 2021-04-26 16:21:59 -07:00
Julia Kartseva a8e5eb1788 core: add socket-bind cgroup mask harness
Standard cgroup harness for bpf feature.
2021-04-26 16:21:59 -07:00
Julia Kartseva 91ce91c76c core, bpf: add socket-bind feature to unit
Add supported and install unit interface for socket-bind feature.

supported verifies that
- unified cgroup hierarchy (cgroup v2) is used
- BPF_FRAMEWORK (libbpf + clang + llvm + bpftool) was available in
compile time
- kernel supports BPF_PROG_TYPE_CGROUP_SOCK_ADDR
- bpf programs can be loaded into kernel
- bpf link can be used

install:
- load bpf_object from bpf skeleton
- resize rules map to fit socket_bind_allow and socket_bind deny rules
from cgroup context
- populate cgroup-bpf maps with rules
- get bpf programs from bpf skeleton
- attach programs to unit cgroup using bpf link
- save bpf link in the unit
2021-04-26 16:21:59 -07:00
Julia Kartseva b18e9fc167 cgroup: add socket-bind to cgroup context 2021-04-26 16:21:59 -07:00
Julia Kartseva 43b3f0fb00 shared, bpf: add bpf link helpers
add can_link_bpf_program and bpf_link_free helpers.
2021-04-26 16:21:59 -07:00
Julia Kartseva 09fc220c52 meson, bpf: add build rule for socket-bind program 2021-04-26 16:21:59 -07:00
Julia Kartseva 58a33faf80 bpf: add socket-bind BPF program code sources
Introduce BPF program compiled from BPF source code in
restricted C - socket-bind.
It addresses feature request [0].

The goal is to allow systemd services to bind(2) only to a predefined set
of ports. This prevents assigning socket address with unallowed port
to a socket and creating servers listening on that port.

This compliments firewalling feature presenting in systemd:
whereas cgroup/{egress|ingress} hooks act on packets, this doesn't
protect from untrusted service or payload hijacking an important port.

While ports in 0-1023 range are restricted to root only, 1024-65535
range is not protected by any mean.

Performance is another aspect of socket_bind feature since per-packet
cost can be eliminated for some port-based filtering policies.

The feature is implemented with cgroup/bind{4|6} hooks [1].
In contrast to the present systemd approach using raw bpf instructions,
this program is compiled from sources. Stretch goal is to
make bpf ecosystem in systemd more friendly for developer and to clear
path for more BPF programs.

[0] https://github.com/systemd/systemd/pull/13496#issuecomment-570573085
[1] https://www.spinics.net/lists/netdev/msg489054.html
2021-04-26 16:07:41 -07:00
Frantisek Sumsal 732a487fad Merge pull request #19383 from keszybz/test58-fixes
Fixes for TEST-58-REPART and ExecStart deserialization logic
2021-04-26 19:16:44 +02:00
Yu Watanabe d7b0450639 network: dhcp4: introduce RoutesToNTP= boolean setting 2021-04-27 00:01:18 +09:00
Yu Watanabe 949b2c95c9 network: dhcp4: split and rename link_set_dns_routes() 2021-04-27 00:01:18 +09:00
Yu Watanabe 7057030610 network: dhcp4: enable RoutesToDNS= by default 2021-04-27 00:01:18 +09:00
Zbigniew Jędrzejewski-Szmek 35243b7736 test-unit-serialize: add a very basic test that command deserialization works
We should test both serialization and deserialization works properly.
But the serialization/deserialization code is deeply entwined with the
manager state, and I think quite a bit of refactoring will be required before
this is possible. But let's at least add this simple test for now.
2021-04-26 16:15:26 +02:00
Zbigniew Jędrzejewski-Szmek 2b4d791e41 Merge pull request #19286 from yuwata/network-dhcp-routes-to-dns-19077
network: dhcp4: set gateway for route to dns server if it is not in the same network
2021-04-26 15:10:41 +02:00
Yu Watanabe 0e27527170 network: update comment and log message
After 4b30f2e135, reading stable_secret
sysctl property fails with -ENOMEM, instead of -EIO.
This is due to read_full_virtual_file() uses read() as the backend while
read_one_line_file() uses fgetc(). And each functions return different
error on fails.

Anyway, the failure is harmless here. So, the log message and comment is
updated.

Closes one of the issues in #19410.
2021-04-26 10:08:41 +01:00
Luca Boccassi bb35478bf9 Merge pull request #19421 from yuwata/fix-typo
core, network: Fix typo
2021-04-26 10:08:07 +01:00
Yu Watanabe 25054e1bfb network: add missing sections
Follow-up for 4e26a5baa0.

Fixes one of issues in #19410.
2021-04-26 10:07:52 +02:00
Yu Watanabe 8170992a79 core/service: fix typo
Follow-up for bbe19f6884.
2021-04-26 09:20:30 +09:00
Yu Watanabe cead8ed66e network: fix typo
Follow-up for 4b409e855b.
2021-04-26 09:19:41 +09:00
Lennart Poettering 57bb9bcba5 homectl: pick up cached/credential store/env var passwords *before* issuing first request
Previously, we'd generally attempt the operation first, without any
passwords, and only query for a password if that operation then fails
and asks for one. This is done to improve compatibility with
password-less authentication schemes, such as security tokens and
similar.

This patch modifies this slightly: if a password can be acquired cheaply
via the keyring password cache, the $CREDENTIALS_PATH credential store,
or the $PASSWORD/$PIN environment variables, acquire it *before* issuing
the first requested.

This should save us a pointless roundtrip, and should never hurt.
2021-04-23 23:22:37 +02:00
Lennart Poettering 7bdbafc261 homectl: don't use password cache if we operate on other user 2021-04-23 23:22:37 +02:00
Lennart Poettering ea086f0610 homectl: don't use cached passwords when re-requesting password because wrong
Asking repeatedly for a password is pointless if we always use the same
cached one. Let's thus disable cache use whenever we failed already
once.
2021-04-23 23:18:43 +02:00