Mac OS X용 비그래픽 ClamAV 안티바이러스 솔루션
저는 이 글을 훌륭한 ClamXav의 무료 대안으로 작성했습니다. MacClam은 실시간 디렉터리 모니터링을 설정하고 정기적인 검색을 예약합니다. ClamAV를 안티바이러스 엔진으로 사용하고 fswatch를 사용하여 디렉터리에서 새 파일이나 변경된 파일을 적극적으로 모니터링한 다음 검색을 위해 clamd로 보냅니다. 주기적 전체 검사는 cron을 통해 예약됩니다. 또한 명령줄에서 필요에 따라 개별 파일이나 디렉터리를 검색하는 방법도 제공합니다.
Mojave(macOS 10.14)에서 MacClam을 테스트했습니다. 하지만 다른 버전의 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
소스에서 ClamAV 및 fswatch의 최신 버전을 빌드하여 MacClam을 부트스트랩합니다. 일주일에 한 번 전체 파일 시스템 검사를 예약하고 하루에 한 번 서명을 업데이트합니다. 또한 $HOME 및 /Applications 디렉터리에 대한 실시간 모니터링을 설정합니다. 이러한 각 항목은 스크립트 변수를 수정하고 스크립트를 다시 실행하여 구성할 수 있습니다.
기본적으로 설치 디렉터리는 ~/MacClam
입니다. 이 디렉터리에는 모든 소스, 바이너리, 로그 파일 및 격리 폴더가 포함되어 있습니다. 이 디렉터리 외부에 있는 설치의 유일한 아티팩트는 MacClam이 작동하는 데 필요한 crontab과 MacClam.sh
스크립트 자체입니다. 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를 중지합니다. crontab에서 MacClam 항목을 제거합니다. 격리 디렉터리를 MacClam 설치 디렉터리에서 ~/MacClam_quarantine으로 이동합니다. 여기에 원하는 내용이 있는 경우를 대비합니다. clamav 및 fswatch가 포함된 MacClam 설치 디렉터리를 삭제합니다. MacClam.sh 파일은 삭제되지 않으며, MacClam을 다시 실행하여 재설치할 수 있습니다.
예약된 검사, 모니터링 및 설치 위치는 스크립트 시작 부분에서 구성 변수를 편집한 다음 스크립트를 다시 실행하여 변경 사항을 적용하여 구성할 수 있습니다.
MacClam.sh는 매우 간단한 인터페이스, 즉 하나의 명령으로 모든 작업을 수행하도록 설계되었습니다. 이는 멱등성(idempotent)입니다. 즉, 모든 것이 올바르게 설정되고 서비스가 실행 중인 경우 MacClam.sh를 다시 실행해도 아무 작업도 수행되지 않습니다. 구성 변수에 변경 사항이 있으면 적용되었는지 확인하고 필요에 따라 서비스를 다시 시작합니다.
MacClam은 세 가지 유형의 스캔을 수행합니다.
활성 모니터링: MacClam은 활동을 위해 지정한 모든 디렉터리를 모니터링합니다. 파일이 변경되거나 생성되면 즉시 검사됩니다. 기본적으로 $HOME 및 애플리케이션 디렉토리가 모니터링됩니다.
예약된 검색: MacClam은 예약된 시간에 디렉터리의 재귀 검색을 수행합니다. 기본적으로 전체 하드 드라이브는 일주일에 한 번 검사됩니다. 스케줄링은 cron을 사용하여 수행됩니다.
주문형 검색: 하나 이상의 파일 또는 디렉터리 인수를 사용하여 MacClam.sh
실행하면 지정된 파일 또는 디렉터리가 검색됩니다.
모든 경우에 바이러스가 발견되면 격리 폴더로 이동됩니다. 활성 모니터링의 경우 바이러스가 식별되면 오른쪽 상단에 간단한 그래픽 알림이 표시됩니다.