Зачем взламывают сайты? Варианты: 1) Узнать пароль от базы данных и украсть ее. 2) Разместить на сайте вредоносный код и распространять его. 3) Разместить на сайте код от систем Sape и подобных, чтобы заработать на чужом сайте. 4) Взломать сайт, чтобы использовать его для рассылки спама по емейл. 5) Взломать сайт, чтобы через какой-то php скрипт сделать из него анонимайзер и лазить под другими IP. 6) Взломать сайт для того, чтобы перепродать его кому-то и получить за это деньги. 7) Для того, чтобы сливать трафик и продавать его. 8) Для того, чтобы убрать конкурентов. 9) Сделать дефейс (написать "Тута был кулхацкер Вася Пупкин") 10) Просто так, насолить. 11) Залить дорвеи. 12) Разместить ссылку на свои сайты или сателлиты. 13) Ради шутки. и так далее: хобби, увлечение, идеология...
Так как же от этого защититься или хотя бы свести ущерб для своего сайта к минимуму? Для этих целей был разработан скрипт "ZEOS ANTIVIRUS". Этот скрипт создает снимок всех файлов системы и когда злоумышленник через какие-то уязвимости Вашего сайта заливает на Ваш сервер shell, то антивирус присылает Вам на емейл уведомление, в котором указано, что по конкретному адресу появился новый файл. После чего Вы заходите на Ваш сервер и удаляете его.
Для каких случаев скрипт может быть полезен? 1) На Вашем сайте появился новый файл. 2) Кто-то узнал логин и пароль от Вашего FTP и были изменены файлы. Например, в index.php прописали какой-то вредоносный яваскрипт. 3) Злоумышленник удалил какие-то файлы с Вашего сайта.
Когда надо создавать снимок системы? Снимок системы надо создавать на чистом сайте. То-есть, когда Вы уверены, что на Вашем сайте нет вредоносных файлов.
Как работает антивирус? Антивирус в режиме "2" создает список файлов на сервере. После чего антивирус запускается через CRON в указанный интервал времени и сверяется по сделанному снимку. Если появляется какой-то новый файл или какой-то файл измененен или удален, то на Ваш емейл будет отослано уведомление.
Можно ли получать смс уведомления? Можно, если Ваш оператор мобильной связи поддерживает "email2sms" Например, у оператора "Киевстар" достаточно указать свой мобильный номер и адрес сайта оператора: 380671234567@sms.kievstar.net
Что надо для правильной работы антивируса? Для правильной работы антивируса желательно как можно больше оперативной памяти и времени выполнения php скрипта. Антивирус тестировался на компьютере: 1 ГГц, 512 Mb RAM (не VPS). Под PHP выделенно 16 Mb. HDD: 1 Tb, 7500 RPM
Общее количество файлов на сервере: 50.000 шт. общим весом 55.324.652.520 байт (55 гигабайт)
1) Учитывать все, исключений нет - 24 минуты 45 секунд. 2) Учитывать только: php|cgi|pl|perl|php3|php4|php5|php6|tpl|htaccess - 1 минута 8 секунд. 3) Учитывать все, кроме списка исключений: jpg|jpeg|gif|bmp|png|rar|zip|tmp|gz|txt|xml|flv|exe|doc|pdf|avi|mp3|mp4|swf|wmv|m4v|m4a|mov|3gp|f4v|3gp|mpg|mpeg - 1 минута 11 секунд. Чем больше файлов надо учитывать, чем больше файлов на сервере вообще и чем больше файлы по размеру, тем медленнее работа и надо больше времени на выполнение скрипта.
Подробности по установке и настройке антивируса: Файл "zeos_antivirus.php" необходимо закачать на Ваш сервер и как можно глубже в папки сайта. Основная задача - спрятать этот скрипт от злоумышленника. Файл переименовать в любое название, желательно такое, чтобы злоумышленник не догадался, что это антивирус. Например, назвать: "editnews.php" или "topnews.php" и так далее. После этого надо открыть файл антивируса для редактирования, например, в блокноте.
$mode = 1; Это функция для выключения антивируса. Цифра 0 - Выключить. Цифра 1 - Включить.
$docroot = "/var/www/forum/data/www/"; Тут надо указать путь к корню Вашего сайта. Этот путь Вы можете узнать у Вашего хостера. Или Вы можете закачать на Ваш сайт скрипт "temp.php" и запустить его через браузер. И первой строкой будет именно этот путь к корню сайта.
$script_filename = "/engine/ajax/topnews.php"; Тут надо указать путь от корня к месту, где расположен Ваш антивирус.
$sitename = "ZEOS"; Название Вашего сайта. Это название будет писаться в письме в строчке от кого пришло письмо. Пример - От: ZEOS - support@microsoft.com
$path = "/"; Тут надо указать, что именно надо сканировать. Если указан символ "/" то скрипт будет сканировать весь сайт от корня. А если на Вашем сервере, например, есть форум и отдельно еще какая-то папка, которую не надо сканировать, то можно указать так: $path = "/forum"; В таком случае будет сканироваться только папка "forum" и все, что есть внутри нее.
$snapfile = "/uploads/posts/thumbs/bluesky.jpg"; Тут указывается путь к тому месту, где будет создаться снимок системы. Это должно быть другое место, отличное от пути, где лежит сам антивирус. На папку, в которую будет писаться файл снимка, должны быть права CHMOD - 777 Очень важно запрятать этот файл очень глубоко среди папок и файлов на Вашем сервере, чтобы злоумышленник не смог найти этот файл и изменять его. Расширение файла может быть любое. Например JPG. Этот файл не будет являться картинкой. Но в исходном коде можно будет увидеть снимок файлов системы.
$snapfile = "/uploads/posts/thumbs/bluesky.jpg"; В этом примере на папку "thumbs" стоят права 777 и файл назван так, чтобы злоумышленник никогда не смог догадаться, что это снимок системы и расширение у файла как картинка.
$ext = "*"; Тут указывается список расширений файлов, которые необходимо проверять. "*" или "" - означает любые расширения. Расширения указывать без точек и через символ: | Например, $ext = "php|cgi|pl|perl|php3|php4|php5|php6|tpl|js|htaccess|htm|html|css|swf|txt|db|lng";
$exclfiles = "jpg|jpeg|gif|bmp|png|rar|zip|tmp|gz|xml|flv|exe|doc|pdf|avi|mp3|mp4|wmv|m4v|m4a|mov|3gp|f4v|3gp|mpg|mpeg"; Список расширений файлов, которые не учитывать при проверке. Расширения указывать без точек и через символ: | А также можно указывать имена файлов, которые тоже не надо учитывать. Например, $exclfiles = "index.php|jpg"; - в этом примере не будут учитываться файлы с именами: "index.php" и все файлы с расширением JPG
$excldirs = "/engine/cache/system"; Список папок, которые не надо проверять. Путь указывается относительно значения переменной "$path" (которую Вы задавали выше в скрипте). Разделитель папок символ: | Например, $excldirs = "/folder|/files/web"; - в этом примере папки: http://site.ru/folder и http://site.ru/files/web сканер будет пропускать.
$yourmail = "email@email.com"; Тут указываются емейл адреса, на которые необходимо высылать уведомление. Можно написать несколько, через разделитель: | Пример: $yourmail = "support@zeos.in|support@microsoft.com";
$password = "1234567"; Пароль для создания снимка системы. Если Вы хотите запретить запуск антивируса по ссылке "http://Ваш_домен/путь_к_файлу_антивируса/название_файла_антивируса.php?mode=2&pass=1234567" то закомментируйте строчку, поставив перед ней два символа: //
$mt = 3000; Тут указывается время выполнения php. Это значение уточняется у хостера. Писать больше или меньше, чем установил хостер, нет никакого смысла. Будут ошибки. Также Вы можете закачать на Ваш сайт файл "temp.php", запустить его через браузер и второй строчкой будет указана цифра, которую установил администратор сервера.
Как сделать снимок системы? Для того, чтобы сделать снимок системы, надо в браузере запустить скрипт антивируса в режиме "2"
Для этого можно сделать так: http://Ваш_домен/путь_к_файлу_антивируса/название_антивируса.php?mode=2 и ввести свой пароль или сразу: http://Ваш_домен/путь_к_файлу_антивируса/название_антивируса.php?mode=2&pass=Ваш_пароль
Дальше антивирус можно запускать в любое время через браузер по адресу: http://Ваш_домен/путь_к_файлу_антивируса/название_антивируса.php и будет сканироваться сайт. После этого надо поставить антивирус на CRON, например, на запуск каждые 30 минут. Чем чаще запускается антивирус, тем быстрее Вы узнаете про изменения на Вашем сервере. Чем реже, тем позже.
Правильно настроенный антивирус будет присылать письма на почту только тогда, когда действительно был добавлен, удален или изменен какой-то файл.