320x100
320x100

메일 관련 프로토콜
- SMTP (Simple Mail Transfer Protocol)
: 메일 클라이언트에서 메일 서버로 메일을 보낼 때 사용되는 프로토콜. 포트번호는 25번

- POP3 (Post Office Protocol Version 3)
: 메일 서버에 도착한 메일을 클라이언트에서 내려받아 읽을 수 있도록 해주는 프로토콜. 포트번호는 110번
: 메일 확인 시 서버에서 해당 메일이 삭제됨

- IMAP (Internet Mail Access Protocol)
: 메일 서버에 도착한 메일을 클라이언트에서 내려받아 있을 수 있도록 해주는 프로토콜. 포트번호는 143번
: 메일 확인 시 서버에서 메일이 삭제되지는 않지만, 메일 서버의 통신 트래픽을 높이는 단점 존재





메일 관련 프로그램의 분류
- MTA (Mail Transfer Agent)
: SMTP 프로토콜을 통해 다른 메일 서버로 메일을 전달 하는 프로그램
: sendmail, qmail, postfix, MS Exchange Server 등

- MUA (Mail User Agent)
: 사용자가 메일을 읽고 보낼 때 사용하는 프로그램
: kmail, evolution, mutt, thunderbird, Outlook 등

- MDA (Mail Delivery Agent)
: 메일 박스에 도착한 메일을 대행해서 가져오거나 전달하는 프로그램. 스팸 메일 필터링, 메일 정렬 등 수행
: procmail





sendmail 관련 명령어
- mailq
- sendmail
- makemap hash
- m4





mailq
: 보내려는 메일이 대기하는 디렉터리의 Queue 상태 출력

- 형식
: mailq [option]

- 주요 옵션
: -Ac
 > /etc/mail/submit.cf 파일에 명시된 큐의 상태 출력

 
 
 
 
sendmail
: sendmail 관리

- 형식
: sendmail <option>

- 주요 옵션
: -bp
 > 메일 큐의 상태 출력
: -bi (-l)
 > 특정 계정으로 들어오는 메일을 다른 계정으로 전송되도록 설정하는 파일인 /etc/aliases 파일 수정 시 관련 DB 정보 파일 업데이트 
: -oQ
 > -bp 옵션과 같이 사용되는 옵션. 상태를 확인할 큐 지정

 
 
 
 
makemap hash
: sendmail에 대한 설정파일 수정 시 데몬에 적용하기 위한 명령어

- 형식
: makemap hash <target file> < <original file>

- 예시
```
makemap hash /etc/mail/access < /etc/mail/access
```





m4
: 파일 복원을 위한 매크로 명령어

- 형식
: m4 <originailfile> > <target file>

- 예시
```
m4 /etc/>mail>sendmail.ms > /etc/mail/sendmail.cf
```





sendmail 관련 파일
- /etc/mail/sendmail.cf
- /etc/mail/local-host-names
- /etc/mail/sendmail.mc
- /etc/mail/access
- /etc/aliases
- /etc/virtusertable
- ~/.forward





/etc/mail/sendmail.cf
: sendmail 관련 주요 환경설정 파일. 기본적인 메일 서버만 운영할 경우 거의 설정할 필요가 없음.

- 형식
Option=value
O Option=value

- 주요항목
: Cwlocalhost
 > 메일을 수신할 호스트 이름을 명기 (Cw). 보통 도메인명을 기입. Cw도메인명 형식
: Fw/etc/mail/local-host-names
 > 여러 도메인을 사용하는 경우 별도의 파일 지정 (Fw). Fw파일 형식
: #Dj$w.Foo.COM
 > 특정 도메인명으로 지정하여 강제로 적용할 때 (Dj). Dj도메인명 형식
: Kvirtuser hash -o /etc/mail/virtusertable.db
 > 여러 가상 호스트들이 동일한 계정을 메일 주소로 동시에 사용할 수 있도록 설정하는 파일 지정.
: Kaccess hash -T<TMPF> -o /etc/mail/access.db
 > 특정 호스트나 도메인에 대해 sendmail로의 접근 (relay)을 제어하는 파일 지정. 
: O AliasFile=/etc/aliases
 > 특정 계정으로 오는 메일을 다른 계정으로 전송시키는 파일 지정
: #O MaxMessageSize=0
 > 메일 메시지의 최대크기. byte 단위. 0이면 제한 없음
: O ForwardPath=$.z/.forward.$w:$z/.forward
 > 개인 사용자가 본인의 계정으로 들어온 메일을 다른 메일로 포워딩 할 때 설정하는 파일명 지정
: O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA
 > SMTP 데몬 옵션으로, 25번 포트를 사용할 주소 지정. 보통 로컬호스트 주소로 지정. 0.0.0.0으로 할 경우 모든 주소에서 사용 가능
