3 de junio de 2009

Fortalecimiento básico de Linux: /etc/fstab (3/8)

El fstab o tabla de sistemas de archivos (file systems table), controla la manera en la que son tratados los sistemas de archivos, las opciones con las que se montan, el orden y la frecuencia con la que se revisan.

Página manual: man 5 fstab

Un archivo fstab se compone típicamente de 6 columnas de datos, mediante las cuales se definen los sistemas de archivos de una máquina Linux.
En una máquina personal, este archivo suele tener entradas como estas:

/dev/sda2 swap swap defaults 0 0
/dev/sda3 / ext3 defaults 1 1
/dev/sda1 /root ext3 defaults 1 2
/dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noaout,owner 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0


La primera columna indica la partición, la segunda es el punto de montaje, la tercera es el sistema de archivos, la cuarta son las opciones con las que se monta (véase también man 8 mount para una lista completa de las opciones de montaje), la quinta columna indica si el sistema de archivos debe ser revisado por el fsck y la última indica el orden en que debe hacerse esta revisión.

Ahora, en el caso de un servidor generalmente se recomienda tener más particiones, por lo que un esquema recomendable podría ser:

/dev/sda2 swap swap defaults 0 0
/dev/sda3 / ext3 defaults 1 1
/dev/sda1 /root ext3 defaults 1 2
/dev/sda4 /boot ext3 ro,nosuid,noexec,nouser 1 3
/dev/sda5 /tmp ext3 nosuid,noexec,nouser 1 4
/dev/sda6 /var/log ext3 nosuid,noexec,nouser 1 5
/dev/sda7 /usr/local ext3 defaults 1 6
/dev/sda8 /home ext3 defaults 0 0
/dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noaout,owner 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0


Las razones para poner tantas particiones son varias:

1. Según la definición de la LFH, los directorios que se encuentran definidos aquí como particiones (o al menos la mayoría), no son necesarios para la inicialización de un sistema y por lo tanto pueden quedar como particiones independientes.

2. En un sentido más práctico, /root es en donde el administrador puede guardar todos sus archivos sin inundar el resto de la /. Lo mismo sucede con /home. /boot es en donde se guardan todos los archivos necesarios para el proceso de arranque del sistema, entre otras cosas, guarda la imagen del kernel, si bien aún existen dudas sobre si es sabio o no ponerlo como partición independiente, en este esquema se presenta así a fin de ponerle otorgar permisos de sólo lectura (ro), no ejecución de binairios suid (nosuid), no ejecución de programas (noexec), no manipulación de usuarios (nouser). Ya que nadie realmente más que el administrador debería modificar las imágenes del kernel.
Algo similar se aplica para /tmp, pues es esta partición en la que todos los usuarios pueden escribir, lo cual se torna potencialmente peligroso ya que aquí se pueden subir ciertos programas maliciosos mediante los cuales lanzar ataques internos al servidor. Por otro lado, se podría intentar una saturación del espacio libre desde esta partición.

En /var/log se guardan las bitácoras del sistema y no es buena idea que cualquiera puede ejecutar cosas en él. /usr/local es en donde generalmente (al menos en el caso de Slackware) se instalan los servidores de web /usr/local/apache, bases de datos (/usr/local/mysql y /usr/local/pgsql) y en general el software opcional.

En general, cada administrador puede crear el esquema de particionamiento que mejor le acomode, dependiendo sobre todo del propósito que va a tener el sistema que va a instalar.

No hay comentarios.: