Capítulo 5. Control de acceso a los servicios

Asegurar la seguridad en un sistema Red Hat Linux es vital. Una forma de controlar la seguridad en su sistema es manejar con cuidado el acceso a los servicios. Su sistema puede necesitar dar acceso abierto a unos determinados servicios (por ejemplo, httpd si está ejecutando un servidor web). Sin embargo, si no necesita dar un servicio, debería deshabilitar —. Ésto minimizará su exposición a posibles infiltraciones no deseadas.

Hay varios métodos diferentes para controlar el acceso a los servicios del sistema. Necesitará decidir cual de ellos le gustaría usar, basándose en el servicio, en la configuración de su sistema y en su nivel de experiencia con Linux.

La manera más fácil de denegar el acceso a un servicio es simplemente deshabilitarlo. Los servicios controlados por xinetd (de los cuales hablaremos más adelante en esta sección) y la jerarquía de servicios /etc/rc.d pueden ser configurados para comenzar o parar utilizando la utilidad ntsysv o usando el comando chkconfig. Podría encontrar que estas herramientas son más fáciles de usar que las alternativas — modificando numerosos "symbolic links" localizados a mano en /etc/rc.d o modificando los ficheros de configuración xinetd en /etc/xinetd.d.

La utilidad ntsysv proporciona una interfaz simple para activar o desactivar servicios. Puede usar ntsysv para activar o desactivar el servicio xinetd. También puede utilizar ntsysv para comenzar o parar un servicio en la jerarquía /etc/rc.d en este caso , el comando ntsysv (sin opciones) configura su actual nivel de ejecuación (runlevel). Si quiere configurar otro nivel de ejecución diferente, utilice algo como ntsysv -- levels 016. (En este ejemplo, estaría estableciendo los servicios para los niveles de ejecución 0, 1 and 6.)

La interfaz ntsysv trabaja como un programa de instalación en modo texto. Use las flechas para navegar a través de la lista. La barra espaciadora selecciona/anula la selección de servicios y también es usada para pulsar los botones de Ok y Cancel. Para moverse entre la lista de servicios y los botones de Ok y Cancel utilize la tecla Tab key. Un * significa que el servicio está activo. La tecla F1 desplegará una pequeña descripción de cada servicio.

El comandochkconfig también puede utilizarse para activar y desactivar servicios. Si utiliza el comando chkconfig --list, verá una lista con todos los servicios del sistema y si ellos están comenzados (on) o parados (off) en niveles de ejecución (runlevels) 0-6 (al final de la lista, verá una sección para los servicios manejados por xinetd, los cuales discutiremos más tarde en esta sección).

Si utiliza chkconfig --list para consultar los servicios manejados por xinetd, verá si el servicio xinetd está habilitado (on) o deshabillitado (off). Por ejemplo, el siguiente comando muestra que finger está habilitado como un servicio xinetd:

$ chkconfig --list finger
finger          on

Como se muestra arriba, si xinetd está en funcionamiento, finger está habilitado.

Si utiliza chkconfig --list para consultar un servicio en /etc/rc.d, verá la configuración de servicios para cada nivel de ejecución, como se muestra a continuación:

$ /sbin/chkconfig --list anacron
anacron         0:off   1:off   2:on    3:on    4:on    5:on    6:off

chkconfig puede ser usado para lanzar un conjunto de serviciobs (o no) en un nivel de ejecución específico. Por ejemplo, si quisieran deshabilitar nscd en los niveles de ejecución 3, 4, and 5, usarían un comando como este:

chkconfig --level 345 nscd off

Vea en la página del manual de chkconfig para más información acerca de su uso.

AvisoActivando cambios
 

Los cambios no tienen efecto inmediato después de utilizar ntsysv o chkconfig. Debe parar o activar los servicios individualmente con el comando service daemon stop. En el ejemplo anterior, reemplace daemon con el nombre del servicio que quiera parar; por ejemplo, httpd. Reemplace stop con start o restart para iniciar o reiniciar el servicio. Si quiere iniciar o parar un servicio el cual es manejado por xinetd, utilice el comando service xinetd restart.

Para controlar el acceso a los servicio de Internet, puede utilizar xinetd , una alternativa segura para inetd. El demonio xinetd conserva los recursos del sistema, proporcionando control de acceso y autentificación y puede ser utilizado para iniciar servidores de propósito específico. xinetd puede ser usado para acceder o proporcionar acceso solamente a determinados host, denegar acceso a un host concreto, proporcionar acceso a un servicio a determinadas horas, limitar la tasa de conexiones entrantes y/o la carga creada por las conexiones, etc.

xinetd se ejecuta de forma constante y escucha en todos los puertos de los servicios que gestiona. Cuando llega una petición para uno de los servicios que el controla, xinetd lanza el servidor apropiado para ese servicio .

El fichero de configuración para xinetd es /etc/xinetd.conf, pero se dará cuenta ens seguida que este fichero sólo contiene unos pocos valores por defecto y una instrucción para incluir el directorio /etc/xinetd.d. Para habilitar o deshabilitar un servicio xinetd edite su fichero de configuración en el directorio /etc/xinetd.d. Si el atributo disable está puesto en yes, el servicio está deshabilitado. Si el atributo disable está puesto en no, el servicio está habilitado. Si modifica cualquiera de los ficheros de configuración de xinetd o cambia su estdo de disponibilidad usando ntsysv o chkconfig, deberá reiniciar xinetd con el comando service xinetd restart antes de que los cambios surtan efecto.

Muchos administradores de sistemas UNIX están acostumbrados a usar TCP wrappers para controlar el acceso a ciertos servicios de la red. Cualquier servicio de red manejado por xinetd (así como cualquier programa con soporte para libwrap) puede utilizar un TCP wrappers para controlar el acceso. xinetd puede usar los ficheros /etc/hosts.allow y /etc/hosts.deny para configurar el acceso a los servicios del sistema. Si desea utilizar TCP wrappers, vea la página del manual "hosts_access (5)" para más información detallada.

Otra manera de controlar el acceso a los servicios del sistema es usar ipchains para configurar un firewall IP. Si es un nuevo usuario de Linux tenga en cuenta que ipchains podría no ser la mejor solución. Configurar ipchains puede ser complicado y es una tarea destinada a un administrador de sistemas UNIX/Linux con experiencia.

Por otro lado, el beneficio de utilizar ipchains es la flexibilidad. Por ejemplo, si necesita personalizar una solución que proporcione acceso a ciertos hosts de ciertos servicios , ipchains puede valerle. Vea el Linux IPCHAINS-HOWTO en http://www.linuxdoc.org/HOWTO/IPCHAINS-HOWTO.html para más información sobre ipchains. El Linux IPCHAINS-HOWTO está tambien disponible en la documentación del CD.

Como alternativa, si está buscando una herramienta que le permita establecer reglas de acceso para su máquina, y/o si es novato en Linux, debería intentar la utilidad gnome-lokkit. gnome-lokkit es una utilidad GUI que pregunta el modo en que quiere usar su máquina. gnome-lokkit le configurará un firewall simple basándose en la información que usted ha proporcionado.

Recursos adicionales

Para más información sobre xinetd, consulte los siguientes recursos.

Documentación de instalación

  • man xinetd — La página del manual de xinetd.

  • man xinetd.conf — La página del manual para el archivo de configuración xinetd.conf.

Sitios Web de interés

  • http://www.xinetd.org — La página Web dexinetd. Contiene más detalles sobre sus características y ficheros de ejemplos de configuraciones..