secure_tmp
secure_tmp(){
clear
f_banner
echo -e "\e[34m---------------------------------------------------------------------------------------------------------\e[00m"
echo -e "\e[93m[+]\e[00m Securing /tmp Folder"
echo -e "\e[34m---------------------------------------------------------------------------------------------------------\e[00m"
echo ""
echo -e "\e[93m[?]\e[00m ¿Did you Create a Separate /tmp partition during the Initial Installation? (y/n): "; read tmp_answer
if [ "$tmp_answer" == "n" ]; then
echo "We will create a FileSystem for the /tmp Directory and set Proper Permissions "
dd if=/dev/zero of=/usr/tmpDISK bs=1024 count=2048000
mkdir /tmpbackup
cp -Rpf /tmp /tmpbackup
mount -t tmpfs -o loop,noexec,nosuid,rw /usr/tmpDISK /tmp
chmod 1777 /tmp
cp -Rpf /tmpbackup/* /tmp/
rm -rf /tmpbackup
echo "/usr/tmpDISK /tmp tmpfs loop,nosuid,noexec,rw 0 0" >> /etc/fstab
sudo mount -o remount /tmp
rm -rf /var/tmp
ln -s /tmp /var/tmp
say_done
else
echo "Nice Going, Remember to set proper permissions in /etc/fstab"
echo ""
echo "Example:"
echo ""
echo "/dev/sda4 /tmp tmpfs loop,nosuid,noexec,rw 0 0 "
say_done
fi
}
Esta función se encarga de crear un sistema de archivos y montar la /tmp por separado con algunas restricciones. Por que hacemos esto? El directorio /tmp es donde los archivos temporales de las aplicaciones son alojados. Es posible además que pueda ser usado para alojar ejecutables maliciosos para comprometer el servidor. De no asegurarse puede dar espacio a ataques por ejemplo como:
- Procesos Maliciosos
- Ataques de Denegación de servicio
- Ejecución de scripts maliciosos
Jshielder monta la partición /tmp con nosuid y noexec que bloquea la configuración de SUID/SGID y la posibilidad de ejecutar algún script malicioso. Además crea la entrada correspondiente en /etc/fstab para montarlo en el booteo.