[devel] web packaging: init!
Илья Евсеев
=?iso-8859-1?q?ilya=5Fevseev_=CE=C1_mail=2Eru?=
Вс Сен 19 04:16:12 MSD 2004
Всем привет!
Поразмыслив над упаковкой IlohaMail (Web-mail приложение для SMTP, POP3 и IMAP), я пришёл к следующим заключениям.
ПЕРВОЕ. Каталог /var/www/html предназначен для данных, а не для программ. Не имеет смысла пихать туда программу, чтобы в каждый её подкаталог тут же записывать .htaccess "Deny from all". По умолчанию IlohaMail ставится %libexecdir/%name, т.е. в /usr/lib/%name. Вот пусть она там и сидит, а на один-единственный её подкаталог с Веб-формами будет указывать симлинк ФС или (лучше) alias/vhost Апача.
ВТОРОЕ. Поскольку /usr содержит константные данные, %libexecdir/%name/conf должен быть не каталогом с настройками, как это сделано у IlohaMail по умолчанию, а симлинком на определённый Альтом каталог %apache_addconfdir/%name, где и будут лежать настройки.
Обычно делают почему-то ровно наоборот: настройки сваливают в %apache_datadir, хотя, как следует из имени макроса, им там совершенно не место, и из %apache_addconfdir делают на него симлинк.
ТРЕТЬЕ. Если теперь поддерживается conf/addon-modules.d/*.conf (кстати, а макрос %apache_??? этому соответствует какой?), то в этот каталог должен помещаться файл %name.conf с <Directory> Order Allow,Deny; Allow from 127.0.0.1 </Directory>, чтобы:
а) не открывать сервис в сеть без подготовки (по аналогии с xinetd.conf и xinetd.d/*);
б) заставить сисадмина заглянуть в него и, возможно, что-то исправить: сделать доступ только из Интранета, только по HTTPS, только для отдельных пользователей и т.д.
В conf-файле должен быть Alias, указывающий на /usr/lib/%name, но _закомментированный_, потому что специфичным для программы алиасом мы громко сообщаем, что у нас установлена эта программа, чем облегчаем работу потенциальным взломщикам.
Кроме того, пользователи вряд ли захотят набирать your.host.ru/addon-modules/imp/ или .../ilohamail, а потребуют host.domain.ru/mail (на такое имя каталога ни у какого конкретного пакета прав претендовать, по-моему, нет, поэтому нужен ещё один _закомментированный_ Alias) или mail.domain.ru (который к тому же зависит от имени хоста/сети, т.е. должен быть назначен сисадмином, а не сценарием установки). Поэтому тут же в %name.conf должен быть закомментированный VirtualHost.
Вопрос: будет ли собранный по этим правилам пакет принят нашим неформальным Web Development Team как корректный? Имеет ли смысл распространять эту практику на прочие пакеты с Веб-приложениями?
Благодарю за внимание,
Илья Евсеев
Подробная информация о списке рассылки Devel