Page 1 of 1

Безопаность

Posted: Fri May 15, 2015 3:02 pm
by ego
Здравствуйте.

Держу Ubuntu сервачек с последней Vesta на борту, для собственных нужд.
Сегодня дернуло меня залить wso shell и немного с ним поиграться, и тут понеслось..
Шелл радосно мне сообщил о том, что у меня включен safe mode(разве он не выключен по-умолчанию?). ok, в конец /etc/php5/apache2/php.ini добавил safe_mode = ON, перезагрузил апач, но шелл продолжает сообщать о выключенном safe mode.
Далее, шелл работает под пользователем, созданном в VestaCP со всеми вытекающими - просмотр и изменение своих файлов, просмотр корневой директории, директории /home/ и поддиректорий. Как-то не безопасно это, разве не скрипты не должны запускаться с правами nobody?

Как это правильно настроить?

Re: Безопаность

Posted: Sun May 17, 2015 5:13 pm
by skurudo
ego wrote: Далее, шелл работает под пользователем, созданном в VestaCP со всеми вытекающими - просмотр и изменение своих файлов, просмотр корневой директории, директории /home/ и поддиректорий. Как-то не безопасно это, разве не скрипты не должны запускаться с правами nobody?
Как это правильно настроить?
При наличии одного пользователя или проекта - не так критично, а вот когда больше, тогда без использования шаблона basedir не обойтись - перед созданием проверьте шаблон и часть с open_basedir - /usr/local/vesta/data/templates/web/apache2/basedir.tpl

Code: Select all

<VirtualHost %ip%:%web_port%>

    ServerName %domain_idn%
    %alias_string%
    ServerAdmin %email%
    DocumentRoot %docroot%
    ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
    Alias /vstats/ %home%/%user%/web/%domain%/stats/
    Alias /error/ %home%/%user%/web/%domain%/document_errors/
    #SuexecUserGroup %user% %group%
    CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
    CustomLog /var/log/%web_system%/domains/%domain%.log combined
    ErrorLog /var/log/%web_system%/domains/%domain%.error.log
    <Directory %docroot%>
        AllowOverride All
        Options +Includes -Indexes +ExecCGI
php_admin_value open_basedir %docroot%:%home%/%user%/tmp
php_admin_value upload_tmp_dir %home%/%user%/tmp
php_admin_value session.save_path %home%/%user%/tmp
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f info@%domain%"
    </Directory>
    <Directory %home%/%user%/web/%domain%/stats>
        AllowOverride All
    </Directory>

    <IfModule mod_ruid2.c>
        RMode config
        RUidGid %user% %group%
        RGroups www-data
    </IfModule>
    <IfModule itk.c>
        AssignUserID %user% %group%
    </IfModule>

    Include %home%/%user%/conf/web/%web_system%.%domain%.conf*
</VirtualHost>

Re: Безопаность

Posted: Tue May 19, 2015 10:31 am
by ego
skurudo wrote: При наличии одного пользователя или проекта - не так критично, а вот когда больше, тогда без использования шаблона basedir не обойтись
Спасибо за подсказку. Теперь просмотр лишних папок с шелла не происходит, но скрипт все еще имеет слишком высокие права. Как их понизить до nobody?

Re: Безопаность

Posted: Mon May 25, 2015 6:04 pm
by skurudo
ego wrote:
Спасибо за подсказку. Теперь просмотр лишних папок с шелла не происходит, но скрипт все еще имеет слишком высокие права. Как их понизить до nobody?
Слишком много? У вас он под пользователем запускается, что логично. Пользователь заперт у себя в директории,