You are on page 1of 6

Introduccin a la Seguridad en Linux (I)

Este es el primero de una serie de artculos que tienen como objetivo introducir al lector en GNU/Linux, dando sus fundamentos y teniendo como objetivo la seguridad de este sistema operativo. El Sistema de Archivos de Linux Linux es un sistema operativo multiusuario, lo que significa que podemos tener mas de un usuario trabajando al mismo tiempo desde sus diferentes estaciones de trabajo. A raz de esto, el sistema debe proteger a unos usuarios frente a otros y a s mismo. En Linux se adopta como norma bsica de seguridad, asignarle a cada uno de los usuarios, slo los permisos mnimos y necesarios para que este pueda realizar su trabajo, sin comprometer el de los dems y la integridad del sistema. El sistema de archivos de Linux sigue el estndar de Unix, posee una estructura determinada y compatible con los dems sistemas Unix. Estos tienen su origen en la denominada raz" o "root" que es representado por "/". De este directorio se desprenden todos los Archivos (Archivos ordinarios Directorios - Archivos Especiales) a los que el sistema operativo tiene acceso. Entre los que se encuentran: /bin Contiene los archivos binarios del sistema. /boot Contiene los archivos del cargador del sistema. /dev Contiene los archivos que representan a los dispositivos que tenemos instalados. /etc Es reservado para los ficheros de configuracin del sistema y aqu no deben existir archivos ejecutables. /home Contiene los directorios personales de los distintos usuarios. /lib Contiene las libreras para que se ejecuten los programas de /bin y /sbin /opt Es donde se aloja la mayora del software creado por terceros. /proc Contiene archivos que enva o reciben informacin de Kernel del sistema. /root Carpeta personal del superusuario o root. /sbin Contiene programas que son accedidos nicamente por root y aquellos que se necesitan durante el arranque y para montar /usr. Adems, programas para poder realizar el mantenimiento y la recuperacin del sistema. /usr Es para los archivos que pueden ser compartidos por todos los usuarios del sistema, es altamente recomendable que sea montada en modo slo lectura.

/tmp Es la destinada a almacenar archivos temporales. /var Contiene ficheros de datos variables. Esto incluye datos de administracin y registro, as como ficheros temporales.

Para mantener un sistema Linux seguro, lo primero que debemos hacer es una apropiada distribucin del espacio de almacenamiento. Al particionar correctamente el o los discos de almacenamiento, estamos minimizando el riesgo de que al deteriorarse por alguna circunstancia una particin, se vea afectada la totalidad del sistema, slo nos veramos expuestos a dicha particin. En este sentido, no existe un estndar que nos indique como debemos realizar esta tarea, depender del uso que se le aplique al sistema y a la experiencia de quien la realice. Aunque s, puedo presentarles como consejo, el siguiente ejemplo en donde se tienen 8 particiones: 1. /boot En esta particin se alojan todos los archivos a los que necesita acceder el cargador del sistema que interactua con el BIOS. A diferencia de las muchas particiones que se presentan en este ejemplo, en donde se justificaran en sistemas grandes, esta puede ser muy til si nos vemos limitados de espacio libre. 2. swap Es destinada al soporte de la Memoria Virtual, esta particin es obligatoria y de no llegar a ser as, es altamente recomendable. Generalmente se calcula su tamao como el doble de la memoria principal, mayor a esto, generara prdidas de espacio en el disco. En grandes instalaciones podramos tener ms de una particin de intercambio o swap. 3. / Es la particin root o raz. Es montada cuando el sistema inicia, y debe contener todos los archivos necesarios para el arranque y la configuracin del sistema. En esta, son necesarios algunos de los siguientes directorios: /bin, /dev, /etc, /lib, /mnt, /proc, /root, /sbin. 4. /usr Es una de las particiones con la que tendramos que ser ms cuidadosos y generosos en cuanto a tamao, ya que en ella se va a ubicar la mayora del software que el sistema operativo pone a disposicin de los usuarios. Adems en /usr/src encontramos gran cantidad de cdigos fuentes, ya sea del ncleo de Linux como de los paquetes basados en RPM. 5. /home Es la particin que contiene los directorios personales de los diferentes usuarios del sistema, el espacio que se le asignar a esta, depender exclusivamente del numero de usuarios y de la cantidad de datos que maneje cada uno de ellos. 6. /opt En el directorio /opt, es donde la mayora del software de terceros esta diseado para instalarse. De no crear esta particin, se instalarn en la particin raz, la cual podra llegar a no tener el espacio necesario, aunque obviamente existen otras maneras de resolver esto, ya que podramos crear un link simblico a otra particin con mayor tamao. 7. /var De esta particin se hace un uso efectivo solo en sistemas servidores, por ejemplo de impresin, y multiusuarios, ya que est destinada a ir guardando los distintos archivos de log que el sistema Linux ir creando y que ubica en /var/log. En el caso de tener un servidor de impresin, en /var/spool se encuentran los archivos en cola de impresin.

8. /tmp Es la particin encargada de almacenar los archivos temporales. Al igual que la particin /var, de esta se har un uso efectivo en sistemas con gran cantidad de usuarios o servidores de red. De no crearse, /tmp se ubica en la particin raz y hara posibilidades de que los usuarios ocupen todo el espacio en disco de la mencionada particin. No es necesaria la creacin de sta en estaciones de trabajo.

En esta segunda entrega Maximiliano desarrolla la primera parte de los "Permisos de Archivos", haciendo hincapi en la importancia de su comprensin para luego seguir evolucionando en GNU/Linux.

