Google
Web dns.bdat.net

7.2 Servicios del sistema y tcp_wrappers

Tan pronto como ponga su sistema en cualquier red, lo primero que tiene que mirar es qué servicios necesita ofrecer. Los servicios que no necesita ofrecer los debe desactivar para tener menos cosas de las que preocuparse por un ataque y tener un sitio menos para situar un agujero.

Hay varias formas de desactivar servicios bajo Linux. Puede mirar en su fichero /etc/inetd.conf y ver qué servicios están siendo ofrecidos por su inetd. Desactivando los que no necesite comentándolos (# al principio de la línea), y después enviar a su proceso inetd una SIGHUP.

También puede eliminar (o comentar) servicios en su fichero /etc/services. Esto significa que los clientes locales tampoco podrán encontrar el servicio si elimina ftp e intenta hacer un ftp a un sitio remoto de su máquina, fallará con un mensaje de servicio desconocido). Es normal no preocuparse de eliminar servicios ya que esto no proporciona ninguna seguridad adicional. Si una persona local quiere usar ftp, incluso aunque haya comentado, el haría su propio cliente que usa el puerto ftp común y funcionaría bien.

Algunos servicios que querrá dejar activos son:

Si sabe que no va a utilizar algún paquete en particular, puede borrarlo entero, con rpm -e con la distribución Red Hat borrará el paquete entero. Bajo debian dpkg probablemente hace lo mismo.

Además, quiere desactivar la utilidades rsh/rlogin/rcp, incluyendo login (usado por rlogin), shell (usado por rcp), y exec (usado por rsh) para que no sean iniciados en /etc/inetd.conf. Estos protocolos son extremadamente inseguros ya han sido causa de exploits en el pasado.

Debería comprobar sus /etc/rc.d/rcN.d, donde N es su nivel de ejecución del sistema (systems run level) y ver si alguno de los servidores iniciados en esos directorios no son necesarios. Los ficheros de /etc/rc.d/rcN.d actualmente son enlaces simbólicos al directorio /etc/rc.d/init.d. Renombrar el fichero en el directorio init.d tiene el efecto de desactivar todos los enlaces simbólícos que hay en /etc/rc.d/rcN.d. Si sólo desea desactivar un servicio para un determinado nivel de ejecución, renombre el fichero adecuado con una 's' minúscula en lugar de la 'S' mayúscula como la de S45dhcpd.

Si tiene los ficheros rc con el estilo BSD, tendrá que verificar /etc/rc* para los programas que no necesita.

La mayoría de las distribuciones Linux vienen con tcp_wrappers que "cubren" todos sus servicios tcp. Un tcp_wrapper (tcpd) se llama desde inetd en lugar del servidor real. Tcpd comprueba entonces el host que solicita el servicio y bien ejecuta el servidor real o deniega el acceso de ese host. Tcpd permite restringir el acceso a sus servicios tcp. Debería crear un fichero /etc/hosts.allow y añadirle sólo aquellos host que necesitan tener acceso a los servicios de su máquina.

Si es un usuario de línea telefónica en casa, le sugerimos que deniegue todo (ALL). tcpd también registra los intentos fallidos de acceder a un servicio, y así se puede hacer una idea de que está siendo atacado. Si añade nuevos servicios, debería estar seguro de configurarlos para usar tcp_wrappers. Por ejemplo, un usuario normal de conexión telefónica puede prevenirse de la conexiona a su máquina del exterior, y tener la posibilidad de recuperar correo y efectuar conexiones de red a internet. Para hacer esto podría añadir lo siguiente a su /etc/hosts.allow:

ALL: 127.

Y desde luego /etc/hosts.deny contendría:

ALL: ALL

lo que previene de conexiones externas a su máquina, y todavía le permite conectar a servidores de internet desde el interior.