콘텐츠로 이동






clamd설치,Sendmail 연동하기

back

소개

본 문서는 Sendmail과 ClamAV Milter를 연동하여 SMTP 단계에서 수신·발신 메일 및 첨부 파일을 악성코드 검사하는 구성에 대한 과거 기록이다.

ClamAV 0.97.8 및 CentOS 5/6 계열 환경은 모두 지원이 종료되었으므로 현재 운영 환경에 그대로 적용하면 안 된다.

신규 구축 시에는 지원 중인 Linux 배포판과 최신 ClamAV 패키지를 사용하고, TLS, SMTP 인증, SPF, DKIM, DMARC, 스팸 차단 정책을 함께 구성한다.

구성 흐름

FreshClam → clamd → clamav-milter → Sendmail
  • freshclam: 바이러스 정의 데이터베이스 업데이트
  • clamd: 바이러스 검사 데몬
  • clamav-milter: Sendmail과 clamd 사이의 milter 연동 모듈
  • sendmail: SMTP 메일 송수신 서버

Sendmail 개발·설정 패키지 설치

Sendmail milter 연동 및 sendmail.mc 설정 파일 생성을 위해 필요한 패키지를 설치한다.

# yum install -y sendmail sendmail-devel sendmail-cf m4

ClamAV 설정 시 주의 사항

  • 소스 컴파일보다 배포판의 최신 ClamAV 패키지 사용을 우선한다.
  • 불필요한 TCP 3310 포트 노출 대신 Unix socket을 사용한다.
  • milter socket 권한은 0660으로 제한한다.
  • clamdclamav-milter를 먼저 시작한 후 Sendmail을 시작한다.
  • sendmail.mc 변경 후 반드시 sendmail.cf를 생성하고 Sendmail을 재시작한다.
  • EICAR 테스트 문자열을 사용해 탐지·차단·격리 정책이 의도대로 동작하는지 검증한다.

Sendmail Milter 설정

/etc/mail/sendmail.mc 파일에 다음을 추가한다.

INPUT_MAIL_FILTER(`clamav',
    `S=local:/run/clamav/clamav-milter.sock,
    F=T,
    T=S:4m;R:4m;E:10m')dnl

define(`confINPUT_MAIL_FILTERS', `clamav')dnl

설정을 반영한다.

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# service sendmail restart

동작 확인

ClamAV 관련 프로세스를 확인한다.

# ps -ef | egrep 'clamd|clamav-milter|freshclam'

Sendmail 로그와 ClamAV 로그를 확인한다.

# tail -f /var/log/maillog
# tail -f /var/log/clamav/clamd.log
# tail -f /var/log/clamav/clamav-milter.log

EICAR 테스트 문자열로 바이러스 탐지 정책을 검증한다.

# printf '%s\n' \
'X5O!P%%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' \
| sendmail -v test@example.com

EICAR 문자열은 실제 악성코드가 아닌 보안 제품 탐지 기능 검증용 표준 테스트 문자열이다. 테스트 전송 대상, 반송 정책, 격리 정책을 사전에 확인한다.







작성일: 2026년 7월 15일 ,  마지막 업데이트: 2026년 8월 13일