Используя в повседневности Web-ориентированный клиент rtorrent на домашней системе призадумался. А что же получается, я скачиваю файлы они сохраняются ко мне в систему, позже я их копирую (преимущественно книги, аудиофайлы) для последующего изучения как на планшетник или мобильник дабы не терять то драгоценное время которое порой попусту проедается когда жду транспорт утром, еду в нем, возвращаюсь обратно, даже обед на работе частенько становится тем часом когда можно отдохнуть отвлекшись от рабочей суеты за прослушиванием какой-либо увлекательной книги. А потому, ведь системы на этих устройствах отличаются от моей основной — Ubuntu 12.04.5 Desktop amd64 – планшетник на Android, смартфон тоже на Android, а рабочий комп — стандарт де-факто Windows. И просто я же могу попросту не неся злой умысел подсадить к себе вирус, кейлоген, троянскую программу да и просто какой-либо зловред. Поэтому хоть и не бывает на системе Ubuntu вирусов, заразить то ее поставляемую из коробки да к тому же настроенную ой как не просто, а вот что с файлами перенесенными в другое место? Но на эту задачу есть решение, в репозитариях поставляемых совместно с Ubuntu входит утилита ClamAV – это набор различных утилит: демон, сканер с использованием командной строки (это я люблю) и конечно же утилита для автоматического получения новых баз содержащих все новые и новые сигнатуры по которым происходит распознавание нежелательных элементов.
Отличительные черты антивируса ClamAV:
Поддержка командной строки
Соответствие популярным почтовым форматам (используется на почтовых шлюзах)
- Провека различных архивных файлов: Zip, RAR, Dmg, Tar, Gzip, Bzip2, OLE2, Cabinet, CHM, BinHex, SIS and others
- Проверка исполняемых файлов ELF executables and Portable Executable files packed with UPX, FSG, Petite, NsPack, wwpack32, MEW, Upack and obfuscated with SUE, Y0da Cryptor and others
- Проверка популярных офисных форматов: MS Office and MacOffice files, HTML, Flash, RTF and PDF
Установка в систему проста как никогда:
ekzorchik@srv-serv:~$ sudo apt-get install clamav clamav-daemon clamav-freshclam clamfs -y
Установленная версия:
ekzorchik@srv-serv:~$ clamscan --version
ClamAV 0.98.5/20025/Tue Feb 3 20:53:01 2015
Пояснение по утилитам входящим в состав пакета clamav:
- clamav-getfiles – Update script for clamav
- clamav – antivirus scanner for Unix
- clamav-base – base package for clamav, an anti-virus utility for Unix
- clamav-daemon – antivirus scanner daemon
- clamav-data – clamav data files
- clamav-docs – documentation package for clamav, an anti-virus utility for Unix
- clamav-freshclam – downloads clamav virus databases from the Internet
- clamav-milter – antivirus scanner for sendmail
- clamav-testfiles – use these files to test that your Antivirus program works
- clamav-dbg – debug symbols for clamav
Следующее действия это привести установленную антивирусную базу в обновленное состояние:
ekzorchik@srv-serv:~$ sudo freshclam
ClamAV update process started at Tue Feb 3 20:35:58 2015
и далее пошел процесс обновления, который через некоторое время успешно завершился.
Что теперь?
Чтобы просканировать всю систему полностью и файлы (и директории) на других файловых системах, попросту говоря смонтированных сетевых ресурсах:
ekzorchik@srv-serv:~$ sudo clamscan / --recursive=yes --cross-fs=yes
(На заметку: если не указать где производить сканирование, то по умолчанию сканирование будет произведено в домашнем каталоге текущего пользователя)
Если же не хочется смотреть на консоль когда антивирус проходит по всем файлам, то можно задать специальную опцию с целью показа только тех файлов которые имеют место быть зараженными:
ekzorchik@srv-serv:~$ sudo clamscan / -i --recursive=yes --cross-fs=yes
Проверить конкретный файл:
ekzorchik@srv-serv:~$ cat /etc/passwd | clamscan -
stdin: OK
———– SCAN SUMMARY ———–
Known viruses: 3736523
Engine version: 0.98.5
Scanned directories: 0
Scanned files: 1
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 7.586 sec (0 m 7 s)
Проверить конкретный файл и в случае обнаружения инициализировать звуковой сигнал:
ekzorchik@srv-serv:~$ clamscan -i --bell
В обычном режиме программа просто сообщает о найденном вирусе. Используя дополнительные ключи, можно выполнить следующие действия: удалить вирус (--remove
), переместить (--move=путь
) или скопировать (--copy=путь
) файлы в другой каталог.
Подключаю логический диск к каталогу для проверки антивирусом из под Ubuntu:
ekzorchik@srv-serv:~$ sudo mkdir /media/smb
ekzorchik@srv-serv:~$ sudo apt-get install smbfs -y
ekzorchik@srv-serv:~$ sudo smbmount //192.168.1.41/c$ /media/smb -o username=ekzorchik,<мой_пароль_к_windows_станции>
либо
ekzorchik@srv-serv:~$ sudo mount -t cifs //192.168.1.41/c$ /media/smb -o username=ekzorchik,<мой_пароль_к_windows_станции>
Запускаю сканирование каталога download на станции Windows, пройти по всем файлам и каталогам, нежелательные элементы удалять, отчет вывести в каталог пользователя ekzorchik в файл Log_scan.txt:
ekzorchik@srv-serv:~$ sudo clamscan /media/smb/download/ -i --recursive=yes --cross-fs=yes --remove —log=/home/ekzorchik/log_scan.txt
а вот и первые результаты по обнаружению нежелательных элементов:
- /media/smb/download/InstallScript/InstallScript/UP/Addons/1-MSXML4/Files/ForceCopy/SVCPACK/MSXML4.EXE: Win.Trojan.Agent-30620 FOUND
- /media/smb/download/InstallScript/InstallScript/UP/Addons/1-MSXML4/Files/ForceCopy/SVCPACK/MSXML4.EXE: Removed.
Как видно наглядно процесс идет и он непоколебим.
…
Также в процессе сканирования будут полезны опции задающие правила сканирования, т. е. Задавание какие каталоги следует пропистить при сканировании, а какие наоборот включить. Делается это с помощью опций:
—exclude → исключить из процесса сканирования (к примеру каталоги: /sys & /proc & dev
ekzorchik@srv-serv:~$ sudo clamscan -ri --exclude-dir=^/sys\|^/proc\|^/dev/ / --log=/home/ekzorchik/log_scan.txt
–include → добавить в процесс сканирования
Как и у большинства различных антивирусов clamav не обделен и расширенными настройками, за настройку отвечает конфигурационный файл: clamd.conf расположение которого легко узнается посредством команды:
ekzorchik@srv-serv:~$ sudo find / -name clamd.conf
/etc/clamav/clamd.conf
следует заменить, что настройки в нем к сожалению не отражают всех перечисленных, потому как некоторые уже заранее заложены, как дефолтные и повторять их еще раз в файле кажется разработчикам излишне, чтобы отобразить все действущие делаем так:
ekzorchik@srv-serv:~$ clamconf
…
Откуда же берется вывод действующих настроек, а все просто задействуются такие конфигурационные файлы, как: clamd.conf & freshclam.conf
ekzorchik@srv-serv:~$ sudo find / -name freshclam.conf
/etc/clamav/freshclam.conf
Для более подробной информации по опциям советую почитать справку по утилите clamav. (man clamav)
Чтобы каждый раз не запускать clamav на сканирование системы с целью проверки, а не подцепили ли Вы что-либо или проверить, что каталог со скачанными файлами из torrent выдают себя за те которые Вы скачать, можно настроить соответствующее задание на периодичность, к примеру раз час или как Вам лучше в зависимости от Ваших потребностей:
ekzorchik@srv-serv:~$ sudo nano /etc/cron.hourly/clamscan_download
#!/bin/bash
SCAN_DIR="/media/smb"
LOG_FILE="/var/log/clamav/clamscan_download.log"
/usr/bin/clamscan -ri --remove $SCAN_DIR >> $LOG_FILE
Сохраняем внесенные изменения, назначаем созданному файлу права на запуск:
ekzorchik@srv-serv:~$ sudo chmod +x /etc/cron.hourly/clamscan_download
Можно на всякий случай перезапустить службу cron:
ekzorchik@srv-serv:~$ sudo service cron stop
cron stop/waiting
ekzorchik@srv-serv:~$ sudo service cron start
cron start/running, process 4682
Теперь каждый час будет производиться сканирование каталога где у меня располагаются скачанные torrent файлы, но как я заметил выше данная периодичность достигается индивидуально.
Прекратить выполнение задания, снимает исполняемый атрибут:
ekzorchik@srv-serv:~$ sudo chmod -x /etc/cron.hourly/clamscan_download
Также можно сделать по другому сделать задание но уже запуск назначить на конкретное время в течение дня,недели,месяца,года:
ekzorchik@srv-serv:~$ sudo mkdir /etc/clamav/script
ekzorchik@srv-serv:~$ sudo nano /etc/clamav/script/download
/usr/bin/clamscan -ri --remove --exclude-dir=^/sys\|^/proc\|^/dev /media/smb/download | mail -s "ClamAV scan Result for 'date +%d'" support@ekzorchik.ru
ekzorchik@srv-serv:~$ sudo chmod +x /etc/clamav/script/download
Запускать скрипт каждый день в девять часов вечера:
ekzorchik@srv-serv:~$ sudo crontab -e
0 21 * * * /etc/clamav/script/download
Сохраняем внесенные изменения:
crontab: installing new crontab
Что еще хочется отметить, можно сделать также задание но уже более расширенное с возможность отправки отчета о проделанной операции на почту. Для этих целей к примеру подойдет скрипт имеющий место быть опубликованным в этой заметке.
- https://hacking.im/automated-clam-antivirus-scanning-for-centos-servers
- https://forum.transmissionbt.com/viewtopic.php?f=1&t=15665
Просто берем его и адаптируем под свои задачи — это гораздо проще использовать уже что-то написанное чем создавать все с нуля и проходить все грабли.
Но чтобы почта отправлялась в системе должен быть настроен MTA агент от имени какого почтового ящика инициализировать отправку, к примеру за шагами настройки можете обратиться на мой блог к заметке.
Не знаю, чтобы еще такого показать для антивируса, скажу лишь одно — не обязательно гнаться за известными на слуху антивирусами, уже давно имеющееся и хорошо себя зарекомендовавшее присутствующее в репозитариях утилита clamav может применяться для повседневных задач столь же качественно как и другие. Clamav хорош бесплатностью и универсальностью, способностью комбинироваться и подстраиваться под нужды пользователя/администратора на системе Ubuntu. Меня он в полной мере устраивает всем.