Crear loopback para /tmp y /var/tmp

http://hummy.wikidot.com/create-a-loopback-device-for-tmp-and-var-tmp

Si un atacante consigue acceder a un servidor, una de las primeras cosas que tratará de hacer será poner archivos en el directorio /tmp o /var/ tmp, preferiblemente ejecutables, archivos binarios o archivos suid.

Si desea protegerse de estos ataques, tiene que tener este directorio en una partición separada y montarlas con las opciones noexec y nosuid en el fstab.

/var/tmp es tan pequeño que yo suelo borrarla y enlazarla a /tmp.

En un servidor web normal, el directorio /tmp suele ser de entre 1-2GB. (Su tamaño puede variar). Lo mejor que puede hacer es revisar dos o tres servidores y ver el tamaño del directorio /tmp con:

du -sh /tmp

De acuerdo con esto, tendremos que crear una partición de 4 GB y añadir la siguiente línea al fstab:

/dev/sdaX    /tmp        ext2 nodev,nosuid    0    0

Como el directorio /tmp no contienen información importante, la creamos como ext2 (sin journal, registro de archivo diario), por lo que no tiene que decirle al kernel que use la opción "noatime" para evitar escrituras adicionales en cada lectura que ext3 produce.

Hasta aquí vamos bien protegidos contra las personas que tratan de poner los ejecutables en nuestro directorio /tmp o /var/tmp.

Pero, HAY UNA MEJOR MANERA DE TRATAR ESTA SITUACIÓN:

El kernel nos proporciona una interfaz loopback que puede utilizarse para montar sistemas de archivos.

Lo que haremos será crear un archivo con un tamaño específico, el formato de este archivo con un sistema de ficheros ext2 y luego montarlo, así puede ser utilizado como un reemplazo de /tmp y /var/tmp:

mkdir /mnt/tmpFileSystem
cd /mnt/tmpFileSystem
# Create a 4GB file:
dd if=/dev/zero of=tmpFs.lp bs=1k count=4194304
mke2fs -i 1024 -b 1024 -F -v tmpFs.lp
mount tmpFs.lp /tmp -t ext2 -o loop

Si no recibes ningún error, entonces podemos continuar.

Comprueba que el dispositivo loopback está realmente montado y funcionando.

mount

Añadir este punto de montaje en /etc/fstab para que se monte automáticamente en el arranque:

echo '/mnt/tmpFileSystem/tmpFs.lp /tmp ext2 loop,auto,nodev,noexec,nosuid,noatime 0 0' >>/etc/fstab

Ahora puede repetir este proceso para /var/tmp o hacer como yo:

rm -Rf /var/tmp
ln -s /tmp /var/tmp

Aplicar los permisos correctos para el nuevo /tmp

chmod 1777 /tmp

Volver a montar /tmp con las opciones de sistema de archivos correcto

mount -o remount /tmp

« Linux

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License