¿Qué puede salir mal si deshabilitamos selinux [cerrado]


9

Heredamos un grupo de servidores usados ​​de otro equipo. Algunos de ellos tienen SELinux habilitado en él, otros no. Debido a SELinux, estamos teniendo problemas para configurar ssh sin contraseña, nuestro servidor web, etc. Encontramos una solución en este sitio de stackexchange , que es ejecutar:

restorecon -R -v ~/.ssh

Sin embargo, dado que no necesitamos que SELinux se ejecute para lo que hacemos, podría ser más fácil desactivarlo que recordar que todos ejecuten el cmd anterior en cualquier directorio que necesite permisos.

¿Podemos desactivar SELinux sin ninguna repercusión en el futuro o es mejor volver a crear una imagen del servidor? Una cosa a tener en cuenta; nuestro grupo de TI está muy ocupado, por lo que volver a crear imágenes de un servidor no es una prioridad en su lista a menos que sea absolutamente necesario (necesita un buen caso de negocios) ... o alguien soborna a su jefe con una botella de whisky o whisky.

ACTUALIZACIÓN: Gracias por las sugerencias y consejos de todos. Todos estos servidores se utilizarán como servidores de desarrollo internos. No habrá acceso externo a estas máquinas, por lo que la seguridad no es una gran preocupación para nosotros. Nuestros servidores actuales que estamos usando todos (que yo sepa) no tienen habilitado SELinux. Algunas de las que mi gerente acaba de adquirir son las que buscamos desactivar, por lo que todo en nuestro clúster es uniforme.


1
Respondí una pregunta similar en Android.se: ¿Qué tan peligroso es el hecho de que SELinux está en modo "Permisivo"? ¿De qué debo tener cuidado? . La principal diferencia entre el modo "Permisivo" y la desactivación de SELinux es que ya no recibirá mensajes de registro AVC y que SELinux no mantendrá la etiqueta de los archivos actualizada, por lo que deberá volver a etiquetar sus archivos antes de habilitarlo nuevamente.
WhiteWinterWolf

"¿Qué podría salir mal?"
scai

3
@scai Esa es realmente una buena pregunta. Como señala Sato Katsura , SELinux es difícil de usar de manera efectiva. Una falsa sensación de seguridad es perjudicial para la seguridad.
Rimo el

Respuestas:


14

SELinux es una característica de seguridad del sistema operativo. Está diseñado para ayudar a proteger algunas partes del servidor de otras partes.

Por ejemplo, si ejecuta un servidor web y tiene un código "vulnerable" que permite que un atacante ejecute comandos arbitrarios, SELinux puede ayudar a mitigar esto, evitando que su servidor web acceda a archivos que no está permitido ver.

Ahora puede deshabilitar SELinux y no debería romper nada. El servidor seguirá funcionando normalmente.

Pero habrá deshabilitado una de las características de seguridad.


10
SELinux funciona bien solo cuando está configurado correctamente. Sin embargo, SELinux es tan complicado que nadie tiene el tiempo y / o el conocimiento para configurarlo correctamente, y por lo tanto termina deshabilitado o como un dolor perpetuo en la parte posterior para el administrador. Sin embargo, ustedes siguen invirtiendo en ella como una característica de seguridad .
Satō Katsura el

3
Estoy de acuerdo en que selinux es un PITA para administrar, pero aún así es justo y completamente preciso llamarlo una característica de seguridad. Para aquellos que quieren o necesitan invertir el tiempo en aprender y administrarlo (no yo), es invaluable, por ejemplo, los administradores de sistemas para un sitio web grande y de alto perfil, también conocido como un objetivo atractivo para los niños de guiones de todo el mundo.
cas

2
@SatoKatsura Simplemente porque es difícil de configurar o difícil de entender no justifica la desactivación de un mecanismo de seguridad. Siempre que este mecanismo de seguridad sea realmente necesario, lo que no siempre es fácil de decidir.
scai

