Commit Graph

41185 Commits

Author SHA1 Message Date
Lennart Poettering
c7bb4dfcf4 docs: document new random seed EFI vars as part of the boot loader interface 2019-07-25 18:31:20 +02:00
Lennart Poettering
26ded55709 random-seed: rework systemd-random-seed.service substantially
This makes two major changes to the way systemd-random-seed operates:

1. We now optionally credit entropy if this is configured (via an env
var). Previously we never would do that, with this change we still don't
by default, but it's possible to enable this if people acknowledge that
they shouldn't replicate an image with a contained random seed to
multiple systems. Note that in this patch crediting entropy is a boolean
thing (unlike in previous attempts such as #1062), where only a relative
amount of bits was credited. The simpler scheme implemented here should
be OK though as the random seeds saved to disk are now written only with
data from the kernel's entropy pool retrieved after the pool is fully
initialized. Specifically:

2. This makes systemd-random-seed.service a synchronization point for
kernel entropy pool initialization. It was already used like this, for
example by systemd-cryptsetup-generator's /dev/urandom passphrase
handling, with this change it explicitly operates like that (at least
systems which provide getrandom(), where we can support this). This
means services that rely on an initialized random pool should now place
After=systemd-random-seed.service and everything should be fine. Note
that with this change sysinit.target (and thus early boot) is NOT
systematically delayed until the entropy pool is initialized, i.e.
regular services need to add explicit ordering deps on this service if
they require an initialized random pool.

Fixes: #4271
Replaces: #10621 #4513
2019-07-25 18:30:06 +02:00
Lennart Poettering
c6127c3996 random-seed: drop falling back to O_WRONLY if O_RDWR on /dev/urandom doesn't work
There's no reason why writing should work if reading and writing
doesn't. Let's simplify this hence. /dev/urandom is generally an r/w
device, and everything else would be a serious system misconfiguration.
2019-07-25 18:20:50 +02:00
Lennart Poettering
15d961bf53 random-seed: reduce scope of variable 2019-07-25 18:20:50 +02:00
Lennart Poettering
d985064a8b units: automatically initialize the system token if that makes sense 2019-07-25 18:20:50 +02:00
Lennart Poettering
d6e9a347a5 bootctl: show random seed state 2019-07-25 18:20:50 +02:00
Lennart Poettering
e44c3229f2 bootctl: add new verb for initializing a random seed in the ESP 2019-07-25 18:20:50 +02:00
Lennart Poettering
3e155eba43 random-seed: move pool size determination to random-util.[ch]
That way we can reuse it elsewhere.
2019-07-25 18:16:46 +02:00
Lennart Poettering
c18ecf0375 core: take random seed from boot loader and credit it to kernel entropy pool 2019-07-25 18:16:46 +02:00
Lennart Poettering
e4dcf7aa52 sd-boot: read random seed from ESP and pass it to OS 2019-07-25 18:16:46 +02:00
Lennart Poettering
073220bf36 efi: steal glibc sha256 implementation 2019-07-25 17:10:51 +02:00
Lennart Poettering
22c5ff5132 bootctl: add new feature flag for indicating random seed management support 2019-07-25 17:10:51 +02:00
Lennart Poettering
7c122dfef8 bootctl: shortcut configuration file parsing 2019-07-25 17:10:51 +02:00
Lennart Poettering
b461576de4 bootctl: drop const from non-pointer function argument 2019-07-25 17:10:51 +02:00
Lennart Poettering
5509f91261 bootctl: use the fact that startswith() returns the suffix 2019-07-25 17:10:51 +02:00
Lennart Poettering
c242a08279 efivars: modernize efi_get_variable() a bit
Primarily, make sure the return parameters are all individually
optional.
2019-07-25 17:10:51 +02:00
Lennart Poettering
b19fa8126d efi: add log_oom() helper 2019-07-25 17:10:51 +02:00
Lennart Poettering
1aaabb17fd efi: modernize file_read() a bit 2019-07-25 17:10:51 +02:00
Lennart Poettering
5373172e80 xattr-util: document that we NUL suffix 2019-07-25 17:10:51 +02:00
Lennart Poettering
63d59b8dcf fs-util: add fsync_full() helper
We usually combine an fsync() with fsync_directory_of_file() hence let's
add a helper that does both in one.
2019-07-25 17:10:51 +02:00
Zbigniew Jędrzejewski-Szmek
57cd822887
Merge pull request #13144 from poettering/nspawn-modprobe
nspawn modprobe fixes
2019-07-25 11:34:37 +02:00
Yu Watanabe
500b96eb34 network: drop redundant Link::kind check
All CAN devices' iftype are ARPHRD_CAN. So, checking Link::kind is
redundant.

Follow-up for c6ac3729c9.
2019-07-25 16:47:16 +09:00
Yu Watanabe
b9109ff710 units: add initrd-network-generator.service 2019-07-25 16:46:55 +09:00
Yu Watanabe
0a9219986e
Merge pull request #13179 from yuwata/network-drop-new-settings-from-dhcp-section
network: drop recently added settings from deprecated [DHCP] section
2019-07-25 15:44:25 +09:00
Yu Watanabe
4bd04e3dcb network: drop recently added settings from deprecated [DHCP] section 2019-07-25 12:39:33 +09:00
Yu Watanabe
72e04ea31c test-network: use [DHCPv4] and [DHCPv6] sections instead of deprecated [DHCP] section 2019-07-25 12:38:57 +09:00
Yu Watanabe
26ce7c3bc8
Merge pull request #13169 from ssahani/bridge-igmp-group-version
Bridge igmp group version
2019-07-25 12:12:40 +09:00
Yu Watanabe
c904709288 test-network: add test for Bridge.IGMPVersion= 2019-07-25 10:05:17 +09:00
Susant Sahani
afa51e2dfb networkd: bridge add support to set IGMP version 2019-07-25 10:05:06 +09:00
Shreyas Behera
037dbb80d1 Add IFLA_BR_MCAST_IGMP_VERSION 2019-07-25 09:54:52 +09:00
Yu Watanabe
4410f5c902
Merge pull request #13166 from yuwata/network-slcan-support
network: slcan support
2019-07-25 09:49:56 +09:00
Yu Watanabe
9a4490e1e9
Merge pull request #13173 from kinvolk/iaguis/fix-norbind
Revert "nspawn: remove unnecessary mount option parsing logic"
2019-07-25 09:47:59 +09:00
Evgeny Vereshchagin
14f3e04d2b tests: pass --werror to meson on Semaphore 2019-07-25 02:35:35 +03:00
Lennart Poettering
0a2eef1ee1 core: try to reopen /dev/kmsg again right after mounting /dev
I was debugging stuff during early boot, and was confused that I never
found the logs for it in kmsg. The reason for that was that /proc is
generally not mounted the first time we do log_open() and hence
log_set_target(LOG_TARGET_KMSG) we do when running as PID 1 had not
effect. A lot later during start-up we call log_open() again where this
is fixed (after the point where we close all remaining fds still open),
but in the meantime no logs every got written to kmsg. This patch fixes
that.
2019-07-24 19:56:51 +02:00
RussianNeuroMancer
db8d014f0e Add Logitech touchpads, sort vendors alphabetically (#13167)
hwdb: Add Logitech touchpads, such as Logitech Wireless Touchpad, Logitech T650 and others

Sort vendors alphabetically.
2019-07-24 19:49:44 +02:00
Lennart Poettering
907ddcd361 update NEWS with more recently commited stuff 2019-07-24 17:35:25 +02:00
Lennart Poettering
e070037c88 Revert "timesyncd: add Conflicts for ntpd and chronyd"
This reverts commit 971a7a1526.

These unit names are typically different on distributions, let's not
hardcode those. Stuff like this should probably live in the distro
RPM/.deb, but not upstream, where we should be distro agnostic and
agnostic to other higher level packages like this.
2019-07-24 17:29:28 +02:00
Iago López Galeiras
5574181151 test: add some test for norbind
This regressed so let's add a test to make sure it doesn't happen again.
2019-07-24 17:20:29 +02:00
Iago López Galeiras
a11fd4067b Revert "nspawn: remove unnecessary mount option parsing logic"
This reverts commit 72d967df3e.

Revert this because it broke the `norbind` option of the bind flags
because it does bind-mounts unconditionally recursive.

Let's bring the old logic back.

Fixes: #13170
2019-07-24 17:17:42 +02:00
Lennart Poettering
372901d071
Merge pull request #13168 from ssahani/fix-dhcp-route-no-parsing
network: fix DHCP route rumber parsing.
2019-07-24 16:42:18 +02:00
Debarshi Ray
90ce7627df sysctl: Enable ping(8) inside rootless Podman containers
This makes ping(8) work without CAP_NET_ADMIN and CAP_NET_RAW because
those aren't effective inside rootless Podman containers.

It's quite useful when using OSTree based operating systems like Fedora
Silverblue, where development environments are often set up using
rootless Podman containers with helpers like Toolbox [1]. Not having
a basic network utility like ping(8) work inside the development
environment can be inconvenient.

See:
https://lwn.net/Articles/422330/
http://man7.org/linux/man-pages/man7/icmp.7.html
https://github.com/containers/libpod/issues/1550

The upper limit of the range of group identifiers is set to 2147483647,
which is 2^31-1. Values greater than that get rejected by the kernel
because of this definition in linux/include/net/ping.h:
  #define GID_T_MAX (((gid_t)~0U) >> 1)

That's not so bad because values between 2^31 and 2^32-1 are reserved
on systemd-based systems anyway [2].

[1] https://github.com/debarshiray/toolbox
[2] https://systemd.io/UIDS-GIDS.html#summary
2019-07-24 16:41:45 +02:00
Yu Watanabe
c6ac3729c9 network: support slcan
The device driver does not have IFLA_INFO_KIND attribute. So, we need to
check iftype.

Closes #13150.
2019-07-24 23:13:22 +09:00
Susant Sahani
426588bc63 network: fix DHCP route rumber parsing. 2019-07-24 18:06:30 +05:30
Zbigniew Jędrzejewski-Szmek
181824e32c
Merge pull request #13145 from poettering/nss-gateway-fix
filter _gateway NSS resolving to only use main routing table
2019-07-24 12:00:30 +02:00
Lennart Poettering
f3d3a9ca07 man: highlight the different concepts behind h/H and t/T
Fixes: #13151
2019-07-24 11:41:35 +02:00
Yu Watanabe
8f815e8b03 tree-wide: drop netinet/ether.h from socket-util.h and sd-netlink.h 2019-07-24 18:23:08 +09:00
Lennart Poettering
544ad34257
Merge pull request #13118 from bluca/shutdown_watchdog_kexec
core: add KExecWatchdogSec and rename ShutdownWatchdogSec to RebootWatchdogSec
2019-07-24 11:11:03 +02:00
Yu Watanabe
d008aae97a
Merge pull request #13143 from poettering/logind-inhibit-restart
logind restart inhibition fixes
2019-07-24 16:50:39 +09:00
Lennart Poettering
dfadc1f203 meson: reorder alphabetically 2019-07-24 09:07:33 +02:00
Lennart Poettering
d1b014df9e local-addresses: filter out any routing tables but the main one
Fixes: #13132
2019-07-24 09:07:30 +02:00