Guía de seguridad en una estación Linux
Intentaremos dar una breve guia de cómo configurar, de forma más o menos segura, una máquina linux conectada a la red. No es una guía exhaustiva porque ésta dependería de la distribución linux que se usara y de los servicios que tendría que ofrecer. Pretende ser más una orientación que cada uno deberá adecuar a su entorno particular.
Revisión de serviciosLo primero que tenemos que hacer es decidir qué servicios queremos dar con nuestra máquina. En esta guía trataremos de la configuración de una máquina que sirva como estación de trabajo, con pocos servicios y de acceso restringido. Cómo se ven los servicios activosPara ver los servicios que ofrece nuestra máquina se puede usar el comando netstat. Por ejemplo:
En un sistema Linux con una instalación por defecto, esta lista será mucho más larga. Nuestro objetivo es hacerla lo más pequeña posible, pero de forma que cubra nuestras necesidades. Los servicios más comunes suelen tener asociado un nombre, que aparece en la columna etiquetada como "Local Address". En el caso de que el servicio no tenga asociado un nombre, en esta columna aparecerá el número de puerto en el que el servidor se encuentra a la escucha. En este ejemplo aparece un servicio en el puerto 6000, que corresponde al servidor de X. Durante la instalación del sistema operativo se puede seleccionar qué servidores deseamos instalar en nuestra máquina. Algunos de ellos se arrancan en el momento del botado, mientras que otros son ejecutados bajo demanda, es decir, el proceso sólo se ejecuta cuando se establece una petición de servicio. Servicios de arranque directoEl mismo programa de instalación pregunta qué servicios se desea arrancar durante el botado de la máquina. Entre estos servicios se encuentran: Servicio de impresión: si quieres utilizar una impresora desde tu estación tendrás que dejar este servicio activo. bootparamd Cómo eliminar estos servicios:
Servicios de arranque bajo demandaLos servicios de arranque bajo demanda aparecen listados en el fichero /etc/inetd.conf (en las nuevas versiones de Linux estos servicios son administrados por el nuevo demonio xinetd). La primera columna del fichero indica el nombre del servicio. Las líneas que comienzan por "#" se consideran comentarios y son ignoradas.
Cómo eliminar estos servicios:
Servicios bajo RPCSi has quitado NFS, probablemente puedas quitar también el servicio portmap, también conocido como rpcbind. Para ver qué servicios RPC ofrece actualmente tu máquina ejecuta el siguiente comando:
Si solamente aparecen estas dos líneas, entonces puedes quitar también el arranque de este servicio. Para ello, sigue las mismas instrucciones que con los servicios de arranque directo, usando como nombre de servicio "portmap". Si usas NFS, necesitas tener corriendo el rpcbind. Si este es el caso, es recomendable el acceso restringido por máquina al "portmap". Restricción de acceso por máquinaEs útil restringir los servicios TCP con "wrappers". El tcpwrapper (tcpd) viene ya incluído en algunas distribuciones de linux. Si no es el caso, podéis traéroslo de: http://www.cica.es/seguridad/HERRAMIENTAS/herramientas.es.html El wrapper actúa de intermediario entre el servidor inetd y los servicios controlados por inetd definidos en /etc/inetd.conf (telnet, ftp,...), permitiendo el acceso sólo a las máquinas que configuremos, y por supuesto haciendo registro de todos los accesos a estos servicios. Para configurarlo, basta sustituir en el fichero /etc/inetd.conf, cada servicio por el demonio tcpd. Por ejemplo, si queremos restringir el acceso al servicio telnet, en lugar de esta línea: telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd aparecerá esta otra: telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd Los ficheros en los que se restringe el acceso son /etc/hosts.allow y el fichero /etc/hosts.deny. La configuración más normal es denegar todo lo que no esté permitido en el /etc/hosts.allow. Por ejemplo, si sólo queremos permitir el acceso por telnet , rlogin y pop a la máquina xxx.xxx.xxx.xxx, y a todo nuestro dominio .cica.es salvo la máquina nomefiounpelo.cica.es, y el resto denegarlo, la configuración de estos dos ficheros sería: En el /etc/hosts.allow:
y en el /etc/hosts.deny tener la siguiente línea: ALL:ALL Seguridad en la redEl administrador debe prevenirse ante posibles escuchas en la red. Un "sniffer" escucha todo lo que pasa por una puerta ethernet, inclusives passwords de cuentas de usuarios, superusuarios, passwords de POP... Para evitarlo, usar ssh u otros métodos de encriptación del passsword. Servicio de correo: SendmailEl sendmail es un servidor de mail que te permite leer mails. Es una de las principales fuentes de peligro como ya advertíamos. Si lees tu correo por POP de una máquina externa - por ejemplo de pop.cica.es - , o simplemente lees el correo en otra máquina externa, no es necesario tener corriendo el sendmail. Tampoco es necesario si sólo pretendes mandar mails desde tu máquina. Si usas sendmail, asegúrate de ejecutar siempre la última versión. Puedes obtener información sobre su instalación y configuración en http://www.rediris.es/mail/generador/ . Seguridad de las cuentasNo olvides eliminar las cuentas que ya no se vayan a usar más. Utiliza los "shadow" passwords en lugar de los passwords. Para ello basta ejecutar como root el comando: %pwconv La cuenta root es la más peligrosa. Usala sólo cuando sea necesario. Para el trabajo diario créate una cuenta con el comando useradd. Revisa el path de la cuenta root en los ficheros de inicialización (.login, .cshrc, .profile ...) . El comando path o la variable de entorno PATH definen los directorios de búsqueda de los ejecutables. El directorio ".",es decir, el actual, NUNCA debe aparecer en el path del root. El fichero /etc/securetty establece la lista de los terminales desde los cuales el root puede hacer login, que en algunas distribuciones, por defecto, queda limitado a la consola. Si es así, NO DESHABILITARLO. Comprueba de todas formas que en este fichero sólo aparezca tty1...tty8. Para acceder al root se puede usar alternativamente el comando: >/bin/su Seguridad de los ficheros
Registros de logComo administrador de una máquina linux, revisa los ficheros de registro. Sirven para detectar posibles fallos de seguridad en nuestra máquina linux. Los ficheros de registro se encuentran en /var/log :
Si ves que en estos ficheros se repiten registros continuos desde máquinas desconocidas, probablemente tu máquina esté siendo objeto de una posible incidencia de seguridad. El fichero de configuración de los registros es el /etc/syslog.conf y el demonio encargado de registrar los eventos es, como ya decíamos, el syslogd. Integridad de los ficherosHerramientas como el tripwire nos ayudan a detectar alteraciones en los ficheros binarios y de configuración de sistema. Conviene incluso ejecutarlo automáticamente desde el crontab diariamente. Instalaciones de software segurasPara prevenir posibles troyanos asegurate antes de la instalación de un paquete (RPM, LSM..) su checksum MD5 y su firma PGP. El MD5 te comprueba la integridad y no alteración del paquete, y la firma PGP la autenticidad de su autor. Ambas herramientas se pueden traer también de la red. FirewallsLos firewalls restringen los accesos desde o hacia tu máquina linux. Una máquina linux, a partir del 2.0 con kernel y con dos tarjetas de red, puede ser usado como firewall. Además, linux posee herramientas como el ipfwadm o el ipchains que te ayudan a configurarlo. Nunca olvides, sin embargo, que el firewall sólo te permite limitar el acceso a los servicios que tú especifiques. NO TE PROTEGE frente a errores de seguridad o de configuración en esos servicios. |

