ClamAv непогано справляється з пошуком Шелл і вірусів на сайтах. Одного разу він допоміг мені знайти залитий шелл на сайт з вордпресс. Проблема виявилася в якомусь плагін, але це вже виходить за рамки статті. :)
Перш за все потрібно буде встановити ClamAv:
aptitude install clamav
Після установки обов'язково поновіть вірусні бази, надрукувавши в консолі команду freshclam. З'явиться результат оновлення.
root @ localhost: ~ # freshclam ClamAV update process started at Wed Jul 16 11:08:02 2014 main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo) Downloading daily-19193.cdiff [100%] daily.cld updated (version: 19193, sigs: 1082296, f-level: 63, builder: neo) bytecode.cld is up to date (version: 242, sigs: 46, f-level: 63, builder: dgoddard) Database updated (3506567 signatures) from db.local.clamav.net (IP: 194.186.47.19)
Після закінчення процесу оновлення, можна запустити сканування. Команда проста:
clamscan -i -r / path / to / site
Ключ -i відображає в звіті про перевірку інформацію тільки про заражених файлах.
Ключ -r вкаже сканера, що потрібно сканувати каталоги рекурсивно.
При використанні даної команди, результат сканування буде відображений в консолі. Якщо файлів багато, а стежити за консоллю немає часу (або бажання :)), то можна запустити сканування в оболонці Screen.
У разі необхідності, встановіть його:
aptitude install screen
Запускається сканування в цьому випадку наступним чином:
screen -A -m -d clamscan -i -r -l clamlog.txt
Ключі -A -m -d для screen запускають сесію згорнутої. Для розгортання вікна screen використовується команда screen -r.
Згорнути вікно з процесом сканування можна натисканням сполучення клавіш ctrl + a + d.
Ключ сканера -l, який запише лог сканування в текстовий файл, ім'я якого потрібно вказувати відразу після ключа. Інформація про знайдені вразливості не з'явиться на на екрані консолі при використанні screen, оскільки із завершенням сканування screen також завершує свою роботу.
Можна також просканувати файли зі списку. Для цього потрібно вказати ключ -f і файл, який містить список файлів для перевірки.
Щодо screen!
В консолі:
screen -t namescreen
Створить новий скрін, і автоматично зайде в нього! Що-б вийти не припиняючи його рабооти потрібно натиснути Ctr + A + D
screen -list
Виведе список запущених скроневої: D
Що-б зайти в працюючий скрін потрібно
screen -r 31289.pts-0.namescreen
Тут естейственно id скрін буде друго
Це я до того, що можна не писати результат в файл, а просто напросто періодично заглядати в працюючий screen.
Запущена перевірка в screen не зберігаються результати. Тобто, не вийде зробити по типу «запустив і пішов робити щось інше». Перевірка може закінчитися раніше передбачуваного терміну, а результат буде невідомий, так як screen теж завершить свою роботу. :)
не обов'язково, якщо спочатку створити скрін командою screen -S clam
Після вже у відкритому скрині запустити команду.
В такому випадку все буде ок =)