오픈솔라리스는 CIFS 와 NFSv4 클라이언트에 의해 접근되는 파일들의 바이러스 스캐닝을 활성화 할 수 있는 기능을 포함하고 있습니다. OpenSolaris Project: VSCAN Service Home Page 에서 자세한 내용을 확인하실 수 있습니다. 스캐닝 모델은 이 글 에서 토론된 바와 유사하게 파일들이 (ICAP 프로토콜 을 이용해서) 외부의 안티바이러스 소프트웨어를 실행하고 있는 서버로 보내져서 스캔됩니다. NAS 환경의 일반적인 모델입니다.
이 글 과 같이 오픈솔라리스 CIFS 서버를 설정한 다음에 필자는 이 서비스들을 실험해 보고 싶었습니다. 썬에서 필자의 업무중 하나는 안티 바이러스 소프트웨어를 NAS 제품들에 인증 하는 것입니다. 그러므로 이러한 종류의 테스트에는 아주 익숙합니다.
필자는 썬 파이어 X4500 에 솔라리스 네바다 빌드86 버전을 이용하였습니다.
root@isv-x4500b # uname -a
SunOS isv-x4500b 5.11 snv_86 i86pc i386 i86pc
거의 대부분 커맨드를 있는 그대로 사용했지만 종종 필드들을 변경해줘야 할 때가 있었습니다.
필자는 시만텍 스캔 엔진 버전 5.1 을 윈도우 서버(호스트이름: scanengine) 에 설치 해서 적절한 스캐닝 서비스를 제공하도록 하였습니다. 시만텍 스캔 엔진은 ICAP 프로토콜 인터페이스를 표준으로 제공하고 있었고 그러므로 오픈솔라리스 VSCAN 서비스를 활성화 함으로써 서버와 통신할 수 있었습니다.
필자는 시만텍 스캔 엔진을 "Scan Only" 모드로 설정함으로써 오직 파일이 감염되었는지 아닌지 만을 통지하도록 하였습니다. 즉 감염 파일을 치료하려고 시도하지 않을 것입니다(바이러스를 삭제하지도 않을 것임). VSCAN 서비스의 응답이 파일이 감염되었는지의 여부를 알려주고 파일에 속성을 설정하여 파일이 감염되었음을 알림으로써 접근이 거부 되도록 합니다.
VSCAN 서비스는 vscanadm 커맨드에 의해 관리 됩니다. vscan 서비스 데몬 vscand 은 스캔엔진과 상호작용하여 파일을 스캔 합니다; 파일의 내용을 ICAP 프로토콜을 이용해서 스캔 엔진에 전송 합니다.
필자는 ZFS 파일 시스템의 share 인 tank/cifs2 에 존재하는 cifs2 라고 불리는 CIFS share 에 바이러스 스캐닝을 활성화 하려고 합니다. 절차는 다음과 같습니다:
1. VSCAN 서비스 활성화
root@isv-x4500b # svcadm enable vscan
root@isv-x4500b # svcs vscan
STATE STIME FMRI
online 7:38:08 svc:/system/filesystem/vscan:icap
2. ZFS 파일 시스템에 바이러스 스캐닝 활성화 하기
root@isv-x4500b # zfs set vscan=on tank/cifs2
주의: 다음의 단계들에서 여러분은 안티 바이러스 소프트웨어 서버 이름인 scanengine 을 여러분의 상황에 맞게 변경해 주어야 합니다.
3. 스캔 엔진 추가하기
root@isv-x4500b # vscanadm add-engine scanengine
root@isv-x4500b # vscanadm get-engine scanengine
scanengine:enable=on
scanengine:host=scanengine
scanengine:port=1344
scanengine:max-connection=32
주의: 포트 1344 는 ICAP 의 기본값이고 변경될 수 있습니다. 만약 변경했다면 안티 바이러스 소프트웨어가 사용하는 포트도 변경해주어야 합니다.
4. 선택 단계 - 스캔을 위해 보내질 파일의 최대 사이즈 설정하기
대용량 파일을 스캔 하는것은 비효율적입니다. 여기서 우리는 스캔된 파일의 최대 사이즈를 100MB 로 지정하였습니다. 만약 파일이 100MB 가 혹은 그 이상이라면 여러분은 접근을 허용하거나 거절하는 두가지 옵션을 선택할 수 있습니다: 두가지 경우 모드 파일은 스캔되지 않습니다.
root@isv-x4500b # vscanadm set -p max-size=100M
root@isv-x4500b # vscanadm set -p max-size-action=deny
root@isv-x4500b # vscanadm show
max-size=100M
max-size-action=deny
types=+*
scanengine:enable=on
scanengine:host=scanengine
scanengine:port=1344
scanengine:max-connection=32
5. 선택 단계 - 스캔될 파일 종류의 목록 수정하기
기본적으로 모든 파일 종류들이 스캔됩니다. 여기서 우리는 "jpg" 로 끝나는 파일들을 스캔 대상에서 제거 합니다.
root@isv-x4500b # vscanadm set -p types=-jpg,+*
root@isv-x4500b # vscanadm show
max-size=10M
max-size-action=deny
types=-jpg,+*
scanengine:enable=on
scanengine:host=scanengine
scanengine:port=1344
scanengine:max-connection=32
6. 스캐닝이 동작하는지 확인하기
여러분들은 EICAR 에서 바이러스 스캐너를 테스트하기 위한 파일들을 얻으실 수 있습니다. 파일들은 스캐너들에게는 바이러스로 보이지만 사용해도 안전한 파일들입니다.
필자는 cifs2 share 를 윈도우 서버에서 마운트 하였고 share 상에 몇몇 파일들과 폴더들을 성공적으로 생성하였습니다. 그 다음에 EICAR 파일들을 윈도우 서버의 비보호되고 있는 드라이브에서 share 로 드래그앤 드롭 하였습니다. share 상에 EICAR 파일을 열려고 시도했을때 접근이 거절 되었습니다.
아래와 같은 메세지가 시스템 로그에 나타 났습니다.
Apr 9 08:13:09 isv-x4500b vscand: [ID 540744 daemon.warning] quarantine /tank/cifs2/eicar.com.txt 11101 - EICAR Test String
오픈솔라리스를 운용중인 서버로 돌아가서 실질적으로 파일이 스캔되었는지 아래와 같이 확인 하였습니다.
root@isv-x4500b # vscanadm stats
scanned=13
infected=6
failed=0
scanengine:errors=0
파일들이 스캔되었고 어떠한 스캔 에러도 존재하지 않았습니다!
마지막으로 시만텍 스캔 엔진 GUI 의 통계를 확인하여 파일이 스캔되었었는지 다시한번 확인해 보았습니다. 참고로 아래의 숫자는 위의 vscanadm 의 숫자와는 매치되지 않는데 왜냐하면 스크린샷이 시간 간격을 두고 캡춰되었기 때문입니다.

