Ubuntu - кто-то может писать на сервере Ubuntu/ Apache
Кто-то пытается взломать мой сайт, у меня есть сайт, построенный на PHP (7)/MySQL в фреймворке Laravel. Владельцем /var/www является www-data, и для всех папок установлено разрешение 700, а для файлов - 600. Тем не менее, хакер может изменять содержимое index.php, а также он может удалить несколько файлов PHP. Сервер Ubuntu 17.04, а веб-сервер Apache.
Мне нужно немедленное руководство о том, как он может записывать файлы в папку с разрешением 700. Буду очень признателен за вашу помощь и руководство. Пожалуйста, дайте мне знать, если вам нужно больше деталей, чтобы понять проблему.
2 ответа
Если ваш сервер Apache работает как пользователь, отличный от www-data
замещать www-data
с этим пользователем ниже.
Владелец должен быть любым пользователем, кроме www-data
, Я использую непривилегированного пользователя, который используется для обновления сайта. Группа должна быть www-data
Разрешения должны быть 750 для каталогов и 640 для файлов. Это предотвратит запись apache в каталоги и файлы. Если вы используете разрешения 755 и 644, то любой пользователь на вашем сервере может прочитать данные. Это можно использовать для проверки содержимого третьей учетной записью, возможно, по сравнению с эталонной копией содержимого.
Если у вас есть каталог для загрузки, он должен принадлежать www-data
или иметь разрешения 770. Следите за этим внимательно, так как он может быть использован для сброса вредоносных программ. Настройте apache, чтобы предотвратить выполнение чего-либо в этом каталоге. Используйте файл конфигурации для этого, так как будет возможно перезаписать файлы, такие как .htaccess
в этом каталоге.
Вышеуказанные правила применяются ко всем каталогам и файлам, на которые ссылается ваша конфигурация. Число рекурсий, поэтому применяйте правила, используя рекурсивную конфигурацию.
Следующие команды заблокируют /var/www
, Вы можете заменить демона любым пользователем, кроме www-data
, Измените каталог загрузки на каталог загрузки.
find /var/www -type d -exec chmod 750 {} +
find /var/www ! -type d -exec chmod 640 () +
find /var/www -exec chown daemon:www-data {} +
chmod 770 /var/www/uploads
Добавить запись, как это. Смотрите подробности в документации по опциям, если вы хотите, чтобы некоторые опции были включены.
<Directory "/var/www/uploads">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
Пожалуйста, обратите внимание, что там может быть вредоносное ПО /tmp
и любое другое место, которое может быть написано www-data
,
- Я бы проверил логи Apache и логи ОС. (var/log/httpd/ и /var/log/auth.log) Вам необходимо выяснить, как они обращаются к вашему серверу, и закрыть дыру.
- Убедитесь, что ваш брандмауэр работает правильно (порт сканирует ваш сервер).
- Проверьте, исправлен ли ваш сервер в ОС и приложении, чтобы убедиться, что они не используют уязвимости со старым кодом.
Какие разрешения должны иметь файлы / папки моего веб-сайта на веб-сервере Linux?