[리눅스마스터 1급] 이기적 이론서 13회차 정리 - 메일 관련 서비스
🏁 이기적 이론서 학습 범위
- PART 03 네트워크 및 서비스의 활용
- CHAPTER 01 네트워크 서비스 (SECTION 04 메일 관련 서비스)
메일 관련 서비스
☑️ 메일 관련 서비스
메일 서비스의 개념과 구성 요소
- 메일 서비스
아이디@메일서버명
형식의 메일 주소를 이용하여 인터넷을 통해 전자메일을 주고 받을 수 있는 서비스
메일 서비스 관련 프로토콜
프로토콜 설명 SMTP - Simple Mail Transfer Protocol
- 인터넷에서 이메일을 전송하기 위해 사용하는 프로토콜로, 메일 서버 간의 송수신뿐 아니라 메일 클라이언트에서 메일 서버로 메일을 보낼 때 사용한다.
- TCP 25번 포트를 이용한다.POP or POP3 - Post Office Protocol or Post Office Protocol Version 3
- 메일 서버에 도착한 메일을 수신하는 프로토콜
- 클라이언트 프로그램을 메일로 가져온 후 서버에서 해당 메일을 삭제한다.
- TCP 110번 포트를 이용한다.IMAP - Internet Messaging Access Protocol
- 메일 서버에 도착한 메일을 수신하는 프로토콜
- POP과 다르게 이메일 메시지를 서버에 남겨 두었다 나중에 삭제할 수 있다.
- TCP 143번 포트를 이용한다.메일 서비스의 관련 프로그램
구분 설명 MTA - Mail Transfer Agent
- SMTP 프로토콜을 이용하여 메일을 전송한다.
- ex. sendmail, qmail, postfix 등MDA - Mail Delivery Agent
- 일종의 대리인 역할을 수행하는 프로그램으로 메일 박스에 도착한 메일을 대행해서 가져오거나 전달하는 역할을 수행한다.
- 대표 프로그램 :procmail
(스팸 메일 필터링이나 메일 정렬 등의 역할도 수행)MUA - Mail User Agent - 사용자가 메일을 수신 혹은 발신할 때 사용한다.
- ex. kmail(KDE 기반), evolution(X 윈도우 기반), mutt(텍스트 기반)
☑️ 메일 관련 서비스 사용
메일 서비스 설치와 구성
- 메일 관련 패키지 설치
메일 서비스 관련 패키지를 설치한다.
$ yum -y install sendmail
- sendmail의 주요 설정 파일
sendmail
은 메일 서비스를 설정하기 위해 다양한 설정파일을 이용한다.sendmail
의 주요 설정 파일설정 파일 설명 /etc/mail/sendmail.cf sendmail의 기본 설정 파일 /ect/mail/sendmail.mc - sendmail의 설정을 편리하게 관리할 수 있는 보조 파일
- m4 유틸리티를m4 [sendmail.mc](http://sendmail.mc) > [sendmail.cf](http://sendmail.cf)
와 같이 사용하여sendmail.cf
를 생성한다.
-sendmail -cf
패키지가 필요하다./etc/aliases - 메일의 별칭 또는 특정 계정으로 수신한 이메일을 다른 계정으로 전달하도록 설정하며, 보통 여러 사람에게 전달할 때 사용한다. - [수신계정]:[전달계정]
의 형식을 따르며,include:[파일이름]
으로 사용자 이름이 저장된 파일을 설정할 수 있다.
- sendmail이 참조하는 파일은/etc/aliases.db
이므로/etc/aliases
를 수정한 후newaliases
나sendmail -bi
명령으로 적용한다.
- ex. webmaster: ihduser. kaituser
- ex. admin: :include:/etc/mail_admin/etc/mail/access - 메일 서버에 접속하는 호스트의 접근을 제어하는 설정파일로, 스팸 메일 방지 등에 사용한다.
-[정책 대상][정책]
의 형식을 사용한다. 정책 대상은도메인명, IP, 메일주소
를 사용하고, 정책은 릴레이 허용(RELAY), 거부(DISCARD), 거부 후 메시지 전송(REJECT), DNS 조회 실패 시에도 허용(OK)을 지정할 수 있다.
-makemap hash /etc/mail/access < /etc/mail/access
와 같은 명령으로/etc/mail/access.db
에 적용한다./etc/mail/virtusertable - 가상의 메일 계정으로 들어오는 메일을 특정 계정으로 전달하는 정보를 설정한다.
-makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
와 같은 명령으로/etc/mail/virtusertable.db
에 적용한다./etc/mail/local-host-names - sendmail에서 수신할 메일의 도메인과 호스트, 즉 메일 수신자를 설정하며 sendmail을 다시 시작하여 적용한다.
- ex. youngjin-mail.com~/.forward 사용자 개인이 수신한 메일을 다른 메일로 포워딩할 때 설정하는 파일로, 원하는 메일 주소를 한 줄씩 추가한다.
- /etc/mail/sendmail.cf 파일 설정
- sendmail의 주 설정 파일로 sendmail의 기본 동작 방식을 지정한다.
#
으로 시작하는 행은 주석이다.sendmail.cf
의 주요 설정 항목설정 항목 설명 Cw - 메일 수신 호스트의 이름을 설정하며, 보통 도메인명을 이용한다.
- 여러 개의 도메인 이용시Fw
항목으로 관련 설정 파일을 별도로 지정할 수 있다.
- 기본값: CwlocalhostFw - 여러 개의 도메인명을 수신 호스트 이름으로 이용할 경우 관련 설정 파일을 지정한다.
- 기본값: Fw/etc/mail/local-host-namesFt - Trusted user를 설정한다.
- Trusted user는 메일 발신 시 발송자의 주소를 변경할 수 있다.Dj - 메일 발송 시 발신 도메인 이름을 강제로 지정한다.
- 발신 도메인의 이름은 일반적으로 sendmail이 자동으로 결정하므로 특별한 경우에만 사용한다.Dn sendmail이 회신(return) 메일을 보낼 때 사용하는 사용자 이름을 지정한다. FR-o Relay를 허용할 도메인을 설정한다. Kvirtuser 한 대의 메일 서버에서 동시에 운영하는 여러 개의 가상 호스트에서 동일한 계정을 공유하여 사용할 수 있도록, 관련 설정 파일을 지정한다. Kaccess sendmail의 접근 제어를 담당하며 특정 호스트 혹은 도메인에 대한 접근 허가 여부를 설정한 파일을 지정한다. O AliasFile 특정 계정으로 전송된 메일을 다른 계정으로 전달할 수 있돌고 설정한 파일을 지정한다. O MaxMessageSize 메일 메시지의 최대 크기를 바이트 단위로 지정한다. 주석 혹은 0으로 설정 시 제한 없이 사용할 수 있다. O ForwardPath 사용자 개인이 수신한 메일을 다른 메일로 포워딩할 때 사용하는 설정 파일을 지정한다. O DaemonPortOptions - SMPT 데몬의 옵션을 설정한다.
- Addr을 127.0.0.1로 설정하면 localhost에서만 사용할 수 있고, 0.0.0.0으로 설정하면 모든 주소에서 사용 가능하다.O DeliveryMode sendmail의 동작 방식을 지정한다. O Timeout.queuereturn 설정한 기간동안 메일이 발송되지 않을 경우 보낸 사람에게 반송된다. O QueueDirectory 메일 전송 시 사용하는 큐 디렉터리를 지정한다.
sendmail 관련 주요 명령어
명령어 설명 sendmail - sendmail을 관리한다. - sendmail [옵션]
형식이다.
- 주요 옵션 :-bp
(메일 큐의 상태 표시),-bi
(aliases 정보 갱신),-oQ
(특정 큐의 상태 표시)
- ex. sendmail -bp -oQ/var/spool/clientmqueuemailq - 메일 큐의 내용을 표시한다.
-mailq [옵션]
형식이다.
-mailq -Ac
을 통해/etc/mail/submit.cf
파일에 지정된 큐의 상태를 표시한다. 즉, submission program이 보내는 메일을 위한/var/spool/clientmqueue
큐의 상태를 표시한다.sendmail 서비스 실행과 확인
$ systemctl start sendmail.service $ netstat -anp | grep LISTEN -w | grep :25 $ systemctl enable sendmail.service
sendmail을 이용할 때 어려움이 있을 경우 postfix 서비스를 종료한다.
$ systemctl stop postfix.service
메일 서비스 이용하기
telnet을 이용한 메일 발송
$ telnet localhost 25
telnet
이 설치되지 않은 경우, 아래 명령으로 설치한다.$ yum -y install telnet