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.