Неграфическое антивирусное решение ClamAV для Mac OS X
Я написал это как бесплатную альтернативу отличному ClamXav. MacClam настраивает мониторинг каталогов в реальном времени и планирует периодические сканирования. Он использует ClamAV в качестве антивирусного механизма и fswatch для активного отслеживания каталогов на предмет новых или измененных файлов, которые затем отправляются в clamd для сканирования. Периодические полные проверки планируются с помощью cron. Он также предоставляет возможность сканировать отдельные файлы или каталоги по запросу из командной строки.
Я протестировал MacClam на Mojave (macOS 10.14). но это может работать и в других версиях macOS.
Вам потребуются инструменты командной строки Apple Xcode, которые можно установить с помощью
xcode-select --install
Затем нажмите «Установить». После установки инструментов командной строки, если вы используете Mojave, вам также потребуется установить пакет заголовков macOS с помощью
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
Установка очень проста. После установки необходимых инструментов введите в терминале следующую команду.
curl -O https://raw.githubusercontent.com/killdash9/MacClam/master/MacClam.sh chmod +x MacClam.sh ./MacClam.sh
Это запустит MacClam путем сборки последних версий ClamAV и fswatch из исходного кода. Он будет планировать полное сканирование файловой системы раз в неделю и обновлять сигнатуры раз в день. Он также настраивает мониторинг в реальном времени для каталогов $HOME и /Applications. Каждую из этих вещей можно настроить, изменив переменные сценария и перезапустив сценарий.
По умолчанию каталог установки — ~/MacClam
. Этот каталог содержит все исходные файлы, двоичные файлы, файлы журналов и папку карантина. Единственным артефактом установки за пределами этого каталога является файл crontab и сам сценарий MacClam.sh
, который необходим для работы MacClam. Если вы хотите переместить сценарий MacClam.sh
в другое место, просто запустите его повторно из нового места, и ссылки в crontab будут обновлены. Его можно полностью удалить, запустив ./MacClam.sh uninstall
.
./MacClam.sh
делает следующее:
При необходимости собирает clamd и fswatch из исходного кода.
Настраивает регулярное обновление сигнатур и полное сканирование в crontab.
Обновления подписей clamd
Запускает службы активного мониторинга clamd и fswatch, если они еще не запущены.
Устанавливает активный мониторинг для запуска при запуске (также делается в crontab)
При запуске с терминала он покажет любую текущую активность сканирования.
Следующая команда
./MacClam.sh /path/file_or_directory ...
выполняет все ранее перечисленное, а затем запускает clamscan для файлов или каталогов. Можно указать несколько файлов или каталогов.
./MacClam.sh quarantine
Открывает папку карантина в Finder. По умолчанию это ~/MacClam/quarantine
./MacClam.sh help
Отображает справочное сообщение.
./MacClam.sh uninstall
Удаляет MacClam. Точнее, останавливает clamd и fswatch. Он удаляет записи MacClam из crontab. Он перемещает каталог карантина из каталога установки MacClam в ~/MacClam_quarantine на тот случай, если там что-то вам понадобится. Он удаляет каталог установки MacClam, содержащий clamav и fswatch. Файл MacClam.sh не удаляется, и вы можете переустановить MacClam, запустив его еще раз.
Запланированные сканирования, мониторинг и место установки можно настроить, отредактировав переменные конфигурации в начале сценария, а затем снова запустив сценарий, чтобы применить изменения.
MacClam.sh имеет очень простой интерфейс — одна команда для всего. Он идемпотентен, то есть повторный запуск MacClam.sh ничего не даст, если все настроено правильно и службы работают. Если в переменных конфигурации произойдут изменения, он обеспечит их применение и при необходимости перезапустит службы.
MacClam выполняет три типа сканирования:
Активный мониторинг: MacClam будет отслеживать активность любых указанных вами каталогов. При изменении или создании файла он будет проверен немедленно. По умолчанию отслеживаются каталоги $HOME и Applications.
Сканирование по расписанию: MacClam будет выполнять рекурсивное сканирование каталогов в запланированное время. По умолчанию весь жесткий диск сканируется один раз в неделю. Планирование осуществляется с помощью cron.
Сканирование по требованию. Запуск MacClam.sh
с одним или несколькими аргументами файла или каталога будет сканировать указанные файлы или каталоги.
Во всех случаях при обнаружении вируса он перемещается в папку карантина. Для активного мониторинга при обнаружении вируса в правом верхнем углу отображается краткое графическое уведомление.