: O QueueDirectory=/var/spool/mqueue
 > 메일 전송을 대기하는 큐 파일 위치 지정
 
 
 
 
 
/etc/mail/local-host-names
: 메일 서버에 사용하는 도메인을 설정하는 파일. 한 줄에 도메인 하나 씩 기입
```
2mukee.com
deragon.co.kr
```





/etc/mail/sendmail.mc
: sendmail의 매크로 설정 파일. 복원 시 m4 명령어로 복원 가능

- 복원
: m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf





/etc/mail/access
: 메일 서버로 접근하는 호스트나 도메인의 접근을 제어하는 파일
: 허가할 호스트나 도메인은 통과 시킬 경우 RELAY / 거부할 경우 REJECT
: 파일 수정 후 makemap hash 명령어 수행 필요

- 형식
From:sender REJECT
Connect:visitor OK
To:receiver RELAY

- 항목별 설명
: From
 > 메일을 발송한 클라이언트의 이메일, 도메인
: Connect
 > 메일 서버에 접속하는 클라이언트의 주소 및 이름
: To
 > 수신 대상의 이메일, 도메인
 
- 주요 정책
: RELAY
 > 특정 호스트나 도메인의 접근 허용
: REJECT
 > 메일을 거절하고 거부 메시지 발송
: DISCARD
 > 거부 메시지 없이 메일 거절
: OK
 > 조회가 되지 않은 DNS 라도 메일 허가. 보통 거부된 도메인에 대한 예외처리 시 사용
 
- 수정사항 적용
: makemap hash /etc/mail/access < /etc/mail/access





/etc/aliases
: 특정 계정으로 들어오는 메일을 다른 계정으로 전송되도록 설정하는 파일
: 보통 하나의 계정으로 들어오는 메일을 여러 사용자에게 전달할 때 설정
: 수정 후 newaliases 명령으로 적용해야함

- 형식
name: value1, value2, ...
name::include:file


- 예시
```
webmaster: 2mukee, deragon, tlgns7386@naver.com
# webmaster 계정에게 들어오는 메일을 2mukee 등에게 발송

admin::include:/etc/mail/adminfile
# admin 계정에게 들어오는 메일을 /etc/mail/adminfile 파일에 기재된 메일로 발송
: adminfile에는 포워딩할 계정을 한 줄에 하나씩 기입
```

- 적용방법 (1택)
: newailiases
: sendmail -bi
: sendmail -I





/etc/mail/virtusertable
: 여러 도메인에서 하나의 메일서버를 이용하는 환경에서 동일한 계정을 사용할 경우 도메인을 기준으로 포워딩 설정
: sendmail 데몬은 /etc/mail/virtusertable.db 파일을 참고하므로, makemap hash 명령어도 적용 필요

- 형식
name@domain target_name
@domain target_name@domain

- 적용
: makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable

- 예시
```
admin@2mukee.com tlgns7386
admin@bagsingood.com 2mukee
@owin.co.kr tlgns1537@naver.com
```





~/.forward
: 각 사용자가 자신에게 들어오는 메일을 다른 메일로 포워딩 할 때 사용
: 자신의 홈 디렉터리안에 .forward 파일을 생성하고 포워딩할 메일주소를 한 줄에 하나씩 입력
: 해당 사용자에 대해서만 쓰기권한만 설정해야함

- 형식
name1@domain
name2@domain

- 적용
: vim ~/.forward
: chmod 600 ~/.forward

- 예시
```
tlgns1537@naver.com
tlgns7386@gmail.com
```
: 2mukee 사용자가 자신에 디렉터리에 .forward 파일을 생성하고 위와 같이 기재 시, 
  2mukee 계정에게 오는 메일은 기재된 메일로 포워딩 됨
  




sendmail 서버 설정
1) 외부에서 접속할 수 있도록 수정
- vim /etc/mail/sendmail.cf
```
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA

# 위 항목을 아래와 같이 변경

O DaemonPortOptions=Port=smtp, Name=MTA
```

2) 메일 서버에서 사용하는 도메인을 기재
- vim /etc/mail/local-host-names
```
2mukee.com
```

3) 서버 실행
- service sendmail start

4) 서버 실행 확인
- ps aux | grep sendmail

5) 서버 설정 확인
- nslookup -type=ms 2mukee.com

6) 메일 발송 및 확인
- mail test@2mukee.com
Subject: Test!!!!

- mailq
: /var/spool/mqueue is empty일 경우 정상

7) 메일 수신 확인
- mail

 

 

 

 

 

Refference

 

리눅스마스터 1급 2차 실기 정복하기 | 정성재 - 교보문고

리눅스마스터 1급 2차 실기 정복하기 | 출제 경향을 반영하여 핵심 내용만 요약 정리 시험대비를 위한 최신 기출문제를 해설과 함께 수록본 교재는 독자들이 최근 출간 요구가 많았던 리눅스마

product.kyobobook.co.kr

 

300x250
728x90