[리눅스마스터 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.cfsendmail의 기본 설정 파일
      /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 를 수정한 후 newaliasessendmail -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 항목으로 관련 설정 파일을 별도로 지정할 수 있다.
      - 기본값: Cwlocalhost
      Fw- 여러 개의 도메인명을 수신 호스트 이름으로 이용할 경우 관련 설정 파일을 지정한다.
      - 기본값: Fw/etc/mail/local-host-names
      Ft- Trusted user를 설정한다.
      - Trusted user는 메일 발신 시 발송자의 주소를 변경할 수 있다.
      Dj- 메일 발송 시 발신 도메인 이름을 강제로 지정한다.
      - 발신 도메인의 이름은 일반적으로 sendmail이 자동으로 결정하므로 특별한 경우에만 사용한다.
      Dnsendmail이 회신(return) 메일을 보낼 때 사용하는 사용자 이름을 지정한다.
      FR-oRelay를 허용할 도메인을 설정한다.
      Kvirtuser한 대의 메일 서버에서 동시에 운영하는 여러 개의 가상 호스트에서 동일한 계정을 공유하여 사용할 수 있도록, 관련 설정 파일을 지정한다.
      Kaccesssendmail의 접근 제어를 담당하며 특정 호스트 혹은 도메인에 대한 접근 허가 여부를 설정한 파일을 지정한다.
      O AliasFile특정 계정으로 전송된 메일을 다른 계정으로 전달할 수 있돌고 설정한 파일을 지정한다.
      O MaxMessageSize메일 메시지의 최대 크기를 바이트 단위로 지정한다. 주석 혹은 0으로 설정 시 제한 없이 사용할 수 있다.
      O ForwardPath사용자 개인이 수신한 메일을 다른 메일로 포워딩할 때 사용하는 설정 파일을 지정한다.
      O DaemonPortOptions- SMPT 데몬의 옵션을 설정한다.
      - Addr을 127.0.0.1로 설정하면 localhost에서만 사용할 수 있고, 0.0.0.0으로 설정하면 모든 주소에서 사용 가능하다.
      O DeliveryModesendmail의 동작 방식을 지정한다.
      O Timeout.queuereturn설정한 기간동안 메일이 발송되지 않을 경우 보낸 사람에게 반송된다.
      O QueueDirectory메일 전송 시 사용하는 큐 디렉터리를 지정한다.
  • sendmail 관련 주요 명령어

    명령어설명
    sendmail- sendmail을 관리한다. - sendmail [옵션] 형식이다.
    - 주요 옵션 : -bp (메일 큐의 상태 표시), -bi(aliases 정보 갱신), -oQ (특정 큐의 상태 표시)
    - ex. sendmail -bp -oQ/var/spool/clientmqueue
    mailq- 메일 큐의 내용을 표시한다.
    - 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
      

© 2021. All rights reserved.

yaejinkong의 블로그