Linux Kernel

From Kicksecure

Newerlinux161108640.png

Introduction[edit]

Kernel Options[edit]

GNU/Linux provides a wide variety of possible kernel options for individual users. Active kernel releases fall into several main categories: [1]

  • Prepatch (RC) kernels: these "release candidate" kernels are pre-releases of the mainline kernel that are intended for developers and Linux enthusiasts. [2] They contain new features and must be tested before they are put into a stable release.
  • Mainline: the mainline tree is where all new features are introduced and where new development occurs. Every 2-3 months, a new mainline kernel is released.
  • Stable: After a mainline kernel is released, it is classified as stable. Bug fixes for the stable kernel are backported from the mainline tree. On approximately a weekly basis, stable kernel updates are released. Normally only a few bug fix kernel releases are available before the next mainline kernel is released.
  • Long-term (LTS): At any time there are usually several "long-term maintenance" kernel releases available. Bug fixes are backported for older kernels, but these are focused on the most important issues and releases are not very frequent (particularly for older trees).
  • Distribution kernels: A number of Linux distributions provide long-term maintenance kernels, which are sometimes not based on those maintained by kernel developers. This is the case for Debian upon which Kicksecure ™ is based. [3]

Interested readers can refer to The Linux Kernel Archives to see the prepatch, mainline, stable and long-term kernels that are currently available.

Recommended Kernel[edit]

For the vast majority of Kicksecure ™ users, there is simply no reason to change from the distribution kernel that is in use.

The general expert consensus is that while LTS kernels have less hardening features and not all bug fixes are backported, they have less attack surface and potentially less chance of having new bugs. In comparison, stable kernels have more hardening features and all known bug fixes to date, but a higher attack surface and a greater potential for new bugs. [4] The grsecurity development team has also noted that the majority of Linux kernel vulnerabilities are those that have most recently been introduced (released) in newer versions. [5] [6]

The developer who is responsible for stable Linux kernel releases (Greg Kroah-Hartman), has also confirmed this viewpoint. His recommendation of what kernel should be used (ranked from best to worst) is as follows: [7] [8]

  1. Supported kernel from your favorite Linux distribution.
  2. Latest stable release.
  3. Latest LTS release.
  4. Older LTS release that is still being maintained.

In Debian's case, it is noted that the distribution kernel is not based on the latest stable upstream kernel release, but they still ensure that any necessary bug fixes are applied on a regular basis.

Kicksecure ™ developers have also noted there is a risk of instability and breakage when utilizing kernels from Debian backports. [9] For instance, this had previously resulted in Qubes breakage [10] and caused mismatches in the kernel image versus kernel headers.

One possible exception to the recommendation in this section concerns Kicksecure-Qubes users, since the dom0 kernel applies to all qubes by default. To benefit from a number of recent security developments (such as Linux Kernel Runtime Guard (LKRG)), the use of in-VM kernels is a prerequisite.

Kernel Parameter[edit]

Kernel Issues[edit]

Sometimes updated kernel versions can cause issues. This has only been an issue for major kernel upgrades such as when performing instructions below. This has never been an issue when performing standard ("everyday") updates.

Host kernel version 5.15 was reported to cause many unrelated, strange issues inside VirtualBox VMs because that kernel version was still unsupported by VirtualBox. [11]

  • host freeze
  • segmentation faults in many applications
  • SIGSEGV errors in all chromium based browsers
  • broken sdwdate
  • broken swap-file-creator
  • broken update and upgrades with bizarre unusual otherwise never seen errors such as Hash Sum Mismatch
  • Tor Browser was reported to have crashed inside VirtualBox with Segmentation fault (core dumped).
  • msgcollector issue was reported error_text: ‘exit_code: 0 | text: Failed to set up inotifywait! inotifywait_folder: /run/msgcollector | wait_exit_code: 141’

Installation of Newer Kernels[edit]

Preparation[edit]

Kicksecure ™[edit]

Kicksecure ™: No preparation is required.

Kicksecure ™ for Qubes[edit]

