[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

веб-хостинг: security, права на /etc/passwd и проч.



Приветствую!


  Имеется (вернее, сейчас вводится в строй) веб-хостинг полузакрытого
типа (а-ля "корпоративный") на базе Debian Etch.

  Организовано так:
  Для каждого сайта/поддомена заведён свой пользователь с именем и
группой типа "www_site1_ru", "subdomain_site2_ru" итд. В папке
/var/www/vhosts/ (которая прнадлежит root и имеет права 700)
присутствуют папки с именами доменов типа "www.site1.ru",
"subdomain.site2.ru" и проч. -- они же являются домашними папками для
пользователей типа "www_site1_ru", "subdomain_site2_ru" итд.

  По идее нормальная работа над сайтом -- у каждого сайта/поддомена есть
свой пользователь, у которого доступ есть только по FTP и этот FTP
chroot'тится в домашнюю папку поддомена.

  Также есть ряд "продвинутых" пользователей, которые имеют доступ к
нескольким сайтам под одним (своим собственным) логином и паролем. То
есть например пользователь "vasya" состоит в нескольких группах,
соответствующих тем поддоменам, к которым он имеет доступ (напомню, что
у каждого поддомена -- своя собственная группа). Домашняя папка
пользователя "vasya" находится в /home/vasya/, при этом с помощью mount
--bind в /home/vasya/.www/ примонтирована /var/www/vhosts, а в папке
/home/vasya/www хранятся симлинки на папки с сайтами, на которые у него
есть права. "vasya" работает тоже через ftp и chroot'ится в /home/vasya/
(доступ к /var/www/vhosts/ он получает потому, что сделан mount --bind
внутрь его домашней папки, в которую он чрутится). Корявые костыли, но
лучше не придумал. (-:

  Вроде бы выходит, что всё это дело работает и пользователи друг другу
не мешают.

  Это предыстория, а вот теперь проблема.
  Иногда (в редких случаях) необходимо предоставлять доступ по ssh. Не
хотелось бы, чтобы пользователи могли узнать, какие вообще сайты
хостятся на сервере и у кого какой доступ к разным сайтам.
  Для решения этой проблемы я собираюсь поставить права 750 на
/etc/passwd и на всё в /etc/apache2. А лучше -- вообще на /etc/*

  Возникает два вопроса:
1. Не вызовет ли каких конфликтов установка 750 на /etc/* ? Кто-то
сталкивался с подобным?
2. Будет ли этих мер достаточно?
3. Есть ли "более правильные" решения?


--
 Dmitri Samsonov



Reply to: