Re: [PATCH v2] kexec: add sysctl to disable kexec

Vivek Goyal
2013-12-10T14:39:25Z

On Tue, Dec 10, 2013 at 09:35:40AM -0500, Vivek Goyal wrote:
> On Mon, Dec 09, 2013 at 05:06:10PM -0800, Kees Cook wrote:
> > On Mon, Dec 9, 2013 at 4:34 PM, H. Peter Anvin <hpa@zytor.com> wrote:
> > > On 12/09/2013 04:16 PM, Kees Cook wrote:
> > >> For general-purpose (i.e. distro) kernel builds it makes sense to build with
> > >> CONFIG_KEXEC to allow end users to choose what kind of things they want to do
> > >> with kexec. However, in the face of trying to lock down a system with such
> > >> a kernel, there needs to be a way to disable kexec (much like module loading
> > >> can be disabled). Without this, it is too easy for the root user to modify
> > >> kernel memory even when CONFIG_STRICT_DEVMEM and modules_disabled are set.
> > >>
> > >> Signed-off-by: Kees Cook <keescook@chromium.org>
> > >> Acked-by: Rik van Riel <riel@redhat.com>
> > >
> > > So the logic is to load a crashkernel and then lock down the machine
> > > before services, networking etc. are enabled?
> >
> > Right, or to just turn it off at boot time if kexec will not be used at all.
>
> kdump kernel is loaded with the help of kdump service. Different distro's
> might have different dependencies for that serivce. But recently in fedora
> we wait network to come up before starting that service. (So that nfs
> targets can be mounted and checked for valid dump destinations).
>
> IOW, crash kernel is loaded quite late in the game (quite a few services
> have run and possibly networking is up too). To me, practically one will
> disable kdump also if you change state of this knob early.

Of course it also removes the possibility of re-loading crash kernel
after doing some changes to /etc/kdump.conf (like dump destination or
kernel command line).

I am wondering if it is sufficient to disable kexec jump back
functionality only while retaining kexec and kdump. That seems to be
easiest way to change kernel's data structures.

Thanks
Vivek