Mostrando entradas con la etiqueta xinetd. Mostrar todas las entradas
Mostrando entradas con la etiqueta xinetd. Mostrar todas las entradas

martes, 11 de marzo de 2008

Utilizando xinetd para levantar el túnel SSL 'on demand'

Como vimos en la entrada anterior, una de las opciones para evitarnos crear el túnel SSL a mano cada vez que queremos arrancar KNode es utilizar xinetd para que escuche el puerto local al que se conecta KNode, y cuando detecta una conexión entrante (proveniente de KNode) forkee un stunnel para atenderla.

Para hacer esto, creamos el archivo /etc/xinet.d/knode-ssl con el siguiente contenido:

# Begin /etc/xinetd.d/knode-ssl
# default: on
# SSL Tunnel para KNode

service knode-ssl
{
    port = PUERTO_LOCAL
    socket_type = stream
    protocol = tcp
    wait = no
    disable = no
    user = root
    only_from = 127.0.0.1
    server = /usr/bin/stunnel
    server_args = -c -r HOST_REMOTO:PUERTO_REMOTO
}

# End /etc/xinetd.d/knode-ssl



Con esto indicamos a xinetd el proceso a forkear (y los parámetros) para atender la conexión entrante, que queremos que en principio sólo sea originada en la propia PC. Vale notar que a diferencia que con la ejecución manual del túnel, no se utiliza el parámetro -d PUERTO_LOCAL dado que la conexión ya fue aceptada por xinetd, y cuando stunnel se ejecute pasará directamente a atenderla.

Luego debemos agregar la siguiente línea al final de /etc/services, especificando el mapeo entre el identificador utilizado en la configuración de xinetd y el puerto y tipo de protocolo del servicio de internet a configurar:

knode-ssl LOCAL_PORT/tcp



Por último le enviamos una señal a xinetd para que recargue el archivo de configuración mediante:

sudo killall -HUP xinetd



Cualquier salida de error que esto pueda provocar (por ejemplo por un mal formato del archivo knode-ssl) se puede ver en /var/log/syslog.

De esta manera es suficiente con ejecutar KNode para lograr una conexión SSL con el servidor de noticias utilizado.

Salú!