10.4.- Configurar xinetd

xinetd es un súper servidor ampliado. Proporciona lo funcionalidad de inetd y opciones de seguridad similares a las de TCP Wrappers. Muchas distribuciones utilizan xinetd por defecto, sino podemos reemplazar inetd por xinetd en cualquier distribución.

Detalles de configuración de xinetd

El fichero /etc/xinetd.conf controla xinetd. Las distribuciones que utilizan por defecto xinetd sólo contienen por defecto opciones globales y una directiva para incluir los ficheros de /etc/xinetd.d/ en el fichero xinetd.conf. Cada servidor que ejecute xinetd instalará un fichero en /etc/xinetd.d con sus propias opciones de configuración.

Independientemente de que el servidor se incluya en cualquiera de las dos ubicaciones, la información guardada es similar a la del fichero inetd.conf. Sin embargo, el fichero de configuración de xinetd abarca varias líneas con un etiquetado más explícito. A continuación se muestra un ejemplo equivalente a la entrada de inetd.conf que vimos anteriormente. En la entrada hay exactamente la misma información que en inetd.conf, excepto porque no se incluye una referencia a /usr/bin/tcpd (TCP Wrappers), ya que xinetd incluye una función similar a tcpd.

xinetd_1

 Si incluimos la línea disable = yes en una definición de servicio, xinetd ignorará la entrada. Hay servidores que instalan ficheros de inicio en /etc/xinetd.d/, que tiene desactivada esta opción por defecto, por lo que deberemos indicarle disable = no para activar el servidor. Podemos desactivar un conjunto de servidores listando sus nombres en la sección defaults de xinetd.conf con una línea llamada disabled, como en disabled = ftp shell.

Tras realizar los cambios en la configuración, deberemos reiniciar el súper servidor xinetd de manera similar a como reiniciamos inetd. Podemos emplear reload o restart:

xinetd_2

También podemos pasarle la señal SIGHUP a través de los comandos kill o killall para hacer que xinetd recargue su fichero de configuración, suele ser el método más adecuado para distribuciones como slackware que no emplea el script de inicio SysV convencional para iniciar xinetd.

Controlar el acceso mediante xinetd

La seguridad se controla a nivel de servidor utilizando los parámetros de configuración de /etc/xinetd.conf o los ficheros de configuración específicos de cada servidor. Algunas de estas opciones son similares a la función de hosts.allow y hosts.deny:

  • Interfaz de red: la opción bind le indica a xinetd que sólo debe escuchar en busca del servicio en una interfaz de red. Por ejemplo, bind = 192.168.23.7 hace que sólo se escuche en la tarjeta de red asociada con dicha dirección. Esta característica es extremadamente útil para los routers, así como para asociar un servidor sólo a la interfaz de circuito cerrado 127.0.0.1 si algún servidor sólo está disponible localmente. Podemos hacer esto con una herramienta de configuración como la herramienta de administración web de SAMBAswat. Esta opción posee un sinónimo: interface.
  • Direcciones IP o de red permitidas: la opción only_from permite especificar direcciones IP, redes o nombres de ordenador separados por espacios. xinetd sólo aceptará conexiones de estas direcciones, es similar a las entradas hosts.allow  de TCP Wrappers.
  • Direcciones IP o de red no permitidas: la opción no_access permite indicar los ordenadores o redes que deseemos incluir en nuestra lista negra. Es similar a hosts.deny de TCP Wrappers.
  • Tiempos de acceso: la opción access_times define las horas durante las que los usuarios pueden acceder al servidor. El formato es hora:min-hora:min, utilizando un reloj de 24 horas. Esta opción sólo afecta a las horas durante las que el servidor responderá. Por ejemplo, si access_times está definido como 8:00-17:00 y alguien accede a las 16:59, dicho usuario podrá seguir utilizando el sistema más allá de las 17:00, la hora de corte.

Estas opciones se deben incluir en los ficheros de /etc/xinetd.d, que correspondan a los servidores que queramos proteger. Colocaremos las líneas entre el corchete de apertura y cierre ( { } ) del servicio. Si queremos restringir todos los servidores controlados por xinetd colocaremos las entradas en la sección defaults de /etc/xinetd.conf. Algunos servidores proporcionan mecanismos de control de acceso similares a TCP Wrappers o xinetd. Por ejemplo, pueden proporcionar opciones hosts allow y hosts deny que funcionan de manera similar a las entradas de TCP Wrappers, suelen ser las opciones más comunes en los servidores delicados o imposibles de ejecutar a través de inetd o xinetd.

Configurar un cortafuegos

Un cortafuegos restringe el acceso a otros ordenadores o programas que se ejecutan en un ordenador y protegen sólo a éste. Existen dos tipos de cortafuegos: cortafuegos de filtrado de paquetes, que bloquean o permiten el acceso en base al información de los paquetes de datos individuales, y los filtros proxy, que procesan parcialmente una transacción y bloquean o permiten el acceso en base a las características de alto nivel de esta transacción.

En Linux, el kernel incluye un cortafuegos de filtrado de paquetes que se puede programar a través del programa iptables, escribiendo iptables seguido de varias opciones que definen restricciones específicas. Para crear un cortafuegos eficaz debemos conocer iptables en detalle y escribir un script que llame repetidamente a este programa para definir las reglas.

Hay distribuciones que ponen las cosas más fáciles proporcionando un script genérico que podemos configurar utilizando una herramienta GUI, se suele diseñar para proteger a un único ordenador de accesos externos no deseados. Linux también puede comportarse como un cortafuegos para una red entera, no obstante, este tipo de configuración requiere un conocimiento a fondo de iptables, además de saber cómo configurar Linux como un router.

Anuncios