Escucho mucho sobre Aparmor, quiero saber lo siguiente:
- ¿Qué es el apparmor?
- ¿Cómo funciona el apparmor?
Apparmor es un sistema de control de acceso obligatorio (o MAC). Utiliza mejoras del kernel LSM para restringir los programas a ciertos recursos. AppArmor hace esto con los perfiles cargados en el kernel cuando se inicia el sistema. Apparmor tiene dos tipos de modos de perfil, aplicación y queja. Los perfiles en modo de aplicación hacen cumplir las reglas de ese perfil e informan intentos de violación en syslog
o auditd
. Los perfiles en modo de queja no aplican ninguna regla de perfil, solo registran los intentos de violación.
En Ubuntu, Apparmor está instalado por defecto. Limita las aplicaciones a los perfiles para determinar a qué archivos y permisos debe acceder un programa. Algunas aplicaciones vendrán con sus propias propiedades y se pueden encontrar más en el apparmor-profiles
paquete.
Puede instalar apparmor-profiles
ejecutando sudo apt-get install apparmor-profiles
.
Encontré un buen ejemplo de Apparmor en los foros de Ubuntu que reescribí para esta publicación.
Apparmor es un marco de seguridad que evita que las aplicaciones se vuelvan malvadas. Por ejemplo: si ejecuto Firefox y visito un sitio malo que intenta instalar malware que eliminará mi
home
carpeta, Apparmor tiene límites en Firefox, pero evita que haga algo que no quiero (como acceder a mi música, documentos, etc.). De esta manera, incluso si su aplicación se ve comprometida, no se puede hacer daño.
El apparmor-utils
paquete contiene herramientas de línea de comandos para configurar Apparmor. Utilizándolo, puede cambiar el modo de ejecución de Apparmor, encontrar el estado de un perfil, crear nuevos perfiles, etc.
Estos son los comandos más comunes:
Nota: los perfiles se almacenan en/etc/apparmor.d/
sudo apparmor_status
. Obtendrá una lista de todos los perfiles * cargados, todos los perfiles en modo de cumplimiento, todos los perfiles en modo de reclamo, qué procesos se definen en cumplimiento / reclamo, etc. sudo aa-complain /path/to/bin
, ¿dónde /path/to/bin
está la bin
carpeta de programas ? Por ejemplo, ejecutar: sudo aa-complain /usr/bin/firefox
pondrá a Firefox en modo de queja.sudo aa-enforce /path/to/bin
para imponer un perfil de programas. sudo aa-complain /etc/apparmor.d/*
y sudo aa-enforce.d/*
respectivamente. Para cargar un perfil en el núcleo que usaría apparmor_parser
. Puede volver a cargar perfiles utilizando el -r
parámetro
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
que imprime efectivamente el contenido de profile.name
en el analizador de Apparmor.-r
parámetro, así:cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
sudo service apparmor reload
Para desactivar un perfil que vincula al /etc/apparmor.d/disable/
uso de ln
la siguiente manera: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/
a continuación, ejecute: sudo apparmor_parser -R /etc/apparmor.d/profile.name
.
Nota: ¡No confundaapparmor_parser -r
conapparmor_parser -R
ELLOS NO SON LO MISMO!
/etc/apparmor.d/disable/
y cárguelo usando el -a
parámetrosudo rm /etc/apparmor.d/disable/profile.name
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
sudo service apparmor stop
y eliminar el módulo del kernel usandosudo update-rc.d -f apparmor defaults
sudo service apparmor start
y cargue los módulos del núcleo consudo update-rc.d apparmor defaults
Los perfiles se almacenan en /etc/apparmor.d/
y se nombran después de la ruta completa al ejecutable que perfilan, reemplazando '/' con '.'. Por ejemplo, /etc/apparmor.d/bin.ping
es el perfil de ping
in /bin
.
Hay dos tipos principales de entradas utilizadas en los perfiles:
Las entradas de ruta determinan a qué archivos puede acceder una aplicación.
Las entradas de capacidad determinan qué privilegios puede usar un proceso.
Veamos el perfil para ping
, ubicado en etc/apparmor.d/bin.ping
, como un ejemplo.
#include <tunables/global>
/bin/ping flags=(complain) {
#include <abstractions/base>
#include <abstractions/consoles>
#include <abstractions/nameservice>
capability net_raw,
capability setuid,
network inet raw,
/bin/ping mixr,
/etc/modules.conf r,
}
#include <tunables/global>
Incluye el archivo global
en el directorio tunables
, esto permite que las declaraciones pertenecientes a múltiples aplicaciones se coloquen en un archivo común.
/bin/ping flags=(complain)
establece la ruta al programa perfilado y establece el modo para quejarse.
capability net_raw
permite que la aplicación acceda a la CAP_NET_RAW Posix.1e
capacidad.
/bin/ping mixr
permite que la aplicación lea y ejecute el acceso al archivo.
/etc/modules.conf r,
Le r
da a la aplicación privilegios de lectura para/etc/modules.conf
Nota: Después de crear / editar un perfil, debe volver a cargar el perfil para que los cambios surtan efecto.
Aquí hay una lista de permisos que puede usar:
r
- leer w
- escribir ux
- Ejecución sin restricciones Ux
- Ejecución sin restricciones - fregar el entorno px
- Ejecución discreta del perfil Px
- Ejecución discreta del perfil - friegue el ambiente ix
- Heredar ejecutar m
- permitir PROT_EXEC
con mmap(2)
llamadas l
- enlace
Tengo algunos enlaces más útiles para usted: Wiki.Ubuntu.com Ubuntuforums.org
Guías de Apparmor para Ubuntu 12.04 y Ubuntu 12.10
Espero que te ayude.
fuente
Aquí hay una cita del wiki de Apparmor :
fuente