@scai No dije que debería (o no debería) estar deshabilitado. Lo que digo es que el modelo subyacente de SELinux es defectuoso. Algunas personas argumentan que todos los mecanismos de seguridad que pueden desactivarse son defectuosos.
Satō Katsura el

@SatoKatsura sí, es por eso que tener contraseñas es completamente inútil porque pueden desactivarse (por ejemplo, con pam o nss o simplemente con una contraseña en blanco). Por cierto, nunca dije que dijiste que selinux debería estar deshabilitado. Estaba cuestionando su afirmación de que no es una característica de seguridad real.
cas

8

Hay diferentes puntos de vista de SELinux. En muchos casos, algunas aplicaciones no funcionan bien con SELinux, por lo que esta decisión es discutible (Oracle es un ejemplo).
En general, SELinux es un mecanismo de protección para poner otro obstáculo en el camino de un malo que quiere subvertir su sistema.

En mis roles anteriores como administrador de sistemas en grandes empresas ... en general, he desactivado SELinux. No tuve tiempo de rastrear todos los errores de SELinux en todos los sistemas que usan los usuarios, desarrolladores y gerentes.

Antes de deshabilitar las cosas, es posible que desee comenzar volviendo a etiquetar los archivos del sistema de nuevo a lo que deberían ser. El método más fácil que he encontrado es ingresar el comando:

 # /sbin/fixfiles onboot

O

 # touch /.autorelabel

Luego, reinicie y espere, ya que el sistema tardará aproximadamente la misma cantidad de tiempo en verificar y restablecer las etiquetas SELinux errantes en el sistema. Después de eso, puede estar bien, ya que corrige y corrige las etiquetas SELinux no conformes que pueden haber sido modificadas antes de intentar la administración del servidor.

Sin embargo, si no lo hace, el sistema no se verá perjudicado por NO tener SELinux en modo obligatorio. Es solo una capa extra de protección.


3
discutible, no mudo. Pero perfectamente correcto; No todos los sistemas necesitan selinux.
phyrfox

+1 por aconsejar que intente volver a etiquetar globalmente los archivos antes de deshabilitar SELinux como alternativa. SELinux está destinado a prevenir el software inesperado y el comportamiento de los usuarios. En sistemas donde no hay un comportamiento esperado bien definido, SELinux puede causar más daño que bien (las políticas proporcionadas por el sistema operativo intentan ser lo más generales posible, pero a veces esto no es suficiente).
WhiteWinterWolf

¡Gracias! /sbin/fixfiles onboottrabajó para mí en CentOS, no es así con touch /.autorelabel. La ejecución sealert -a /var/log/audit/audit.logmuestra 0 alertas ahora. @mdpc ¿Cuál es la diferencia entre esos dos comandos?
Joseph K.

5

En pocas palabras, deshabilitar los mecanismos de control de acceso obligatorio (MAC) como SELinux no es una buena idea y puede ponerlo en una desventaja de seguridad si un tipo malo evade con éxito los controles de acceso basados ​​en nombres, implementados por el Control de acceso discrecional (DAC).

Si fuera yo, haría algo como

semanage fcontext -a -t ssh_home_t ~/.ssh # Adding the policy
restorecon -R -v ~/.ssh # Applying the policy

para estar más seguro acerca de la etiqueta de tipo asignada recursivamente de~/.ssh


1
Está estilizado "SELinux". Linux no es un acrónimo, y la parte "SE" es un inicialismo.
Rhymoid

@Rhymoid: Esa es una buena nota de hecho ... De hecho, lo que escribí fue accidental.
sjsam

2

En términos generales, no debe deshabilitar SELinux. Existen herramientas que pueden ayudarlo a comprender qué salió mal. Mi favorito es el uso de ejemplo de Sealert:

sealert -a /var/log/audit/audit.log

OFC siempre puede configurar SELinux en modo permisivo para la depuración, pero mantener Red SEL deshabilitado o permisivo se enseña como un serio defecto de seguridad.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.