Введение
Часто веб-серверы пишут в директорию tmp. Было бы хорошо иметь эту директорию чистой и безопасной. Хороший способ защитить директорию tmp на машине linux — запретить выполнение скриптов в ней. Я покажу, как проверить и защитить директорию tmp.
Обратите внимание, что иногда панели управления сервером требуют выполнения в папке tmp.
Шаг 1 — Вход на веб-сервер
Во-первых, войдите на свой сервер через SSH. Убедитесь, что у вас есть права суперпользователя.
Шаг 2 — Проверка директории tmp
С помощью следующей команды вы можете увидеть, есть ли уже директория tmp:
root@server:~# mount | egrep --color -w '^(tmpfs|/tmp)|/tmp'
Скопируйте всю команду, кроме знака #
.
Выход может быть что-то вроде этого: «/filesystems/tmp_fs on /tmp type ext3 (rw,nosuid,noexec,relatime,data=ordered)» Если нет, то выходные данные могут выглядеть следующим образом: "tmpfs on /tmp type tmpfs (rw,nosuid,nodev)"
Если такого вывода нет, пожалуйста, продолжайте.
Шаг 3 — Создание раздела 4 ГБ
Выполните три команды одну за другой.
root@server:~# mkdir /filesystems # создание новой директории
root@server:~# dd if=/dev/zero of=/filesystems/tmp_fs seek=2048 count=2048 bs=1M # создание файла размером 2ГБ и именем tmp_fs
root@server:~# mkfs.ext3 /filesystems/tmp_fs # создание файловой системы ext3 в файле из команды выше
Шаг 4 — Настройка монтирования при перезагрузке
Добавьте следующий код в /etc/fstab
.
Открыть fstab:
root@server:~# nano /etc/fstab
Вставьте следующее в конец файла:
/filesystems/tmp_fs /tmp ext3 noexec,nosuid,loop 0 0
Важно: в конце файла fstab должна быть пустая строка, иначе fstab не будет работать после перезагрузки.
Сохраните файл и продолжайте.
Шаг 5 — Резервное копирование текущей директории tmp
root@server:~# cd /
root@server:~# cp -R /tmp /tmp_backup
Шаг 6 — Монтирование новой директории tmp
Это будет сделано с опциями noexec, nosuid и rw.
root@server:~# mount -o loop,noexec,nosuid,rw /filesystems/tmp_fs /tmp
Установите правильные разрешения:
root@server:~# chmod 1777 /tmp
Шаг 7 — Копирование старых файлов в новое место
root@server:~# cp -R /tmp_backup/* /tmp/
root@server:~# rm -rf /tmp_backup
Шаг 8 — Проверка директории tmp и попытка выполнения (необязательно)
Проверьте, существует ли новый раздел:
root@server:~# df -h
root@server:~# mount
Проверьте, можно ли выполнить какой-нибудь скрипт:
root@server:~# cp /bin/ls /tmp
root@server:~# chmod 755 /tmp/ls
Выполните ls:
root@server:~# /tmp/ls
Если все настроено верно, то вы должны получить «Permission denied».
Удалить временный скрипт можно при помощи команды:
root@server:~# rm /tmp/ls
Вывод
Ваш веб-сервер теперь защищен от плохих скриптов и атак на директорию tmp. Если у вас есть какие-либо вопросы или пожелания, пожалуйста, свяжитесь со мной.