Запрет выполнения файлов на /tmp
Многие эксплоиты полагаются на возможность выполнения команд в каталоге /tmp. Администраторы, зная о такой проблеме, часто разбивают диск таким образом, чтобы для /tmp выделялся свой раздел, который затем монтируется в режиме запрета выполнения файлов.
Однако остаётся одна неприятная проблема: APT может работать неправильно с такой конфигурацией.
В данной статье мы рассмотрим:
- монтирование /tmp в режиме запрета выполнения файлов как для отдельного раздела, так и в случае использования единственного раздела;
- решение проблем с
apt-get/aptitude.
Монтирование /tmp в режиме запрета выполнения файлов для отдельного раздела
Здесь всё очень просто: открываем файл /etc/fstab и ищем /tmp. Строка может, например, иметь следующий вид:
К defaults добавляем два параметра: nosuid и noexec (можно еще добавить nodev):
Очень рекомендую прочитать man mount, чтобы понять, что nosuid/noexec могут, а что нет (и почему /bin/sh /tmp/test.sh сработает).
После внесения изменений перемонтируем /tmp:
Создание псевдораздела для /tmp
Если при установке системы диск не был разбит на разделы, есть способ создания псевдораздела. Он ужасный, но работает.
sudo dd if=/dev/zero of=/dev/TMPFILE bs=1024 count=100000
sudo mkfs.ext3 /dev/TMPFILE
Добавляем в /etc/fstab строку
Некоторые люди говорят, что добавление nodev конфликтует с дисковыми квотами. Не проверял, не знаю.
После сохранения файла желательно перезагрузиться (и избежать секса с перезапуском сервисов и неожиданной потерей временных файлов). После перезагрузки все должно работать. Проверяется очень просто:
# /dev/loop0 on /tmp type ext3 (rw,noatime,noexec,nosuid,nodev)
Исправление конфигурации APT
В файл /etc/apt/apt.conf (или в /etc/apt/apt.conf.d/70debconf, в зависимости от дистрибутива) нужно внести такие изменения:
DPkg::Post-Invoke {"mount -o remount /tmp";};
Прочее
Кроме /tmp есть еще /var/tmp…
Дек
2008
Комментарии к статье «Запрет выполнения файлов на /tmp» (2) »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «Запрет выполнения файлов на /tmp»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.


в RSS пост импортировался некорректно – в GReader все кириллические символы заменены на «?».
Привет FeedBurner’у… Специально проверил — сервер отдаёт все в UTF-8 и фид проходит валидацию FeedValidator. Куда копать дальше — не знаю.