aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2021-01-29 19:15:28 +0000
committerEd Maste <emaste@FreeBSD.org>2021-02-20 16:55:00 +0000
commit020f4112559ebf7e94665c9a69f89d21929ce82a (patch)
tree3b79d9deee0ec5da9e5137bb76110b4ba322154e
parentfbc57e2df95b582f7d3287ed3919337bfec5711a (diff)
downloadsrc-020f4112559ebf7e94665c9a69f89d21929ce82a.tar.gz
src-020f4112559ebf7e94665c9a69f89d21929ce82a.zip
bsdinstall: add knob to set ASLR sysctls
Reviewed by: mw Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D28418
-rwxr-xr-xusr.sbin/bsdinstall/scripts/hardening18
1 files changed, 18 insertions, 0 deletions
diff --git a/usr.sbin/bsdinstall/scripts/hardening b/usr.sbin/bsdinstall/scripts/hardening
index 58ea0a112e26..67ee3672712d 100755
--- a/usr.sbin/bsdinstall/scripts/hardening
+++ b/usr.sbin/bsdinstall/scripts/hardening
@@ -28,6 +28,20 @@
: ${DIALOG_OK=0}
+set_aslr_sysctls()
+{
+ for bit in 32 64; do
+ if ! sysctl -Nq kern.elf$bit.aslr.enable >/dev/null; then
+ continue
+ fi
+ cat >> $BSDINSTALL_TMPETC/sysctl.conf.hardening <<-EOF
+ kern.elf$bit.aslr.enable=1
+ kern.elf$bit.aslr.pie_enable=1
+ kern.elf$bit.aslr.honor_sbrk=0
+ EOF
+ done
+}
+
echo -n > $BSDINSTALL_TMPETC/rc.conf.hardening
echo -n > $BSDINSTALL_TMPETC/sysctl.conf.hardening
echo -n > $BSDINSTALL_TMPBOOT/loader.conf.hardening
@@ -48,6 +62,7 @@ FEATURES=$( dialog --backtitle "FreeBSD Installer" \
"8 disable_sendmail" "Disable Sendmail service" ${disable_sendmail:-off} \
"9 secure_console" "Enable console password prompt" ${secure_console:-off} \
"10 disable_ddtrace" "Disallow DTrace destructive-mode" ${disable_ddtrace:-off} \
+ "11 enable_aslr" "Enable address layout randomization" ${enable_aslr:-off} \
2>&1 1>&3 )
exec 3>&-
@@ -86,6 +101,9 @@ for feature in $FEATURES; do
disable_ddtrace)
echo 'security.bsd.allow_destructive_dtrace=0' >> $BSDINSTALL_TMPBOOT/loader.conf.hardening
;;
+ enable_aslr)
+ set_aslr_sysctls
+ ;;
esac
done