WEB-сервер Apache по умолчанию работает таким образом, что все процессы запускаются под одним пользователем, и обычно это www-data
. С одной стороны — это удобно, но с другой... Если на сервере, с настроенными виртуальными хостами, находится несколько сайтов, то при взломе злоумышленниками одного из них, как бы не были настроены права к папкам на сервере, с помощью Apache, можно получить доступ к файлам других сайтов, загрузив простейший файловый менеджер, который будет запускаться под пользователем www-data
и, таким образом, иметь доступ во все папки, которые доступны через веб-интерфейс, если его запросы обрабатывает Apache.
Модуль apache2-mpm-itk
для запуска процессов Apache с правами пользователя
Для того, чтобы обезопасить данные сайта от несанкционированного доступа есть готовый модуль apache2-mpm-itk
, который запускает его от имени (и значит с правами доступа) того пользователя, который будет указан в конфиге виртуального хоста Apache. И это не позволит злоумышленнику проникать в папки других сайтов, если они запускают Apache от имени других пользователей.
Всё прекрасно! Осталось только разобраться, как установить этот полезный модуль и потом, как правильно настроить работу виртуальных хостов.
Установка модуля apache2-mpm-itk
на сервер
Для установки этого модуля на сервер, работающий под Debian 9, нужно воспользоваться командой apt install
:
apt install apache2-mpm-itk
Но до этого, хорошо бы убедиться в том, что этот модуль ещё не подключен к Apache. Как это сделать, можно прочитать по → этой ссылке.
Итак, если этого модуля нет в списке загруженных модулей Apache
1. обновляем список пакетов:
root@server:~# apt update
2. апгрейдим устаревшие пакеты (если они найдены):
root@server:~# apt upgrade
3. проверяем отсутствие нужно нам модуля apache2-mpm-itk
в списке подключенных модулей Apache:
root@server:~# apachectl -M
4. если требуемого пакета нет, то запускаем его установку:
root@server:~# apt install apache2-mpm-itk
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package apache2-mpm-itk
Может случиться и такое — пакет не найден!
5. Значит пробуем другой вариант названия этого модуля libapache2-mpm-itk
:
root@server:~# apt install libapache2-mpm-itk
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
libapache2-mpm-itk
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 14.3 kB of archives.
After this operation, 49.2 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian stretch/main amd64 libapache2-mpm-itk amd64 2.4.7-04-1 [14.3 kB]
Fetched 14.3 kB in 0s (99.6 kB/s)
Selecting previously unselected package libapache2-mpm-itk.
(Reading database ... 29690 files and directories currently installed.)
Preparing to unpack .../libapache2-mpm-itk_2.4.7-04-1_amd64.deb ...
Unpacking libapache2-mpm-itk (2.4.7-04-1) ...
Setting up libapache2-mpm-itk (2.4.7-04-1) ...
Module mpm_event disabled.
Enabling module mpm_prefork.
apache2_switch_mpm Switch to prefork
apache2_invoke: Enable module mpm_itk
6. Проверяем наличие установленного модуля Apache в списках загруженных модулей:
root@serer:~# apachectl -M
Loaded Modules:
...
mpm_itk_module (shared)
...
Резюме
Ура! Теперь модуль Apache mpm-itk
установлен и можно переходить к настройке виртуальных хостов!
Перезагрузим Апач: apachectl -k restart
.
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)