Password Quality Checking
Fedora now has a single configurable library, libpwquality, for checking the quality of new passwords used for system accounts. The system wide password quality checks provided by this library are configured by modifying the
/etc/security/pwquality.conf configuration file.
Developers wishing to call this API from their applications will find the API description in the
pwquality.h file provided by the libpwquality-devel package. A python wrapper, python-pwquality, is also provided.
SELinux Deny Ptrace
A new SELinux boolean, deny_ptrace, has been added. It is recommended that users who do not plan to debug applications on their machine turn this boolean on. The boolean prevents rogue processes from being able to read the memory of, or otherwise attack, other processes using debugging tools including ptrace and gdb.
Such attacks are prevented even where the rogue process is running as the root user or attacking a process running with the same SELinux context and label. To permanently enable the protection provided by the deny_ptrace boolean, execute the following command as root:
# setsebool -P deny_ptrace 1
To disable the protection provided by the deny_ptrace boolean temporarily, execute the following command as root:
# setsebool deny_ptrace 0
Services Private /tmp
A number of services managed by systemd have been modified to make use of its ability to provide them with a private /tmp directory. Privileged services using /tmp and /var/tmp have previously been found to be open to being interfered with by unprivileged users, potentially leading to privilege escalation. Using private /tmp directories for services prevents this style of exploit.
The directive added to the systemd unit files for the modified services is:
A new tool, sandbox, has been created to streamline creation of secure libvirt containers. When provided with an executable sandbox determines the mount points and libvirt container information required to run the application in a container. The container is then launched by libvirt with an SELinux context that will prevent it interacting with other processes on the system, including other containers, while still being able to share system data.
This allows an administrator to run multiple instances of a service simultaneously, while preventing them from breaking the host machine or other processes on the system, even when run as root. To use sandbox, install the libvirt-sandbox package.