Skip to content

Commit d86bfb2

Browse files
feat: add FAQ content and apply numerous fixes (#89)
* feat: add FAQ content and apply numerous fixes * Update linkspector.yml * Update linkspector.yml * remove linkspector for now
1 parent 337f818 commit d86bfb2

2 files changed

Lines changed: 40 additions & 4 deletions

File tree

content/CONTRIBUTING.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ Start from your own fork with a branch for the pull request/feature you want to
9595
Once it's done building, go to your VM running Fedora Atomic and rebase to your newly built image. This is a string that starts with 'rpm-ostree rebase ostree-unverified-registry:ghcr.io/', followed by the repo and package name. This can be found by checking the "packages" section in the sidebar of your fork. Take the docker pull command and copy the repo and package reference. Then, append the tag, which is in the format `br-{branchName}-{fedoraVersion}`. Your command should look like this:
9696

9797
```
98-
rpm-ostree rebase ostree-unverified-registry:ghcr.io/YOURUSERNAME/YOURIMAGENAME:br-YOURBRANCHNAME-41`
98+
rpm-ostree rebase ostree-unverified-registry:ghcr.io/YOURUSERNAME/YOURIMAGENAME:br-YOURBRANCHNAME-41
9999
```
100100

101101
## [Building Locally](#building-locally)
@@ -177,11 +177,13 @@ Run the image using `podman run` to get a root shell in your newly built image a
177177
We use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) and enforce them with a bot to keep the changelogs tidy:
178178

179179
```
180+
180181
chore: add Oyster build script
181182
docs: explain hat wobble
182183
feat: add beta sequence
183184
fix: remove broken confirmation message
184185
refactor: share logic between 4d3d3d3 and flarhgunnstow
185186
style: convert tabs to spaces
186187
test: ensure Tayne retains clothing
188+
187189
```

content/FAQ.md

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,18 @@ permalink: /faq
1515
- [Why is Flatpak included? Should I use Flatpak?](#flatpak)
1616
- [Should I use Electron apps? Why don't they work well with hardened_malloc?](#electron)
1717
- [My fans are really loud, is this normal?](#fans)
18+
- [How do I whitelist a module?](#module-whitelist)
1819
- [Should I use Firejail?](#firejail)
1920
- [An app I use won't start due to a malloc issue. How do I fix it?](#standard-malloc)
2021
- [On secureblue half of my CPU cores are gone. Why is this?](#smt)
2122
- [How do I install software?](#software)
2223
- [How do I install Steam?](#steam)
2324
- [How do I enable anti-cheat support?](#anticheat)
2425
- [How do I install Docker?](#docker)
26+
- [How do I enable printing?](#printing)
2527
- [Why am I unable to start containers?](#container-userns)
2628
- [How do I enable userns for other apps?](#unconfined-userns)
29+
- [Something broke! How do I rollback?](#rollback)
2730
- [Another security project has a feature that's missing in secureblue, can you add it?](#feature-request)
2831
- [Why are Bluetooth kernel modules disabled? How do I enable them?](#bluetooth)
2932
- [Why are upgrades so large?](#upgrade-size)
@@ -32,6 +35,7 @@ permalink: /faq
3235
- [Why I can't install nor use any GNOME user extensions?](#gnome-extensions)
3336
- [My clock is wrong, and it's not getting automatically set. How do I fix this?](#clock)
3437
- [How do I get notified of new releases?](#releases)
38+
- [What do the GitHub releases involve?](#release-content)
3539
- [Why don't my AppImages work?](#appimage)
3640
- [Why don't KDE Vaults work?](#kde-vaults)
3741
- [How do I provision signed Distroboxes?](#distrobox-assemble)
@@ -46,6 +50,8 @@ permalink: /faq
4650
- [Why doesn't DRM content (spotify, netflix etc.) work in Trivalent?](#trivalent-protected-content)
4751
- [How do I enable kernel modules?](#enable-kernel-modules)
4852
- [Why am I being asked to enroll a Secure Boot key?](#new-key)
53+
- [Why does secureblue include Homebrew?](#brew)
54+
- [Does secureblue use "linux-hardened"?](#linux-hardened)
4955

5056

5157
### [Why secureblue?](#secureblue)
@@ -78,6 +84,11 @@ Consult this [discussion](https://github.com/secureblue/secureblue/issues/193#is
7884

7985
During rpm-ostree operations, it's normal. Outside of that, make sure you followed the NVIDIA steps in the [post-install instructions](/install#nvidia) if you're using an NVIDIA GPU.
8086

87+
### [How do I whitelist a module?](#module-whitelist)
88+
{: #module-whitelist}
89+
90+
secureblue prevents [numerous modules](https://github.com/secureblue/secureblue/blob/live/files/system/etc/modprobe.d/blacklist.conf) from loading to reduce attack surface. If there's a particular module you need, run `ujust override-enable-module mod_name`. To undo this, run `ujust override-reset-module mod_name`.
91+
8192
### [Should I use Firejail?](#firejail)
8293
{: #firejail}
8394

@@ -92,7 +103,7 @@ During rpm-ostree operations, it's normal. Outside of that, make sure you follow
92103
### [On secureblue half of my CPU cores are gone. Why is this?](#smt)
93104
{: #smt}
94105

95-
`mitigations=auto,nosmt` is set on secureblue. This means that if your CPU is vulnerable to attacks that utilize [Simultaneous Multithreading](https://en.wikipedia.org/wiki/Simultaneous_multithreading), SMT will be disabled.
106+
`mitigations=auto,nosmt` is set on secureblue. This means that if your CPU is vulnerable to attacks that utilize [Simultaneous Multithreading](https://en.wikipedia.org/wiki/Simultaneous_multithreading), SMT will be disabled. There are several other kargs secureblue sets that may also trigger this behavior, including `nosmt=force`, and `l1tf=full,force`.
96107

97108
### [How do I install software?](#software)
98109
{: #software}
@@ -137,6 +148,11 @@ Similarly, you can uninstall Docker with:
137148
ujust uninstall-docker
138149
```
139150

151+
### [How do I enable printing?](#printing)
152+
{: #printing}
153+
154+
To enable printing using [CUPS](https://en.wikipedia.org/wiki/CUPS), run `ujust toggle-cups`. Note that this enables printing support, but still leaves printer discovery disabled for security reasons. The cups printer discovery service increases attack surface significantly and has a recent history of [severe vulnerabilities](https://www.redhat.com/en/blog/red-hat-response-openprinting-cups-vulnerabilities).
155+
140156
### [Why am I unable to start containers?](#container-userns)
141157
{: #container-userns}
142158

@@ -157,7 +173,10 @@ The following command will toggle the ability of processes in the unconfined SEL
157173
ujust toggle-unconfined-domain-userns-creation
158174
```
159175

160-
For one example, attempting to bubblewrap a program without first enabling the ability toggled by the ujust above will result in a `bwrap: Creating new namespace failed: Permission denied` error, but beware that enabling it results in a security degradation. Consult our [user namespaces article](/articles/userns) for more details.
176+
### [Something broke! How do I rollback?](#rollback)
177+
{: #rollback}
178+
179+
Each `rpm-ostree` operation generates and stages a new deployment, which includes the creation of a new GRUB entry at position 0. To boot into the previous deployment, simply select the GRUB entry at position 1. As a preventative measure, you can ensure you always have a known-good deployment available by [pinning](https://docs.fedoraproject.org/en-US/fedora-silverblue/faq/#_how_can_i_upgrade_my_system_to_the_next_major_version_for_instance_rawhide_or_an_upcoming_fedora_release_branch_while_keeping_my_current_deployment) an existing deployment.
161180

162181
### [Another security project has a feature that's missing in secureblue, can you add it?](#feature-request)
163182
{: #feature-request}
@@ -226,6 +245,11 @@ To subscribe to release notifications, on the secureblue GitHub page, click "Wat
226245

227246
If you prefer to use an Atom feed, supported by many RSS clients, you can use the [feed provided by GitHub](https://github.com/secureblue/secureblue/releases.atom).
228247

248+
### [What do the GitHub releases involve?](#release-content)
249+
{: #release-content}
250+
251+
Substantial testing for new changes is done in the `staging` and `next` branches. However, once a commit is merged into `live`, a new set of builds is immediately generated and deployed. As such, the GitHub releases are an informational measure to track progress and communicate changes to users. This is only the case for the secureblue main repo, it isn't the case for Trivalent. For Trivalent, GitHub releases correspond to RPM releases to the RPM repo.
252+
229253
### [Why don't my AppImages work?](#appimage)
230254
{: #appimage}
231255

@@ -310,4 +334,14 @@ As part of a move to unify our supply chain, secureblue is moving off of [uBlue]
310334

311335
```
312336
ujust enroll-secureblue-secure-boot-key
313-
```
337+
```
338+
339+
### [Why does secureblue include Homebrew?](#brew)
340+
{: #brew}
341+
342+
Homebrew is a cross-platform package manager originally for MacOS that allows users on Atomic systems to install cli tools without layering and rebooting their system. It also brings with it a recent [independent security audit](https://github.com/trailofbits/publications/blob/master/reviews/2023-08-28-homebrew-securityreview.pdf) and subsequent [actions](https://github.com/Homebrew/brew.sh/blob/master/_posts/2024-07-30-homebrew-security-audit.md?plain=1#L24) taken in response to security findings uncovered by that audit.
343+
344+
### [Does secureblue use "linux-hardened"?](#linux-hardened)
345+
{: #linux-hardened}
346+
347+
"linux-hardened" is the brand name for a specific set of kernel patches and builds on top of the mainline kernel, used by some distributions. secureblue doesn't use this kernel. Instead, we apply runtime configuration changes on top of Fedora's kernel. We can accomplish much but not all of what linux-hardened accomplishes using this approach. In the future, we plan to build our own kernel with patches on top of Fedora's kernel, including the [OpenPAX patches](https://github.com/edera-dev/linux-openpax). However, even today there are some important ways in which our approach is preferable. For example, linux-hardened completely disables [unprivileged user namespaces](/articles/userns). This means that to use flatpaks or chromium-based browsers, [suid-root](https://en.wikipedia.org/wiki/Setuid) binaries are required. This is a significant security degradation. secureblue on the other hand implements SELinux-confined unprivileged user namespaces, restricting them by default but allowing them for Flatpaks and Trivalent to enable their operation without suid-root.

0 commit comments

Comments
 (0)