Instalar xinetd

TÍTULO:			Instalar xinetd
VERSIÓN LFS:	Cualquiera
AUTOR:			Peter Hall <peter.hall@hgus.gu.se>
TRADUCTOR:	Proyecto LFS-ES

SINOPSIS:       Cómo instalar el demonio de los servicios de Internet, xinetd


RECETA:
v1.2

Introducción a xinetd
---------------------

Lugar de descarga			http://www.xinetd.org/pub/xinetd
Versión utilizada			2.3.3
Tamaño del paquete			268k
Espacio en disco necesario estimado	1.3M

xinetd es un demonio para los servicios de Internet. En lugar de tener muchos
servidores distintos corriendo a la vez, sólo se carga xinetd... En el momento
en que se hace una petición de servicio, xinetd lanza el servidor
correspondiente. Lo hace de forma más segura que su precursor inetd.


Instalación de xinetd
---------------------

Instala xinetd ejecutando las órdenes siguientes:

./configure --prefix=/usr &&
make &&
make install


Configurar xinetd
-----------------

Ficheros de configuración

/etc/xinetd.conf

Crea el fichero xinetd.conf ejecutando:


cat > /etc/xinetd.conf << "EOF"
# Principio de /etc/xinetd.conf

# Las opciones de configuración por defecto que se aplican a todos los 
# servidores pueden modificarse para cada servicio 

defaults
{
    instances      = 10
    log_type       = FILE /var/log/service.log 
    log_on_success = HOST PID
    log_on_failure = HOST RECORD
}

# El nombre del servicio debe encontrarse en /etc/services para obtener
# el puerto correcto
# Si se trata de un servidor/puerto no estándar, usa "port = X"
service ftp
{
    socket_type    = stream
    protocol       = tcp
    wait           = no
    user           = root
    server         = /usr/sbin/proftpd
    
}

#service telnet
#{
#    socket_type    = stream
#    protocol       = tcp
#    wait           = no
#    user           = root
#    no_access      = 0.0.0.0 
#    only_from      = 127.0.0.1
#    banner_fail    = /etc/telnet_fail 
#    server         = /usr/sbin/in.telnetd
#}

service ssh
{
    socket_type    = stream
    protocol       = tcp
    wait           = no
    user           = root
    port           = 22
    server         = /usr/sbin/sshd
    server_args    = -i
}

service http
{
    socket_type    = stream
    protocol       = tcp
    wait           = no
    user           = root
    server         = /usr/local/apache/bin/httpd
}

#service finger
#{
#    socket_type    = stream
#    protocol       = tcp
#    wait           = no
#    user           = root
#    no_access      = 0.0.0.0
#    only_from      = 127.0.0.1
#    banner_fail    = /etc/finger_fail
#    server         = /usr/sbin/in.fingerd
#    server_args    = -l
#}

# Fin de /etc/xinetd.conf
EOF

---

Información sobre la configuración
----------------------------------

Date cuenta, por favor, de que esto es tan sólo un ejemplo de una
posible configuración y CASI CON TOTAL CERTEZA vas a tener que 
modificarlo para que se ajuste a tus necesidades.
De todos modos, yo sólo tengo sshd en mi sistema y la configuración
que se incluye me sirve. xinetd afirma en /var/log/daemon.log que hay
servidores que faltan, pero arranca a pesar de todo.


Configurar los demonios que utiliza xinetd
------------------------------------------

Antes de que puedas comprobar si funciona xinetd, debes hacer algo
más, asegurarte de que los demonios que vayas a emplear los lanza
(x)inetd y no están corriendo por sí mismos. 

En el caso de sshd se logra pasándole un parámetro adicional.
"server_args = -i" le indica al demonio SSH que debe ejecutarse 
en modo inetd.

Apache, Proftpd y muchos otros probablemente, gestionan este punto
desde su fichero de configuración. Busca la línea /etc/httpd.conf 
y/o /etc/proftpd.conf que dicen:

"ServerType standalone"

y cambia "standalone" por "inetd"

Ejecuta a continuación xinetd como root y asegúrate de que funciona.


Lanzar xinetd en el arranque
----------------------------

Crea el fichero /etc/rc.d/init.d/xinetd haciendo:

cat > /etc/rc.d/init.d/xinetd << "EOF"
#!/bin/sh
# Principio de /etc/rc.d/init.d/xinetd

#
# Incluye las funciones que se declaran en el fichero 
# /etc/init.d/functions 
#

source /etc/rc.d/init.d/functions

case "$1" in
        start)
                echo -n "Loading xinet super daemon"
                loadproc /usr/sbin/xinetd
                ;;

        stop)
                echo -n "Stopping xinet super daemon"
                killproc /usr/sbin/xinetd
                ;;

        restart)
                $0 stop
                /usr/bin/sleep 1
                $0 start
                ;;

        status)
                statusproc /usr/sbin/xinetd
                ;;

        *)
                echo "Usage: $0 {start|stop|reload|restart|status}"
                exit 1
        ;;

esac

# Fin de /etc/init.d/xinitd
EOF

---

Haz el guión (script) ejecutable y crea los enlaces simbólicos precisos
ejecutando:

chmod 755 /etc/rc.d/init.d/xinetd &&
ln -s /etc/rc.d/init.d/xinetd /etc/rc.d/rc1.d/K110xinetd &&
ln -s /etc/rc.d/init.d/xinetd /etc/rc.d/rc2.d/K110xinetd &&
ln -s /etc/rc.d/init.d/xinetd /etc/rc.d/rc3.d/S30xinetd &&
ln -s /etc/rc.d/init.d/xinetd /etc/rc.d/rc4.d/S30xinetd &&
ln -s /etc/rc.d/init.d/xinetd /etc/rc.d/rc5.d/S30xinetd &&
ln -s /etc/rc.d/init.d/xinetd /etc/rc.d/rc6.d/K110xinetd


Contenido
---------

El paquete xinetd contiene xinetd e itox

xinetd
------

xinetd es un superdemonio, análogo a inetd

itox
----

itox convierte ficheros de configuración desde el formato de inetd.conf al
de xinetd.conf


Envía suguerencias por correo a peter.hall@hgus.gu.se