Para usuarios de Linux que ya han estado expuestos RHELbasado en distribuciones tales como RHEL, sombrero de fieltro, AlmaLinuxy Linux rocoso, SELinux No es un concepto nuevo para ellos, ya que en su mayoría está preinstalado en sus sistemas.
Tabla de Contenidos
¿Por qué es importante SELinux?
SELinux o Linux con seguridad mejorada Es un sistema de seguridad de Linux que pertenece al acceso de roles.si has estado con RHELSegún la distribución, SELinux Es posible que haya intentado bloquear la mayoría de las acciones iniciadas por el usuario (especialmente la configuración basada en la web) hasta que casi (o con éxito) optó por deshabilitarla.
Sin embargo, deshabilite SELinux Esto se desaconseja enfáticamente ya que debilita la huella de seguridad de su servidor. Otra forma de deshabilitar SELinux es asegurarse de que su configuración se implemente correctamente.al entender SELinux configuración, podemos hacer que funcione bien con otros paquetes instalados de Linux.
[ You might also like: How to Password Protect Directory in Nginx Web Server ]
Este artículo nos guiará a través de la configuración básica que se puede lograr SELinux Porque no solo funciona bien con el servidor web Nginx, sino que también lo fortalece.
Instalar el servidor web Nginx en Linux
Este artículo requiere Nginx Instálelo en su distribución de sistema operativo Linux. Para diferentes administradores de paquetes de Linux, consulte las siguientes guías de instalación:
$ sudo apt install nginx [On Debian, Ubuntu and Mint] $ sudo yum install nginx [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo apk add nginx [On Alpine Linux] $ sudo emerge -a nginx [On Gentoo Linux] $ sudo pacman -S nginx [On Arch Linux] $ sudo zypper install nginx [On OpenSUSE]
Una vez que se instala nginx, se pueden usar los siguientes comandos para habilitar, iniciar y verificar el estado.
$ sudo systemctl enable nginx $ sudo systemctl start nginx $ sudo systemctl nginx status
Instalar SELinux en Linux
En distribuciones de Linux como Debian, ubuntu, arco linuxy Mánzaroes posible que deba eliminar/desinstalar Aplicar Armadura antes de continuar con la instalación SELinux porque ellos son Módulo de seguridad de Linux Implementaciones de interfaz del kernel de Linux y, por lo tanto, no pueden coexistir al mismo tiempo.
$ sudo systemctl status AppArmor $ sudo systemctl stop AppArmor
Después de eliminarlo a través del administrador de paquetes de distribución de Linux, reinícielo antes de continuar con la instalación SELinux:
$ sudo apt remove --assume-yes --purge apparmor $ sudo reboot
Para distribuciones basadas en RHEL:
$ sudo dnf makecache $ sudo dnf install policycoreutils libselinux-utils libselinux libselinux-devel selinux-policy selinux-policy-devel
Para distribuciones basadas en Debian:
$ sudo apt update $ sudo apt install policycoreutils selinux-utils selinux-basics libselinux1 libselinux1-dev
Para sistemas openSUSE Leap y Tumbleweed:
$ sudo zypper refresh $ sudo zypper install policycoreutils selinux-tools libselinux-devel libselinux1
Activar SELinux:
$ sudo selinux-activate
poner SELinux al modo permisivo para evitar cosas como «Error al cargar el módulo del kernel” durante el inicio del sistema Debian y ubuntu sistema.
$ sudo nano /etc/selinux/config
Este modo solo imprimirá advertencias.
Reinicie la máquina:
$ sudo reboot
El cambio de marca del sistema debe tener lugar durante el inicio.
Después de que el sistema se reinicie correctamente, verifique SELinux estado:
$ sestatus
Endurecimiento de Nginx con SELinux
defecto, SELinux Etiqueta Nginx (más archivo y puerto) con httpd_t tipo de dominiopodemos decir SELinux para permitir Nginx Se ejecuta en modo permisivo (ilimitado). Sin embargo, Linux registrará todos los errores relacionados con SELinux.
$ semanage permissive -a httpd_t
superior Debian y ubuntuno te «desencadenes»El usuario sddm no está en el archivo de contraseñas» como su advertencia cosmética (menor).
Lo anterior se cumple SELinux La política se aplica no sólo a Nginx pero también php-fpm.
Comprobar si hay violaciones de SELinux
Ejecutaremos el comando:
$ sudo grep nginx /var/log/audit/audit.log | audit2allow -m nginx
No violar la política dará como resultado el siguiente resultado:
De lo contrario, un SELinux Se establecerá la política. La política generada no se puede heredar directamente, ya que solo ayuda a identificar configuraciones incorrectas de Nginx.
SELinux y PHP-FPM
Recuperar usando el siguiente comando PHP-FPM– Errores relacionados:
$ sudo grep -R php-fpm /var/log/audit/audit.log
El paso final para fortalecer su servidor web Nginx es permitir que se ejecute en SELinux modo de ejecución: ‘
$ sudo semanage permissive -d httpd_t
Para documentación extensa SELinuxvea su página man:
$ man selinux
SELinux asegura Nginx Opere con estándares y políticas de seguridad ideales.