Kicksecure ™ for Qubes: A Qubes VM kernel is required.

  1. Follow the Qubes OS Installing kernel in Debian VM instructions.
  2. Ensure the Qubes VM kernel is functional before proceeding -- Qubes VM kernel issues should be raised at Qubes support and not in Kicksecure ™ forums. [12] [13]
  3. Reboot dom0 with Qubes VM kernel. This is because Qubes VM kernel might break unrelated things such as the USB VM. [14]
  4. Once the Qubes VM kernel is functional, proceed with the following instructions.


Package Installation[edit]

Testers only! Ambox warning pn.svg.png Warning: This is for testers-only!

[15]

linux-image-$(dpkg --print-architecture) linux-headers-$(dpkg --print-architecture) can be installed from Debian backports. This is non-ideal, see footnote. [16]

1. Boot Kicksecure ™ (kicksecure-16) Template.

2. Add the current Debian stable backports codename bullseye-backports to Debian apt sources.

Note: this applies to Kicksecure ™ 16.0.5.3. Later Kicksecure ™ versions may use a codename different to bullseye.

In Kicksecure ™ (kicksecure-16) Template, run.

sudo su -c "echo -e 'deb tor+https://deb.debian.org/debian bullseye-backports main contrib non-free' > /etc/apt/sources.list.d/backports.list"

Alternatively, users who like Onionizing Repositories can set the .onion mirror.

sudo su -c "echo -e 'deb tor+http://2s4yqjx5ul6okpp3f2gaunr2syex5jgbfpfvhxxbbjwnrsvbk5v3qbid.onion/debian bullseye-backports main contrib non-free' > /etc/apt/sources.list.d/backports.list"

3. Update the package lists.

sudo apt update

4. Install the select software.

sudo apt -t bullseye-backports install linux-image-$(dpkg --print-architecture) linux-headers-$(dpkg --print-architecture)

The procedure is now complete.

5. Undo.

On occasion it is necessary to undo this configuration, for example when upgrading from Debian bullseye to bookworm. [17] To proceed, run.

sudo rm /etc/apt/sources.list.d/backports.list

These steps can be repeated for any other host operating system installations or other VMs.

See Also[edit]

Footnotes[edit]

  1. https://www.kernel.org/category/releases.html
  2. These must be compiled from source.
  3. To tell if you are running a distribution kernel, in a terminal run: uname -r. If anything appears after the dash, then a distribution kernel is in use. At the time of writing, Debian is utilizing the following distribution kernel: 4.19.98-1+deb10u1.
  4. https://forums.whonix.org/t/kernel-recompilation-for-better-hardening/7598?page=11
  5. https://www.grsecurity.net/the_truth_about_linux_4_6
  6. See also: Debian wiki Kernel FAQ.
  7. http://kroah.com/log/blog/2018/08/24/what-stable-kernel-should-i-use/
  8. He also notes that an unmaintained kernel release should never be used.
  9. https://forums.whonix.org/t/kernel-versions-and-security-debian-backports/5791
  10. See: https://github.com/QubesOS/qubes-issues/issues/4443
  11. https://www.virtualbox.org/ticket/17055#comment:3
  12. https://forums.whonix.org/t/what-to-post-in-this-qubes-whonix-forum-and-what-not/2275
  13. Qubes feature request: Simplify and promote using in-vm kernel
  14. As experienced firsthand by Kicksecure ™ developer Patrick Schleizer.
  15. Past Debian issue: linux-image-amd64 vs linux-headers-amd64 Debian buster-backports version mismatch bpo.2 vs bpo.3
  16. Users should Prefer Packages from Debian Stable Repository, but using backports is better than manual software installation or using third party package managers since this prefers APT. To contain the risk,
  17. Most often this step applies before attempting major Kicksecure ™ upgrades; upgrade instructions are also made available at that time (see Stay Tuned).


Unfinished: This wiki is a work in progress. Please do not report broken links until this notice is removed, use Search Engines First and contribute improving this wiki.