···77 <title>Grsecurity/PaX</title>
8899 <para>
1010- Grsecurity/PaX is a set of patches against the Linux kernel that make it
1111- harder to exploit bugs. The patchset includes protections such as
1212- enforcement of non-executable memory, address space layout randomization,
1313- and chroot jail hardening. These and other
1010+ Grsecurity/PaX is a set of patches against the Linux kernel that
1111+ implements an extensive suite of
1412 <link xlink:href="https://grsecurity.net/features.php">features</link>
1515- render entire classes of exploits inert without additional efforts on the
1616- part of the adversary.
1313+ designed to increase the difficulty of exploiting kernel and
1414+ application bugs.
1715 </para>
18161917 <para>
2018 The NixOS grsecurity/PaX module is designed with casual users in mind and is
2121- intended to be compatible with normal desktop usage, without unnecessarily
2222- compromising security. The following sections describe the configuration
2323- and administration of a grsecurity/PaX enabled NixOS system. For
2424- more comprehensive coverage, please refer to the
1919+ intended to be compatible with normal desktop usage, without
2020+ <emphasis>unnecessarily</emphasis> compromising security. The
2121+ following sections describe the configuration and administration of
2222+ a grsecurity/PaX enabled NixOS system. For more comprehensive
2323+ coverage, please refer to the
2524 <link xlink:href="https://en.wikibooks.org/wiki/Grsecurity">grsecurity wikibook</link>
2625 and the
2726 <link xlink:href="https://wiki.archlinux.org/index.php/Grsecurity">Arch
···3534 and each configuration requires quite a bit of testing to ensure that the
3635 resulting packages work as advertised. Defining additional package sets
3736 would likely result in a large number of functionally broken packages, to
3838- nobody's benefit.</para></note>.
3737+ nobody's benefit.</para></note>
3938 </para>
40394140 <sect1 xml:id="sec-grsec-enable"><title>Enabling grsecurity/PaX</title>
···126125 The NixOS kernel is built using upstream's recommended settings for a
127126 desktop deployment that generally favours security over performance. This
128127 section details deviations from upstream's recommendations that may
129129- compromise operational security.
128128+ compromise security.
130129131130 <warning><para>There may be additional problems not covered here!</para>
132132- </warning>.
131131+ </warning>
133132 </para>
134133135134 <itemizedlist>
···159158 <listitem><para>
160159 The NixOS module conditionally weakens <command>chroot</command>
161160 restrictions to accommodate NixOS lightweight containers and sandboxed Nix
162162- builds. This is problematic if the deployment also runs a privileged
163163- network facing process that <emphasis>relies</emphasis> on
161161+ builds. This can be problematic if the deployment also runs privileged
162162+ network facing processes that <emphasis>rely</emphasis> on
164163 <command>chroot</command> for isolation.
165164 </para></listitem>
166165···221220 </para>
222221223222 <para>
224224- The wikibook provides an exhaustive listing of
223223+ The grsecurity/PaX wikibook provides an exhaustive listing of
225224 <link xlink:href="https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options">kernel configuration options</link>.
226225 </para>
227226228227 <para>
229228 The NixOS module makes several assumptions about the kernel and so
230229 may be incompatible with your customised kernel. Currently, the only way
231231- to work around incompatibilities is to eschew the NixOS module.
230230+ to work around these incompatibilities is to eschew the NixOS
231231+ module.
232232+ </para>
232233234234+ <para>
233235 If not using the NixOS module, a custom grsecurity package set can
234236 be specified inline instead, as in
235237 <programlisting>
···290292291293 <listitem><para>User initiated autoloading of modules (e.g., when
292294 using fuse or loop devices) is disallowed; either load requisite modules
293293- as root or add them to<option>boot.kernelModules</option>.</para></listitem>
295295+ as root or add them to <option>boot.kernelModules</option>.</para></listitem>
294296295297 <listitem><para>Virtualization: KVM is the preferred virtualization
296298 solution. Xen, Virtualbox, and VMWare are