sendmail.cf 파일의 설정
1. 로컬호스트 도메인(최종수신지로의 설정 위해) 내용을 담는 파일 지정
Fw/etc/mail/local-host-names
(구버전의 경우 /etc/sendmail.cw )
2. 가상메일 설정 파일 지정
Kvirtuser hash -o /etc/mail/virtusertable
3. 메일 접근/차단 목록 파일 설정
Kaccess hash -o /etc/mail/access
4. 메일 장애시 보내는 사람이름 설정
DnMAILER-DAEMON
5. sendmail 버전설정
DZ8.14.3
여기서 설정된 버전설정은 SMTPgreetingMessage 설정에서 &Z 값으로 사용된다.
6. 메일별칭 파일 설정
O AliasFile=/etc/mail/aliases
7. 발송메일의 최대크기 제한설정
O MaxMessageSize=10000000
(10000000바이트=10메가바이트 로 제한한다는 설정)
8. 한번에 받을 수 있는 한 수신메일의 최대 크기 설정
Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL,
R=EnvToL/HdrToL, M=2048000, T=DNS/RFC822/X-Unix, A=procmail -Y -a $h -d $u
기본설정에서 빠져있는 부분이므로 이 부분을 추가시켜준다. (2메가바이트)
bible이라는 사용자에게 도착한 메일이 있을 경우 MDA가 이 메일을 받아서 /var/spool/mail/bible 파일에 저장한다. 이 때 받은 메일 한건 한건에 대하여 MDA가 /var/spool/mail/bible 파일에 저장하는 한건 한건의 용량을 제한하는 설정../var/spool/mail/bible 파일의 전체용량 제한설정이 아님을 유념할것...
9. sendmail을 백그라운드로 실행
O DeliveryMode=background
interactivity :: mqueue에 있는 메일들을 동기화하는 모드로 메일을 전송
background :: mqueue에 있는 메일들을 비동기화하는 모드로 메일을 전송 (백그라운드모드)
queue :: 메일을 수신하여 메일큐에 저장
defer :: 메일을 수신하여 최대한 빨리 메일큐에 저장
10. 최대 홉 수 제한설정(MaxHopCount)
O MaxHopCount=25
최종수신지 서버까지 도착하기까지 거쳐가는 메일서버 갯수, 이 값의 최대값을 설정하고 이 최대값까지 라우팅을 했음에도 불구하고 최종수신지까지 도착하지 못하였다면 그 메일은 루프메일이거나 존재하지 않는 사용자를 최종수신지로 하는 메일로 인정하게 되어 그 메일을 최초 수신지 서버로 리턴하게 된다.
11. .forward 파일 위치설정
O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
특정메일주소로 도착한 메일을 다른 메일주소로 포워딩(전달)하기 위해 설정되는 파일..
일반적으로 포워딩은 각 계정의 홈디렉토리에 ".foward"라는 파일을 만들어서 이 파일에 특정 메일주소를 입력해두면 그 메일주소로 다시 포워딩하게 된다.
12. 로그기록레벨 설정
O LogLevel=9
sendmail의 로그파일은 /var/log/maillog 이다. (/etc/syslog.conf 파일에서 변경가능)
로그기록레벨 |
설 명 |
0 |
sendmail 작동에 관한 최소한의 정보만 기록 |
1 |
메일처리에 심각한 에러발생 또는 보안정보를 기록 |
2 |
메일처리시 네트워크 에러나 접근 실패의 경우 기록 |
3 |
메일처리시 DNS Lookup 실패 및 존재하지 않는 주소, forward 처리에 timeout 발생등에 따른 접속실패 등을 기록 |
4 |
메일처리시에 tcp_wrapper 에 의한 접속거부 발생시에 기록 |
5 |
수신메일의 레코드를 기록 |
6 |
vrfy 명령에 의한 사용자정보를 위한 접속시에 기록 |
7 |
sendmail 이 메일수신을 실패하였을 경우 기록 |
8 |
sendmail 이 메일수신을 성공하였을 경우 기록 |
9 |
sendmail 이 메일처리시에 시스템 자원부족에 의한 수신실패를 기록 |
10 |
데이터베이스에서 탐색되는 키 값 기록 |
11 |
NIS 사용시 에러발생과 프로세스 종료발생시 기록 |
12 |
sendmail 에 접속하였을 경우 기록 |
13 |
비사용자 쉘, 디렉토리 퍼미션 설정등의 상황에 대해 기록 |
14 |
sendmail 의 접속거부 상황에 대한 기록 |
15 |
sendmail에서 발생되는 모든 메일 상황을 기록하며 가장 많은 기록을 남기게 됨. /var/log/maillog 의 용량이 커지게 되는 원인이 되기도 하며 기록을 많이 함으로서 디스크 액세스로 인한 부하를 유발할 수도 있음 |
(상위레벨은 하위레벨 포함, 최하:0/최상:15)
13. 메일큐 디렉토리 설정
O QueueDirectory=/var/spool/mqueue
빋은 메일과 보내는 메일을 일시적으로 queue 디렉토리에 보관하였다가 다른 메일서버나 계정으로 메일을 보내는 용도..
위치 변경시 sendmai 재시작 필수
14. sendmail timeout 값 설정
# timeouts (many of these)
#O Timeout.initial=5m
#O Timeout.connect=5m
.
.
.
#O Timeout.lhlo=2m
#O Timeout.auth=10m
#O Timeout.starttls=1h
일반적으로 설정하는 것은 Timeout.connect 와 Timeout.quuereturn 과 Timeout.queuewarn 세가지이다.
Timeout.connect 는 sendmail 에 접속한 최대시간을 설정하는것
Timeout.queuereturn 은 어떤 사유로 인해 메일을 보내지 못해 보관되는 최대값
Timeout.queuewarn 은 어떤 사유로 인하여 메일을 발송하지 못했을 경우 메일 발신자에게 경고메일을 보내게 된다. x시간동안 메일을 최종수신자에게로 보내지 못했을 경우 발신자에게 경고메일을 보낸다는 설정..
15. sendmail 상태파일 지정
O StatusFile=/etc/mail/statistics
이 파일은 바이너리 형태이므로 vi나 cat으로는 볼 수 없다.
16. Mailer의 UID와 GID 설정
O DefaultUser=8:12
8은 /etc/passwd 파일에 정의된 UID값이며 12는 /etc/group 파일에 정의된 GID값...
이 설정으로 인해 메일과 관련하여 생성되는 파일의 소유권이 UID는 8, GID는 12로 생성된다.
[root@CENT ~]# cat /etc/passwd | grep 8
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
[root@CENT ~]# cat /etc/group | grep 12
mail:x:12:mail
17. 큐보관 최소시간 설정
O MinQueueAge=30m
sendmail 이 어떤 사유로 인해 메일발송에 실패할 경우 다시시도를 하게 되는데 재시도를 위해 최소한 어느정도 시간이 경과한 후 시도를 할 것인가를 설정
18. 메일서비스를 일시정지하고 큐에 보관할 Load Average 값
O QueueLA=8
sendmail은 시스템의 상태에 따라서 메일서비스를 일시정지하거나 메일서비스를 중지할 수 있다. 즉 시스템의 평균부하율이 8 이상 설정되었을 때는 메일을 발송하는 작업을 일시정지하고 모든 발송메일을 큐(/var/spool/mqueue)에 일시보관하게 된다. 시스템 부하율이 8 이하로 내려가게 되면 큐에 보관되었던 메일들의 발송이 시작된다.
19. 메일서비스를 거부할 Load Average값
O RefuseLA=12
sendmail 이 메일서비스를 거부하게 되는 시스템평균 부하율값... 12 이상이 되었을 때 sendmail은 메일서비스를 거부하게 된다.
만약 위 설정이 적용되었을 때 p로 sendmail 데몬상태를 확인하면 "rejecting connections" 라는 메시지가 뜬다. 만약 다시 12 이하로 떨어지면 메일발송작업은 하지 않지만 /var/spool/mqueue 에 보관하는 작업은 하게 된다. 그리고 다시 8 이하로 떨어지게 되면 메일발송업무는 정상화된다.
20. sendmail 환영메시지 설정
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
telnet xxx.xxx.xxx.xxx 25를 하게 될 경우 보여주게 되는 환영메시지 설정...
$v/$Z 은 sendmail의 버전을 보여주게 되는데 보안상 문제가 있으므로 일반적으로 삭제한다.
21. Queue Relay 설정
R$* $#error $@ 5.7.1 $: "550 Relaying denied"
위 라인이 주석(#) 처리가 되면 /etc/mail/access 파일에 설정된 것이 전혀 유효아지 않게 되어 스팸메일의 온상지가 될 수 있으므로 반드시 주석이 없게 하도록 유의...