Permisos de Archivos (Primera Parte)

En un sistema Linux, TODO es un archivo, los discos de almacenamiento, el mouse, el teclado, la placa de red, etc. Este diseo es, sin lugar a dudas, uno de los factores de mayor xito y potencia del estndar de Unix, pero as tambin, lo convierten en uno de los ms peligrosos. Dependiendo del tipo de error en un permiso, se le podra permitir a un usuario, desde modificar un simple archivo hasta obtener el control total del sistema. Es por ello, que la correcta utilizacin de los permisos sobre los archivos es fundamental para la seguridad del sistema.

Como mencion en el informe anterior, la proteccin ms bsica que le brindamos a los archivos del sistema operativo son sus respectivos permisos, en donde se define quines pueden acceder a stos y de que forma pueden hacerlo.

El sistema de archivos de Linux es uno de los ms slidos, conocido como ext2 y desde hace algn tiempo su nueva versin ext3. Los permisos a los que da soporte sobre los archivos son: lectura, escritura, ejecucin, sticky bit, suid, guid, adems maneja propiedades de un usuario (dueo), grupos y otros (resto de los usuarios), como as tambin otros estndares de Unix. Todas estas caractersticas son almacenadas en una tabla de i-nodos, que es en donde Linux guarda informacin administrativa acerca de: fecha de creacin del archivo, modificacin, la fecha en que cambio el i-nodo y adems los datos en los que radica la seguridad del estndar de Unix: el usuario o dueo del archivo, el grupo del archivo y los permisos.

Para listar los archivos con sus correspondientes permisos vamos a utilizar el comando:

ls ?l [Directorio], el nombre del directorio es opcional, de no llegar a colocarlo, nos listara los archivos del directorio en el que estamos ubicado.

Para saber en qu directorio estamos parados podemos utilizar: pwd. ipxmax:~# ls -l - -rw-r--r-- 1 root sys 576 Nov 25 2006 agenda.txt ipxmax:~#

Para ir entendiendo un poco mejor esto, voy a explicar el significado de los 10 primeros dgitos del ejemplo (-rw-r--r--) de izquierda a derecha.

El primer dgito es un guin, este nos indica el tipo de archivo (archivo, directorio o dispositivo). En la siguiente tabla se muestra los diversos caracteres que pueden aparecer en esta posicin con su correspondiente significado. Caracter b c d l p s Significado Archivo comn Dispositivo de bloque Dispositivo de carcter Directorio Enlace simblico Pipe Socket

Los siguientes 9 dgitos, los dividimos en 3 bloques de 3 caracteres cada uno. En donde, en el primer bloque encontramos los permisos del Usuario o dueo, en el segundo los del Grupo o grupos a los cuales pertenece el usuario y en el tercero los de Otros.

La siguiente tabla muestra el significado de cada uno de los caracteres con su correspondiente valor en octal, el cul lo explicar ms adelante.

Caracter r w x

Significado Lectura Escritura Ejecucin

Valor 4 2 1

En el ejemplo tenamos: -rw-r--r--

rw- Permisos para el Usuario o Dueo de lectura y escritura. r-- Permisos para el Grupo de solo lectura r-- Permisos para Otros (resto de los usuarios) de solo lectura

Para averiguar el valor de los permisos correspondientes a cada grupo, slo necesitamos reemplazar los caracteres por sus respectivos valores y sumarlos. En el ejemplo sera as:

rw- 4 + 2 + 0 = 6 r-- 4 + 0 + 0 = 4 r-- 4 + 0 + 0 = 4

Entonces el valor de los permisos del archivo del ejemplo "agenda.txt" sera 644. El valor en octal es el que usaremos si quisiremos cambiarle los permisos a un archivo con el comando chmod. Si deseramos cambiar de dueo de un archivo y/o el grupo al que pertenece, sera posible con el comando chown. Cabe aclarar que podramos utilizar chmod tambin en forma simblica, en el presente informe no ser explicado, esto puede ser consultado a travs de la sentencia man chmod.

Algunos ejemplos:

ipxmax:~# ls -l - -rw-r--r-- 1 root sys 576 Nov 25 2006 agenda.txt

ipxmax:~# chmod 400 agenda.txt (slo lectura para el dueo) ipxmax:~# ls -l - -r-------- 1 root sys 576 Nov 25 2006 agenda.txt ipxmax:~# chmod 666 agenda.txt (asigna Lectura y escritura para todos) ipxmax:~# ls -l - -rw-rw-rw- 1 root sys 576 Nov 25 2006 agenda.txt ipxmax:~# chown maxi:segu agenda.txt (cambia el dueo y el grupo) ipxmax:~# ls -l - -rw-rw-rw- 1 maxi segu 576 Nov 25 2006 agenda.txt

Los archivos de configuracin del sistema ubicados normalmente en /etc tienen por lo general el modo 640 (-rw-r-----), y son propiedad del root. Siempre dependiendo de los niveles de seguridad que se requieren en el sistema, esto podra ser modificado.

Nunca debemos dejar un archivo del sistema con permiso de escritura para un grupo o para otros. Algunos archivos de configuracin, como por ejemplo /etc/shadow, slo deberan tener permiso de lectura por root. En la segunda parte correspondiente a este informe de "Permisos de Archivos", explicar los 3 permisos restantes: sticky bit, suid y guid. Y en la tercer y ltima parte de ste, comentar en detalle los archivos crticos para la seguridad del sistema y cules deben ser sus respectivos permisos.

You might also like