У меня установлен базовый LAMP, и я хотел бы защитить его, чтобы PHP не мог получить доступ ни к чему за пределами каталога /var/www. Как это сделать? Под «доступом» я подразумеваю также чтение файлов и листинг каталогов.
Я прошу об этом из соображений безопасности. Я использую WordPress на своем сервере, и если кто-то получит доступ к учетной записи администратора, он сможет редактировать код шаблона, через который он сможет попасть в любую точку системы.
Спасибо!
решение1
Вот основные шаги для обеспечения надежной настройки LAMP:
- Убедитесь, что все веб-сайты работают с собственным пользователем. Вы можете добиться этого с помощью Apache mod_itk/mod_php или PHP-FPM (обычно с Apache или Nginx)
- Убедитесь, что владельцем файлов является пользователь root, а группа — пользователь веб-сервера (или наоборот)
- Убедитесь, что права доступа для файлов — 640, для каталогов — 750. Только папки загрузки Wordpress имеют права 660/770.
- Изменяйте права доступа к PHP-файлам только при обновлении или установке плагинов.
Убедитесь, что файлы PHP не могут быть запущены в папке изображений:
<FilesMatch "/uploads/\.(asp|php|php5|pl)$"> Deny from all </FilesMatch>
Этот метод не очень хорошо работает с Wordpress, потому что плагины устанавливают файлы php в эту папку. Возможно, вам лучше защитить папки uploads/2017 и т. д.
- Поддерживайте установку в актуальном состоянии
- Поддерживайте актуальность программного обеспечения сервера
- Регулярно проводите проверку журнала.
- Иметь резервные копии
- Уметь быстро восстанавливаться