Директории /tmp и /var/tmp должны иметь права chmod 777, поэтому необходимо защитить систему от запуска (выполнения) файлов из этих папок.

Защищаем папки /tmp и /var/tmp от выполнения:

Устанавливаем пакет e4fsprogs если он не устанолен:

yum install e4fsprogs

Создаем специальную партицию для /tmp с размером 3GB:

dd if=/dev/zero of=/var/tmpFS bs=1024 count=3072000
/sbin/mkfs.ext4 /var/tmpFS

Делаем бэкап файлов из /tmp:

cp -Rpf /tmp /tmpold

Монтируем партицию в /tmp:

mount -o loop,noexec,nosuid,rw /var/tmpFS /tmp
chmod 1777 /tmp

Копируем файлы обратно в /tmp:

cp -Rpf /tmpold/* /tmp/

Делаем бэкап файла /etc/fstab:

cp /etc/fstab /etc/fstab-back

Добавляем в файл строку для монтирования /tmp:

echo '/var/tmpFS /tmp ext4 loop,nosuid,noexec,rw 0 0' >> /etc/fstab

Проверяем:

mount -o remount /tmp
df -H

Вы должны увидеть партицию, выглядит примерно так:
/var/tempFS 3.1G 72M 2.9G 3% /tmp

Защищаем папку /var/tmp:

mv /var/tmp /var/vartmp
ln -s /tmp /var/tmp
cp /var/vartmp/* /tmp/

Ну и неплохо бы просекурить /dev/shm, для этого нужно в /etc/fstab добавить строчку:
none /dev/shm tmpfs defaults,nosuid,noexec,rw 0 0
После чего выполнить команду:

mount -o remount /dev/shm

После выполнения этих операций, не лишним будет рестартануть сервисы, использующие /tmp, к таким относятся mysql, nginx и т.п.


Автор: Виктор Симон
www.man-linux.ru
Права копирования
Опубликовано 7 февраля 2012 - информация могла устареть.

Ответить