커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 보안(security) > 바이러스(virus) / 웜 / 백신 도움말
검색 : 사이트 WHOIS 웹서버 종류


  메일로 들어오는 바이러스 차단 AntiVir Milter 설치 및 운영 작성일 : 2003/08/20 02:55
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 14217
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2003.02.10
    수정일 : 2003.07.21
    정리일 : 2003.08.19
      
    H+BEDV AntiVir는 파일시스템, 메일(AntiVir Milter), 웹(AntiVir WebGate)을 통한
    바이러스를 검사해주는 스캐너이다. 패턴이 업데이트되므로 최신 바이러스까지 검사할수
    있다. Linux, OpenBSD, FreeBSD 등의 OS를 지원한다.
    국내에서도 여러 곳에서 쓰고 있는 것으로 아는데, 설치 및 운영에 대한 글이 한글로
    된 것을 찾기 힘들어(?) 기존에 써뒀던 글을 좀 다듬어 올린다.

    AntiVir는 개인에 한하여 무료로 쓸 수 있는 key를 제공한다.
    1개의 key 파일로
    AntiVir for Linux and FreeBSD, AVMailGate for Linux,
    AntiVir for Linux Workstation, AntiVir Command Line Scanner for Linux
    를 사용할 수 있다.

    1. AntiVir Milter 설치

    http://www.hbedv.com/ -> Downloads (http://www.hbedv.com/download/download.htm)
    에서 AntiVir Milter for Linux (avlxmlt.tgz) 를 받아온다.

    ------------------------------------------
    [root@truefeel root]# tar xvfz avlxmlt.tgz
    [root@truefeel root]# cd antivir-milter-x.y.z  (x.y.z 는 버전)
    ------------------------------------------

    INSTALL 파일을 읽으면 설치 방법이 잘 나와 있으니 참고하기 바란다.

       1) 실행 파일 설치  
      
       ---------------------------------------
       mkdir /usr/lib/AntiVir
       cp bin/avmilter /usr/sbin
       cp script/avq   /usr/lib/AntiVir (AntiVir Milter용 메일큐 관리스크립트)
       ln -s /usr/lib/AntiVir/avq /usr/sbin/avq

       AntiVir for Linux를 설치한적이 없을 경우 다음과 같이 엔진까지 함께 복사
       cp bin/antivir  /usr/lib/AntiVir
       ln -s /usr/lib/AntiVir/antivir /usr/sbin/antivir
       ---------------------------------------

       ※ AntiVir for Linux(Scanner를 말함)는 installer가 제공되어 쉽게 설치할 수 있으며,
          운영중에 AntiVir Milter를 추가 설치가 가능하다.
          저는 하나의 시스템은 AntiVir 운영중에 AntiVir Milter를 추가 설치했고,
          다른 시스템은 AntiVir Milter부터 설치 운영하고 있다.

       2) 패턴 파일(antivir.vdf) 및 환경 파일 설치

       default로 avmilter는 uucp:uucp 권한으로 실행된다.

       ---------------------------------------
       cp vdf/antivir.vdf   /usr/lib/AntiVir
       cp etc/avmilter.conf /etc
       cp etc/antivir.conf  /etc (AntiVir를 설치한 적이 없는 경우)
       ---------------------------------------

       3) 부팅용 스크립트 복사

       ---------------------------------------
       cp init.d/rc.avmilter /etc/rc.d/init.d/avmilter
       chkconfig --add avmilter
       ---------------------------------------

    2. License key 받기

    AntiVir for Linux  Private User Registration ( http://www.hbedv.com/private/ )
    에 각 항목을 입력하면 해당 메일로 라이센스 파일이 온다.
    hbedv.key, lic_info.txt(이 txt파일은 없어도 운영에는 문제가 없지만)를
    /usr/lib/AntiVir 로 복사하고 hbedv.key는 avmgate.key이름으로도 복사한다.

    ------------------------------------------
    cp hbedv.key lic_info.txt /usr/lib/AntiVir (AntiVir를 설치한 적이 없는 경우)

    cp hbedv.key /usr/lib/AntiVir/avmgate.key
    chown uucp:uucp /usr/lib/AntiVir/avmgate.key
    ------------------------------------------

    3. Milter용 메일 스풀 디렉토리 생성
      (/etc/avmilter.conf 에서 경로와 실행 user default값 변경 가능)

    ------------------------------------------
    mkdir /var/spool/avmilter
    cd    /var/spool/avmilter
    mkdir incoming outgoing rejected

    chown -R uucp:uucp /var/spool/avmilter
    chmod -R 700       /var/spool/avmilter
    ------------------------------------------

    4. sendmail.cf 설정

    ------------------------------------------
    # Antivir Milter
    Xavmilter, S=inet:3333@localhost, F=R, T=S:10m;R:10m;E:10m
    O InputMailFilters=avmilter
    ------------------------------------------

    메일을 송수신하게 되면 sendmail은 3333포트의 avmilter에게 전달하고, avmilter는
    바이러스가 없으면 해당 사용자에게 전송하게 된다.  만약 바이러스가 존재하면
    avmilter 큐에 저장을 해두며, 송수신자엑 메일에 바이러스가 있음을 알린다.
    (환경 설정에 따라 알리지 않을 수 있다.)

    5. 실행하기
      
    ------------------------------------------
    /usr/sbin/avmilter -p inet:3333@localhost 또는 /etc/rc.d/init.d/avmilter start
      
    /etc/rc.d/init.d/sendmail restart (sendmail.cf 설정 변경했으므로 재실행 필요)
    ------------------------------------------

    netstat -atnp 로 동작중인지 확인해보자.
      
    ------------------------------------------
    Proto Recv-Q Send-Q Local Address   Foreign Address  State  PID/Program name
    ...
    tcp   0      0      127.0.0.1:3333  0.0.0.0:*        LISTEN 4259/avmilter
    ...
    ------------------------------------------

    /etc/rc.d/init.d/avmilter start 할 때

    can't initialize scan engine

    오류가 발생했다면 /var/tmp 에 쓸 수 있는 권한이 있는지 확인해본다.
    또는 /usr/lib/Antivir/antivir가 정상적으로 복사가 된 것인지도 확인해봐야한다.

    ※ Virus 메일일 때, 송수신자에게 모두 alert 메시지를 보내려면,
       /etc/avmilter.conf 에 다음 항목을 YES로 설정

       VirusAlertToRcpt                 YES
       VirusAlertToSender               YES

       설정 변경 후 반드시 avmilter 를 재실행해야함.

    ※ 패턴이 매일 자동 업데이트 되도록 cron 에 다음을 넣어둔다.

    20 4 * * * /usr/lib/AntiVir/antivir --update -q

    6. 바이러스를 정상적으로 체크하는지 확인하는 방법

       1) eicar 표준 안티바이러스 테스트 파일을 메일로 첨부해서 보내면 된다.
          아래에 옮겨둔 68bytes 를 eicar.com.txt 로 저장한 후 첨부하거나 메시지로 써서
          외부에서 root@호스트명 으로 보낸다.
       X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

       http://www.eicar.org/anti_virus_test_file.htm 에서 eicar.com.txt를 받을 수도 있다.

       2) 만약 postmaster 통해서 다음과 같은 메시지를 받았다면 바이러스를 정상적으로
          검사하고 있다는 의미이다.

    ------------------------------------
    .. 생략 ..
    Subject: AntiVir ALERT [mail from: truefeel <truefeel@???????.net>]
    X-AntiVirus: checked by AntiVir Milter 1.0.4; AVE 6.20.0.1; VDF 6.20.0.43

    * * * * * * * * * * * * * * * AntiVir ALERT * * * * * * * * * * * * * * *
    This version of AntiVir is licensed for private and non-commercial use.

    AntiVir has detected the following in a mail sent through your server:

            Eicar-Test-Signatur

    The mail was not delivered.

    .. 생략 ..
    ------------------------------------

    7. AntiVir Milter용 메일큐 관리

    AntiVir는 avq라는 스크립트를 제공한다.
    ------------------------------------
    [root@truefeel root]# avq

    S ---Queue ID--- --Size-- ---Sender/Recipients-------
    v 06191-3F35903C    12425 <????@??????.?????.kr>
                              <truefeel@????????.net>
    ------------------------------------

    바이러스가 있다고(State가 v) 판단되어 발송이 되지 않고 큐(/var/spool/avmilter)에
    메일이 1개 남아있음을 나타낸다. 필요없는 메일이면 큐를 clear 시킨다.

    ------------------------------------
    [root@truefeel root]# avq --remove=06911-3F35903C
    ctor: /var/spool/avmilter/rejected/vf-06911-3F35903C
    /var/spool/avmilter/rejected/df-06911-3F35903C
    avq: message id '06911-3F35903C' removed.
    AntiVir Milter mail queue is empty.
    [root@truefeel root]#
    [root@truefeel root]# avq
    AntiVir Milter mail queue is empty.
    [root@truefeel root]#
    ------------------------------------

    8. syslog 통해서 남는 로그 (/var/log/maillog)

       1) 실행할 수 없는 예

       Mar 14 19:50:14 free avmilter[19330]: Scan engine is not available - exiting!
       Mar 14 19:50:14 free avmilter[19330]: can't initialize scan engine

       2) avmilter 실행할 때

       Jul 21 22:20:36 truefeel avmilter[5347]: engine version: 6.20.0.1
       Jul 21 22:20:36 truefeel avmilter[5347]: vdf version: 6.20.0.43
       Jul 21 22:20:36 truefeel avmilter[5347]: running in private mode

       3) 메일에 virus가 감지될 때 (/var/log/maillog)

       Jul 21 22:24:08 truefeel avmilter[5405]: Alert! the file "/var/tmp/av-05405-jfej1c/av-1" contains "W32/Nimda.eml" virus
       Jul 21 22:24:08 truefeel avmilter[5405]: Potential malicious code has been found - mail will be rejected.

       4) 메일에 virus 감지될 때 antivir (/var/log/messages)

       Jul 21 22:28:35 truefeel antivir[5535]: AntiVir ALERT: [W32/Nimda.eml virus] /var/tmp/av-05531-oMFI2L/av-1 <<< Contains code of the Windows virus W32/Nimda.eml

    9. AntiVir 로 파일시스템의 바이러스 검사

    /usr/sbin/antivir 로 링크도 해뒀으니 바이러스 검사도 쉽게 할 수 있을 것이다.

    사용자 홈 디렉토리만 검사를 해보자.
    --allfiles 옵션은 모든 파일을, -s는 서브 디렉토리까지 검사하라는 것이다.
    만약 link를 따라 검사하기를 원하지 않으면 -nolnk 까지 추가해서 하면 된다.

    ------------------------------------
    [root@truefeel root] antivir --allfiles -s /home

    AntiVir / Linux Version 2.0.7-41
    Copyright (C) 1994-2003 by H+BEDV Datentechnik GmbH.
    All rights reserved.  

    Loading /usr/lib/AntiVir/antivir.vdf ...                                                                                  

    VDF version: 6.20.0.43 created 18 Jul 2003                                                                                

    For private, non-commercial use only.
    AntiVir license: ?????????? for Jinho ????????, ??????

    \ /home/oracle/oui/bin/linux/libclntsh.so.9.0
    ------------------------------------

    검사가 완료되면 다음과 같이 표시해준다.

    ----- scan results -----
    directories:     1017
           files:     5193
          alerts:        0
       scan time: 00:00:46
    ------------------------
    Thank you for using AntiVir.

    삼바(samba)로 윈도 시스템과 공유를 할 때 antivir는 위력을 발휘할 것이다.
    저는 파일서버로 운영중인 Network Drive(자체 OS, SMB 지원하는)장비를 검사하는데
    antivir가 큰 도움이 되었다.

    10. 맺음말

    운영중에 문제가 생기면  
    AntiVir MailGate Linux FAQ and Answers ( http://www.hbedv.com/support/mailgatefaq_e.htm )
    가 도움이 될 것이다.
      커피닉스 카페 최근 글
    [06/16] [질문]SAN 스위치 브로드케이드 dcx8510-4 장비관련입니다.
    [04/22] Re: 영화속에 컴퓨터 이야기 ~스워드피쉬(2001)
    [10/20] Cross Compiler 깔
    [07/14] SSL АО
    [04/26] Re: 도스화면 원격조종 여부
    [04/25] 도스화면 원격조종 여부
    [10/30] Cshell에서 난수 설정
    [10/23] 공항철도주식회사 SE 구인 件
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~