|
|
- Sendmil-8.13.8
- Sendmail-cf-8.13.8
-
♧ sendmail이란?
- 인터넷에서 전자메일을 전송하기 위해 사용되는 프로그램으로 MTA(Mail Transfer Agent)라고 부른다. 인터넷으로 편지를 보냈을 때는 다음의 경로로 전달이 된다.
【sendmail 파일 목록】
Sendmail : sendmail 실행파일
Sendmail.cf : 주 설정파일
Local-host-names : 메일을 처리할 도메인 저장 파일 ( Ver 8.10 )
Sendmail.cw : 메일을 처리할 도메인 저장파일 ( Ver 8.9 )
Sendmail.mc : 메크로 설정파일
Access : 중계기능 설정 파일
Access.db : 중계기능 설정 db파일
Mailertable : 특정 도메인 메일러 라우팅 설정 파일
Domaintable : 도메인 매핑 설정 파일
Domaintable.db : 도메인 매핑 설정 db파일
Virtusertable : 가상 메일 설정 파일
Virtusertable.db : 가상 메일 설정 db파일
Aliases : 별칭 파일
1. 기본 설정
/etc/mail/sendmail.mc 수정
① 로컬 이외 relay 허용
- DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl의 ip 부분을 0.0.0.0 으로 수정하면 외부에서 메일 발송 가능하게 됩니다.
② 스팸 방지를 위한 smtp 인증 설정
- dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
- dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
- 위에 표시된 부분의 주석을 제거합니다.
★ sendmail.mc 파일을 수정한 후 컴파일하여 sendmail.cf로 적용
root@localhost #] m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
【참고】 sendmail.cf 를 생성하는 명령은 sendmail 버전별로 다르며 sendmail.mc 파일의 첫 부분에서 확인할 수 있습니다.
2. 환경 설정
/etc/mail/sendmail.cf 에서 수정
C 클래스 정의
F 클래스로 정의한 파일을 불러 읽음
D 내부 매크로 변수 j에 특정한 값을 정의함
O 옵션을 지정함
T 사용자 지정
P 메시지 우선순위
H 헤더 정의
R 덮어쓰기
S 룰셋 정의
K key file 정의
E 환경변수 지정
V 설정파일 버전
M mailer 정의
# 주석
빈행 무시
sendmail.cf 파일은 7개의 섹션으로 나뉘어져 있습니다.
① local lnfo : 로컬 호스트의 구성 정보
- Cwlocalhost → C명령어를 이용하여 w클래스로 localhost를 정의
- Fw/etc/mail/local-host-names → F명령어를 이용하여 w클래스로 정의
- FR-o /etc/mail/relay-domails → 정의된 relay-domains파일을 불러옮
- DnMAILER_DAEMON → 시스템 에러메시지를 보낼 사용자 설정
- Kmailertable hash –o /etc/mail/mailertab.db → mailer 테이블 정의
- Kvirtuser hash –o /etc/mail/virtusertable.db → 가상 유저 테이블 정의
- Kaccess hash –T<TMPF> -o /etc/mail/access.db → 특정 호스트나 도메인이 sendmail로 접근하는 것을 제어하는 파일을 정의
② options : 환경 정의 옵션
- O ServenBitInput=False → 설정 값이 true 이면 7bit로 받아들임
- O EightbitMode=pass8 → 8bit로 데이터 처리
- O AliasWait=10 →
- O AliasFile=/etc/aliases → 별칭 파일 이름 정의
- O MaxMessageSize=0 → 메일 메시지의 최대 크기 용량/주석 처리시 제한 없음
- O DelivryMode=background → background로 실행
- O ForwardPath → 시스템 각 사용자가 자신에게 들어오는 메일을 다른 곳으로 포워딩 할 수 있도록 sendmail이 forwarding 설정파일을 찾도록 지정
- O LogLevel=9 → 기본 로그 레벨 설정
Level |
설 명 |
1 |
최소 정보만 기록 |
2 |
심각한 에러 또는 보안 정보 기록 |
3 |
네트워크 에러 또는 접근 실패 기록 |
4 |
잘못된 주소, forward 에러, 시간 경과에 따른 접속 실패 기록 |
5 |
TCP wrapper에 의해 거부된 접속 기록 |
6 |
vrtf 명령에 의한 사용자 정보 파악 시도 기록 |
7 |
메일 수신 실패 기록 |
8 |
메일 수신 성공 기록 |
9 |
시스템 자원 부족에 의한 수신 실패 기록 |
10 |
데이터베이스에서 탐색되는 키 값 기록 |
11 |
NIS 에러 및 프로세스 종료 기록 |
12 |
SMTP 접속 기록 |
13 |
비 사용자 쉘 및 디렉토리 퍼미션 설정 기록 |
14 |
접속 거부에 대한 기록 |
15 |
모든 SMTP접속 기록 |
EXIF Viewer카메라제조사Unknown카메라모델명Unknown소프트웨어Adobe Photoshop CS5 Windows저장일자2011:05:11 10:37:19플래쉬Not Fired사진 크기608 X 43원본사진 크기608 X 43
③ message precedence : 메시지의 우선순위 정의
④ trusted users : 보내는 사람의 주소를 변경할 권한을 갖는 사용자 정의
⑤ format of headers : 메일에 삽입되는 헤더 정의
⑥ rewriting rules : 사용자의 메일 프로그램에 있는 메일 주소를 메일 배달 프로그램에 맞는 폼으로 재작성
⑦ mailer definitions : 메일을 배달하는 데 사용되는 프로그램 정의
3. local-host-names
- 수신 도메인을 설정해 줍니다.
4. Access
- sendmail이 특정 호스트나 도메인에 대한 접근 제어하는 설정파일로, 스펨메일을 차단하기 위해 기본적으로 설정해 주어야 한다.
-
OK |
다른 rule이 거부하는 경우에도 들어오는 메일(특정 호스트나 사용자)를 받아들인다. |
RELAY |
relay를 허용한다. 다른 rule이 거부하는 경우에도 지정된 특정 도메인에 있는 사용자에게 오는 메일을 받아들인다. |
REJECT |
수신 및 발신을 완전히 거부한다. |
DISCARD |
메일을 받기만 하는 메시지를 완전히 폐기한다. |
501 |
특정 지정된 e-mail 또는 도메인에 대해서 보내는 사람의 주소가 전체 또는 부분적으로 일치할 경우 메일을 거부한다. |
550 |
특정 도메인에 관련된 메일으르 거부한다. |
5. Virtusertable
- 들어오는 메일을 다른 곳으로 매핑하는 기능을 한다. passwd 파일에 존재하지 않는 유저와 일반 사용자 계정을 1:1로만 매핑 가능하다.
6. Aliases 설정
- sendmail.cf 파일의 location of alias file 부분을 설정해야 하며 이 설정은 aliases파일의 위치를 명시하기 위한 설정이며 # O AliasFile=/etc/aliases 부분에 주석(#) 처리가 되어 있으며 주석을 제거한다.
# location of alias file
O AliasFile=/etc/aliases
root@localhost# vi /etc/aliases
[메일계정] : [별칭메일계정]
root : test
7. dovecot 설정
♧ dovecot 이란 ?
- pop3d(port : 110)와 imapd(port : 143) 데몬 관리와 유저 인증을 담당하는 프로그램이다.
root@localhost # vi /etc/dovecot.conf
# protocols = imap pop3 → 이부분 주석을 해제
imap_listen = [::]
pop3_listen = [::] → 부분을 *로 수정하면 모든 네트워크에서 접속이 가능하다.
※ 설정 후 telnet 테스트 방법
root@localhost # telnet localhost 25
ehlo
mail from : server@test.net
rcpt to : root@test.net
data
subject : test
.
quit
root@localhost# netstat –nlp 또는 ps –ef
위의 명령어를 사용하여 프로세스가 정상적으로 떠 있는지 확인한다.