El comando semanage es una herramienta que nos permite configurar las políticas de SELinux (Security-Enhanced Linux), está disponible dentro del paquete policycoreutils-python:
# yum info policycoreutils-python Installed Packages Name : policycoreutils-python Arch : i686 Version : 2.0.83 Release : 19.24.el6 Size : 910 k Repo : installed From repo : base Summary : SELinux policy core python utilities URL : http://www.selinuxproject.org License : GPLv2+ Description : The policycoreutils-python package contains the management tools use to manage an SELinux : environment.
En el caso de instalaciones masivas en las que queramos clonar las configuraciones, contextos, booleanos de SELinux, logins, etc de una máquina base, o si simplemente queremos tener una copia de seguridad de todas nuestras configuraciones de una máquina, el parámetro «-o» de semanage nos servirá.
-o, --output Output current customizations as semanage commands
Volcamos entonces la configuración personalizada de SELinux a un fichero:
# semanage -o /root/selinux.configuration
Una vez finalizado vemos que efectivamente el fichero contiene nuestra configuración de booleeanos, contextos, login, etc:
# cat selinux.configuration boolean -D boolean -1 allow_ftpd_anon_write boolean -1 rsync_export_all_ro boolean -1 samba_export_all_rw login -D login -a -s guest_u -r 's0' __default__ user -D port -D interface -D node -D fcontext -D fcontext -a -f 'all files' -t public_content_rw_t '/ftp(/.*)?' fcontext -a -f 'all files' -t samba_share_t '/samba-shares(/.*)?' fcontext -a -f 'all files' -t httpd_sys_content_t '/www(/.*)?'
Nota: los comandos que veis con -D eliminan las personalizaciones locales en la máquina antes de añadir las especificadas en el volcado.
El paso inverso, importar es igual pero con el parámetro «-i» y especificando el fichero del cual extraer las configuraciones. Como habéis podido ver el fichero son los comandos de semanage en orden de ejecución.
# semanage -i /root/selinux.configuration
El procedimiento para exportar e importar las configuraciones de SELinux entre máquinas sería el siguiente:
# semanage -o /root/selinux.configuration # scp /root/selinux.configuration server-destino:/root # ssh server-destino # semanage -i /root/selinux.configuration