Date: Sun, 9 Jun 1996 12:13:24 -0400 (EDT) From: Brian Tao <taob@io.org> To: FREEBSD-SECURITY-L <freebsd-security@freebsd.org> Subject: Effects of kern.securelevel >= 0 Message-ID: <Pine.NEB.3.92.960609115619.11452G-100000@zap.io.org>
next in thread | raw e-mail | index | archive | help
According to /sys/sys/systm.h, single user mode should be associated with kern.securelevel=0 and multiuser mode with kern.securelevel=1. Should the default /etc/rc have the appropriate sysctl call? Also, are there any caveats to running an ISP shell login server with securelevel 2? I recall that an old version of XFree86 would complain at level 1+ because it seemed to want to write to /dev/mem (VGA memory access?). I can't think of any side effects (no user should be fiddling with raw disk devices anyway). My main concern was the ability to turn off schg/sappnd flags at level -1 or 0. I suppose, however, that if someone was able to execute commands as root, that person could just add commands to /etc/rc to do their dirty deeds and reboot the machine... :( /* * The `securelevel' variable controls the security level of the system. * It can only be decreased by process 1 (/sbin/init). * * Security levels are as follows: * -1 permanently insecure mode - always run system in level 0 mode. * 0 insecure mode - immutable and append-only flags make be turned off. * All devices may be read or written subject to permission modes. * 1 secure mode - immutable and append-only flags may not be changed; * raw disks of mounted filesystems, /dev/mem, and /dev/kmem are * read-only. * 2 highly secure mode - same as (1) plus raw disks are always * read-only whether mounted or not. This level precludes tampering * with filesystems by unmounting them, but also inhibits running * newfs while the system is secured. * * In normal operation, the system runs in level 0 mode while single user * and in level 1 mode while multiuser. If level 2 mode is desired while * running multiuser, it can be set in the multiuser startup script * (/etc/rc.local) using sysctl(1). If it is desired to run the system * in level 0 mode while multiuser, initialize the variable securelevel * in /sys/kern/kern_sysctl.c to -1. Note that it is NOT initialized to * zero as that would allow the kernel binary to be patched to -1. * Without initialization, securelevel loads in the BSS area which only * comes into existence when the kernel is loaded and hence cannot be * patched by a stalking hacker. */ -- Brian Tao (BT300, taob@io.org, taob@ican.net) Systems and Network Administrator, Internet Canada Corp. "Though this be madness, yet there is method in't"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.92.960609115619.11452G-100000>