Изоляция сайтов в рамках витруального хостинга Beget

08 Apr 2017 | Автор: anchous |

Пару недель назад я распинался касаемо защищенного хостинга Beget, в котором реализовано решение, предотвращающее заражение сайтов в одном аккаунте. То есть в случае взлома или заражения вирусами одного из сайтов в аккаунте виртуального хостинга, зараза локализуется и не выходит за пределы директории зараженного сайта. Это довольно актуальная услуга, особенно учитывая тот факт, что у многих хостинг провайдеров отсутствует даже изоляция между разными пользователями виртуального хостинга, т.ч зловреды не только заражают сайты внутри аккаунта, но и устраивают эпидемию на ноде, заражая все вокруг.

Собственно обезопасить сайты хостящиеся в одном аккаунте друг от друга можно только запуском демона вебсервера от непривилегированного пользователя, запертого в изолированной песочнице. Про разделение пользователей сервера, я думаю, даже и говорить не стоит, ибо это прописная истина безопасности. Реализовать это на собственном сервере – не проблема, а вот чтобы оформить тоже самое в автоматизированном варианте на виртуальном шаред хостинге – это уже сильно посложнее.

Ну я об этом писал, как раз в предыдущем посте.

И вот днях, один из инженеров хостинг провайдера Beget, поведал на серче о самой технологии, как она реализована на серверах хостинга. Так что это краткое изложение технологии изоляции сайтов в аккаунте.

При создании аккаунта, создается пользователь, которому принадлежат все файлы папки аккаунта, за исключением самих директорий сайтов, т.к они принадлежат суперюзеру, для избежания случайного удаления папок.

При этом демоны окружения веб-сервера (все процессы от php до nginx и ftp) работают от отдельного пользователя, находящегося в непривилегированной группе. С помощью модуля mpm_itk в виртуальных хостах этот пользователь прописывается для сайта, т.ч все процессы порождаемые веб-сервером запускаются так же от него (указываются id пользователя и его группы):

<IfModule mpm_itk_module>
MaxClientsVHost 30
AssignUserId #66493 #666
</IfModule>

Этот пользователь также используется для логина по ssh – весьма удобного дополнения к виртуальному хостингу, которое, тем не менее, присутствует далеко не у всех; что является следствием не проработанной технологии изолирования, даже на уровне пользователя виртуального хостинга. Также этот пользователь имеет право на запись/чтение внутри директории сайта, но не имеет доступа вне папки песочницы – к директориям других сайтов и корневой директории аккаунта виртуального хостинга.

Также, со слов сотрудника Beget, следует что процессы Apache мало того, что запускаются под отдельными пользователями, но и в docker контейнерах, что дополнительно изолирует процессы от основной системы.

Данная система возможно присутствует у каких то еще хостингов, но насколько я читал – из топ10, полноценная изоляция сайтов в аккаунте существует только у Beget.

Менее подробно, но с картинками и листингом директорий можно посмотреть на форуме серч.

VN:F [1.9.21_1169]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.21_1169]
Rating: 0 (from 0 votes)

Ваш отзыв