9.3. Despliegue de un servidor Tang con SELinux en modo reforzado
Utilice este procedimiento para desplegar un servidor Tang que se ejecuta en un puerto personalizado como un servicio confinado en el modo de aplicación de SELinux.
Requisitos previos
-
El paquete
policycoreutils-python-utils
y sus dependencias están instalados.
Procedimiento
Para instalar el paquete
tang
y sus dependencias, introduzca el siguiente comando comoroot
:# yum install tang
Elija un puerto desocupado, por ejemplo, 7500/tcp, y permita que el servicio
tangd
se vincule a ese puerto:# semanage port -a -t tangd_port_t -p tcp 7500
Tenga en cuenta que un puerto sólo puede ser utilizado por un servicio a la vez, por lo que un intento de utilizar un puerto ya ocupado implica el mensaje de error
ValueError: Port already defined
.Abre el puerto en el firewall:
# firewall-cmd --add-port=7500/tcp # firewall-cmd --runtime-to-permanent
Habilite el servicio
tangd
:# systemctl enable tangd.socket
Crear un archivo de anulación:
# systemctl edit tangd.socket
En la siguiente pantalla del editor, que abre un archivo
override.conf
vacío situado en el directorio/etc/systemd/system/tangd.socket.d/
, cambie el puerto por defecto del servidor Tang de 80 al número elegido anteriormente añadiendo las siguientes líneas:[Socket] ListenStream= ListenStream=7500
Guarde el archivo y salga del editor.
Recarga la configuración modificada:
# systemctl daemon-reload
Comprueba que tu configuración funciona:
# systemctl show tangd.socket -p Listen Listen=[::]:7500 (Stream)
Inicie el servicio
tangd
:# systemctl start tangd.socket
Dado que
tangd
utiliza el mecanismo de activación de socketssystemd
, el servidor se inicia en cuanto llega la primera conexión. En el primer arranque se genera automáticamente un nuevo juego de claves criptográficas. Para realizar operaciones criptográficas como la generación manual de claves, utilice la utilidadjose
.
Recursos adicionales
-
tang(8)
página de manual -
semanage(8)
página de manual -
firewall-cmd(1)
página de manual -
systemd.unit(5)
ysystemd.socket(5)
páginas man -
jose(1)
página de manual