clamd설치,Sendmail 연동하기

소개
본 문서는 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으로 제한한다. clamd와clamav-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일