# clamd설치 / Sendmail 연동하기
### 들어가는말
안녕하세요, 고니 입니다.
2025년 기준으로 좀 오래된 자료이긴 한데, 몇년전만 해도 꽤 유용했던 자료라 업데이트만 합니다.
sendmail + Clamav로 Email 수/발송시 백신과 연동하는 방안이였고, 지금은 버전들이 전부 업데이트 되어서 시간나면 한번 다시 써볼께요
[](http://igoni.kr/uploads/images/gallery/2025-06/zhGimage.png)
|
perplexity에서 생성한 AI이미지 |
### clamav 설치
1.Sendmail과 연동하기 위한 패키지 설치
```shell
$> yum install -y sendmail-devel
```
1. clam바이너리 다운로드 - [http://sourceforge.net/projects/clamav/files/clamav/0.97.8/clamav-0.97.8.tar.gz](http://sourceforge.net/projects/clamav/files/clamav/0.97.8/clamav-0.97.8.tar.gz)
2. 바이너리 컴파일 & 설치 ```shell
$> tar -zxvf clamav-0.97.8.tar.gz
$> useradd -s /bin/false clamav
$> cd clamav-0.97.8
$> ./configure --prefix=/usr/ --sysconfdir=/etc/ --enable-milter
$> make;make install
```
3. 설정파일 변경 – Freshclam (엔진 업데이트) ```shell
$> $ vi /etc/freshclam.conf
#Example
...
UpdateLogFile /var/log/clamav/freshclam.log
LogTime yes
DatabaseMirror database.clamav.net
NotifyClamd /etc/clamd.conf
SubmitDetectionStats /etc/clamd.conf
...
```
4. 설정파일 변경 – Clamd (Clamav데몬) ```shell
$> vi /etc/clamd.conf
LogFile /var/log/clamav/clamd.log
LogTime yes
LogSyslog yes
PidFile /var/run/clamav/clamd.pid
LocalSocket /var/run/clamav/clamd.sock
FixStaleSocket yes
TCPSocket 3310
TCPAddr 127.0.0.1
StreamMaxLength 100M
User clamav
PhishingSignatures yes
PhishingScanURLs yes
MaxFileSize 30M
```
5. 설정파일 변경 – Milter(SMTP와 연동) ```shell
$> vi /etc/clamav-milter.conf
MilterSocket /var/run/clamav/clamav-milter.sock
MilterSocketMode 666
FixStaleSocket yes
User clamav
PidFile /var/run/clamav/clamav-milter.pid
ClamdSocket unix:/var/run/clamav/clamd.sock
OnClean Accept
OnInfected Quarantine
OnFail Defer
LogFile /var/log/clamav/clamav-milter.log
LogTime yes
```
6. 파일 생성 및 권한 변경 ```shell
$> mkdir /usr/share/clamav
$> cd /var/log
$> mkdir clamav
$> cd clamav
$> touch clamav-milter.log
$> touch clamd.log
$> touch freshclam.log
$> cd /var/run
$> mkdir clamav
$> chown -R clamav.clamav /var/log/clamav
$> chown -R clamav.clamav /var/run/clamav
$> chown -R clamav.clamav /usr/share/clamav
```
7. 엔진 업데이트 & 프로세스 실행 ```shell
$> freshclam
$> /usr/sbin/clamav-milter
```
8. 정상적으로 실행할 경우 ```shell
$> ps -ef | grep clam
clamav 4242 1 0 15:37 ? 00:00:00 clamd
clamav 4251 1 0 15:37 ? 00:00:00 clamav-milter
```
### Sendmail연동
1. /etc/mail/sendmail.mc 파일 열어서 ```shell
$> vi /etc/mail/sendmail.mc
...
INPUT_MAIL_FILTER(`clamav`, `S=local:/var/run/clamav/clamav-milter.sock, F=, T=S:4m;R:4m`)
define(`confINPUT_MAIL_FILTERS`, `clamav`)
...
*따음표(‘) 와 역슬래쉬(`)와 구분해야 되요
```
2. sendmail 서비스는 freshclam 후에 구동되도록 설정이 필요. ```shell
$> chkconfig sendmail off
```
3. 자동으로 엔진업데이트를 하기 위해서는 freshclam 프로세스를 데몬형태로 띄우면 됨(conf파일 정책에 따라 2시간마다 한번씩 업데이트 시도함) ```shell
$> freshclam -d
```
4. /etc/rc.local에 아래 내용 추가 ```shell
$> vi /etc/rc.local
/usr/sbin/clamd /usr/sbin/clamav-milter freshclam -d
$> /etc/init.d/sendmail start
```