За N-ое количество лет сформировалась привычная мне схема на веб-сервере, которая оставляла открытыми вопросы безопасности, и сейчас, когда придется впускать к себе сторонних юзеров, они стали критичными.
Связка NGINX + PHP5-FPM, пользователи базируются в
/var/www/USER/SITE.
Владелец
/var/www/USER -
root. Всего внутри -
USER. Все пользователи висят на разных пулах PHP-FPM. Обращение исключительно через SFTP, пользователи закрыты в свой папке через установку в
sshd_config:Subsystem sftp internal-sftp
Match group www-data
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Пример пула в PHP-FPM:[USER]
user = USER
group = www-data
listen = 127.0.0.1:PORT
chdir = /var/www/USER/
1) Если залить r57shell, то ничего не мешает подняться выше своего уровня и заглядывать куда угодно. Как это исправить?
2) Некоторые из сайтов используют импровизированную PHP-библиотеку, лежащую в
/var/www/libs, делая её Include в скриптах - как правильно организовать "общую библиотеку"? (догадываюсь, что при правильном ограничении пользователей, выше
/var/www/USER они не смогут ничего заинклудить).
P.S. Найденные в сети варианты при любом виде шаманств и правке basedir приводили к File not found при исполнении *.php