UNSTIG: Undoing STIG Lockdowns on RHEL
If you've ever been handed a RHEL box that's been hardened against the Security Technical Implementation Guide (STIG), you know the pain. Things that should just work — mounting a USB drive, running a script you just downloaded, sudo not asking for your password every five seconds — suddenly don't, and the error messages rarely point you at the actual cause.
This post is a running list of STIG-enforced settings I've run into and how to undo them. This is meant for personal labs, dev boxes, or environments where you have the authority to make this call — not for production systems still under a compliance mandate. Always check with whoever owns the STIG policy before changing any of this on a system you don't fully control.
Unblock USB Storage
STIG disables USB mass storage by blacklisting the kernel module. Comment out the relevant lines in the modprobe config and reboot:
Unblock USB Peripherals
usbguard blocks USB peripherals (keyboards, mice, etc.) from being used unless explicitly allowed:
Unblock Bluetooth
Same idea as USB storage — the Bluetooth kernel modules are blacklisted:
Unblock Executing Files
STIG mounts /home, /var, and /var/tmp with noexec, which blocks running scripts or binaries from those locations. To fix it for the current session:
sudo mount -o remount,exec /home
sudo mount -o remount,exec /var/tmp
sudo mount -o remount,exec /var
To make it stick across reboots, edit /etc/fstab and change noexec to exec on the relevant lines.
Unblock Sudo Timeout
By default STIG sets sudo to re-prompt for a password on every single command. Add this to /etc/sudoers (via visudo) to restore a normal timeout:
Set it to whatever timeout (in minutes) works for you — 0 means the password is asked every time by design, so bump it up (e.g. 15) if you want sudo to remember your password for a while instead.
Unblock Executing Unsigned Applications
fapolicyd enforces an application allowlist, which blocks running anything that isn't explicitly trusted:
Unblock SELinux
To drop SELinux into permissive mode for the current session:
To make it permanent, edit /etc/selinux/config and set SELINUX=permissive (or SELINUX=disabled), then reboot.
I'll keep adding to this list as I run into more STIG headaches. If you've hit something not covered here, let me know in the comments.