감연된 파일에 대한 접근이 거부 되었습니다. 왜냐하면 제거 비트가 설정되었기 때문입니다. 여러분은 제거(quarantine) 비트 q 를 아래와 같이 확인하실 수 있습니다.
root@isv-x4500b # ls -/c eicar.com.txt
----------+ 1 2147483649 2147483650 68 Apr 9 08:13 eicar.com.txt
{A------mq-}
추가 정보
OpenSolaris Project: VSCAN Service Home Page
이 글의 영문 원본은
Configuring the OpenSolaris Virus Scanning Services for ZFS Accessed via CIFS and NFSv4 Clients
에서 보실 수 있습니다.
"오픈솔라리스" 카테고리의 다른 글
- 오픈솔라리스에 썬 웹 스택 설치하기 (댓글 0개 / 트랙백 0개) 2008/10/21
- 오픈솔라리스의 빌드와 설치 (Part 2) (댓글 1개 / 트랙백 0개) 2006/03/23
- VMWare를 이용하여 오픈솔라리스 시작하기 (댓글 1개 / 트랙백 0개) 2006/06/23
- 향상된 리소스 관리 및 존 통합 (댓글 0개 / 트랙백 0개) 2008/06/16
- FAQ: Common Development and Distribution Licens... (댓글 13개 / 트랙백 1개) 2007/08/20
- Indiana 란 무엇이고 어떻게 참여할 수 있나요? (댓글 0개 / 트랙백 0개) 2008/04/17
- 오픈 솔라리스를 위한 무선 네트워킹 (댓글 1개 / 트랙백 0개) 2006/01/23
- 오픈 소프트웨어에 대한 발상의 전환이 필요하다. (댓글 0개 / 트랙백 0개) 2007/12/05
- OpenSolaris 코드 브라우저를 이용하여 코드베이스 탐색하기 (댓글 1개 / 트랙백 1개) 2005/09/23
- Inside OpenSolaris: Introduction to Solaris Dri... (댓글 1개 / 트랙백 0개) 2005/10/23
댓글을 달아 주세요