Как защитить свой сервер от webshell

12
A
На сайте с 10.03.2008
Offline
40
3236

На моем VDS установлена FreeBSD. Недавно попал на неприятную ситуацию. Обнаружил что во все папки сайтов в корни залит файл webshell (он же phpshell и т.д.). Наверное данный файл оказался за счет дыры в каком то скрипте. Знать бы из-за какой дыры, то было бы все просто, а так получается что это искать как "иголку в стоге сена", непонятно за счет какой дыры залит. Путь заливки через ftp,shell путем взлома паролей исключаю, так как настроен на порты firewall ограничение по IP. Через панель управления (ISPManager) вроде бы тоже не должно быть, тоже в настройках панели стоит ограничение по IP. Поэтому думаю что скорее всего из-за дыры в скрипте (а может даже из-за других причин о которых не подразумеваю).

Вопрос: как защитить свой сервер от такой пакости? Как можно сделать так, чтобы если и в какой то сайт залит webshell, так чтобы в другие сайты на сервере его скопировать было нельзя?

Сервис активной рекламы (http://mailcasher.info/) Диски почтой (http://www.postcd.ru/)
zexis
На сайте с 09.08.2005
Offline
358
#1

1) По возможности запретить mysql обращаться к файлам (через систему привелегий mysql).

2) Запретить пользователю www (от которого выполняется вебсервер) записывать в корневую папку сайта и во все папки в которых лежат файлы PHP.

3) Разрешить пользователю www писать лишь в специальные папки для загрузки файлов. в этих папках должно быть запрещено выполнять скрипты PHP. Регулярно проверять не появилось ли в этих папках для загрузки посторонних файлов.

4) Регулярно проводить поиск в логах access.log ключевых слов

select

union

mysql

admin

../..

/etc

Passwd

Для того что бы быть в курсе попыток поиска дыр вскриптах.

M
На сайте с 16.09.2009
Offline
278
#2
andryus:
Путь заливки через ftp,shell путем взлома паролей исключаю, так как настроен на порты firewall ограничение по IP.

Да через это "ограничение" вирусня и лила. Ради таких глупостей - исключать не следует. Вот проверите хоть ftp-логи, тогда исключайте по результатам.

andryus:
Поэтому думаю что скорее всего из-за дыры в скрипте (а может даже из-за других причин о которых не подразумеваю).

Тоже может быть. Хотя по характеру проблемы - я бы поставил на заливку по ftp.

andryus:
Вопрос: как защитить свой сервер от такой пакости? Как можно сделать так, чтобы если и в какой то сайт залит webshell, так чтобы в другие сайты на сервере его скопировать было нельзя?

Начать, например, с того, что не хранить пароли в Вашем любимом фтп-клиенте... Откуда я знаю, спрашиваете?

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
Andreyka
На сайте с 19.02.2005
Offline
822
#3

Замена ftp на scp и тонкая настройка mod_security поможет

Не стоит плодить сущности без необходимости
[Удален]
#4

кстате эту гадость успешно находит clamav

да все верно Успешно !

ну еще как вариант собрать апач с патчем jtk тогда сложнее будет использовать шелл и вырубить потенциально опасные функции в php, параллельно поставить мод скеьюрити и настроить его

можно еще свинюшку поставить для проформы

D
На сайте с 05.06.2007
Offline
155
#5

Отключить шелл в PHP, ограничить через openbasedir, использовать секюрные пароли, не ставить старых и дырявых скриптов.

Написал не мало шедевров ;)
M
На сайте с 16.09.2009
Offline
278
#6
Dimanych:
Отключить шелл в PHP

Че это значит, о гуру?

kXk Our DevOPs
На сайте с 30.01.2005
Offline
990
#7

myhand, Дизабле_функтионс : exec,shell_exec и тд

Buy lifetime vps ( https://ddosov.net/lifetime-vds )
M
На сайте с 16.09.2009
Offline
278
#8
kxk:
myhand, Дизабле_функтионс : exec,shell_exec и тд

Я не Вас спросил. Или Вы не в курсе, что после сего действа - то что называют сейчас webshell может вполне себе работать?

kXk Our DevOPs
На сайте с 30.01.2005
Offline
990
#9

myhand, У меня длинный список дизабле функтионс :)

zexis
На сайте с 09.08.2005
Offline
358
#10
Dimanych:
Отключить шелл в PHP, .

наверное имеется ввиду отключить в PHP все функции обращающиеся к файловой системе.

Наподобие readfile() и так далее.

Не знаю есть ли возможность их все отключить.

Но эти функции часто нужны в проекте.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий