Oracle® Solaris 11.2에서의 sendmail 서비스 관리

인쇄 보기 종료

업데이트 날짜: 2014년 7월
 
 

소프트웨어 구성 요소

메일 서비스마다 다음 소프트웨어 구성 요소 중 하나 이상이 각각 포함됩니다.

이 절에서는 다음 소프트웨어 구성 요소에 대해서도 설명합니다.

메일 사용자 에이전트

메일 사용자 에이전트는 사용자와 메일 전송 에이전트 사이의 인터페이스 역할을 하는 프로그램입니다. sendmail 프로그램은 메일 전송 에이전트입니다. Oracle Solaris 운영 체제에서는 다음 메일 사용자 에이전트를 제공합니다.

  • /usr/bin/mail

  • /usr/bin/mailx

메일 전송 에이전트

메일 전송 에이전트는 메일 메시지 경로 지정과 메일 주소 확인을 담당합니다. 이 에이전트는 메일 전송(transport) 에이전트라고도 합니다. Oracle Solaris 운영 체제용 전송 에이전트는 sendmail입니다. 전송 에이전트는 다음과 같은 기능을 합니다.

  • 메일 사용자 에이전트에서 보낸 메시지 수락

  • 대상 주소 확인

  • 메일을 배달하기 위해 적절한 배달 에이전트 선택

  • 다른 메일 전송 에이전트로부터 받는 메일 수신

로컬 배달 에이전트

로컬 배달 에이전트는 메일 배달 프로토콜을 구현하는 프로그램입니다. Oracle Solaris 운영 체제에서는 다음과 같은 로컬 배달 에이전트가 제공됩니다.

  • UUCP 로컬 배달 에이전트 - uux를 사용하여 메일 배달

  • 로컬 배달 에이전트 - 표준 Oracle Solaris 릴리스의 mail.local

sendmail 버전 8.12에서 변경된 사항에는 다음과 같은 관련 항목이 있습니다.

메일러 및 sendmail

메일러sendmail 관련 용어입니다. 메일러는 사용자 정의된 로컬 배달 에이전트나 사용자 정의된 메일 전송 에이전트의 특정 인스턴스를 식별하기 위해 sendmail에 사용됩니다. sendmail.cf 파일에서 적어도 하나의 메일러를 지정해야 합니다. 작업 정보는 sendmail 구성 변경 in Chapter 2, 메일 서비스 관리을 참조하십시오. 이 절에서는 두 가지 유형의 메일러를 간단히 설명합니다.

메일러에 대한 자세한 내용은 http://www.sendmail.org/m4/readme.htmlhttp://www.sendmail.org/m4/readme.html 또는 /etc/mail/cf/README를 참조하십시오.

SMTP(Simple Mail Transfer Protocol) 메일러

SMTP는 인터넷에서 사용되는 표준 메일 프로토콜입니다. 이 프로토콜은 다음 메일러를 정의합니다.

UUCP(UNIX-to-UNIX Copy Program) 메일러

가능하면 UUCP를 사용하지 마십시오. 설명은 http://www.sendmail.org/m4/uucp_mailers.htmlhttp://www.sendmail.org/m4/uucp_mailers.html을 참조하거나 /etc/mail/cf/README에서 문자열 USING UUCP MAILERS를 검색하십시오.

UUCP는 다음 메일러를 정의합니다.

uucp-old

$=U 클래스의 이름이 uucp-old로 보내집니다. uucp는 이 메일러에 대한 오래된 이름입니다. uucp-old 메일러는 헤더에 느낌표 주소를 사용합니다.

uucp-new

$=Y 클래스의 이름이 uucp-new로 보내집니다. 이 메일러를 사용하려면 수신 UUCP 메일러가 하나의 전송에서 받는 사람을 여러 명 관리할 수 있다는 점을 이해해야 합니다. suucp는 이 메일러에 대한 오래된 이름입니다. uucp-new 메일러도 헤더에 느낌표 주소를 사용합니다.

구성에 MAILER(smtp)도 지정되어 있을 경우 메일러 2개가 더 정의됩니다.

uucp-dom

이 메일러는 도메인 스타일 주소를 사용하며 기본적으로 SMTP 다시 쓰기 규칙을 적용합니다.

uucp-uudom

$=Z 클래스의 이름이 uucp-uudom으로 보내집니다. uucp-uudomuucp-dom은 같은 헤더 주소 형식인 도메인 스타일 주소를 사용합니다.


주 - smtp 메일러가 UUCP 메일러를 수정하므로 .mc 파일에서 항상 MAILER(smtp)MAILER(uucp) 앞에 놓으십시오.

메일 주소

메일 주소에는 메일 메시지가 배달되는 받는 사람 및 시스템 이름이 포함됩니다. 이름 서비스를 사용하지 않는 소규모 메일 시스템을 관리할 경우 쉽게 메일 주소를 지정할 수 있습니다. 로그인 이름은 사용자를 고유하게 식별합니다. 우편함이 있는 시스템이 둘 이상 있거나 도메인이 하나 이상 있는 메일 시스템을 관리할 경우 주소 지정이 복잡해지고, 네트워크 밖에 있는 서버와의 UUCP 또는 다른 메일 연결이 있을 경우에는 더욱 복잡해집니다. 다음 절의 내용은 메일 주소의 부분과 복잡성을 이해하는 데 도움이 됩니다.

도메인 및 하위 도메인

전자 메일 주소에는 도메인이 사용됩니다. 도메인은 네트워크 주소 이름 지정을 위한 디렉토리 구조입니다. 도메인 하나에 하나 이상의 하위 도메인을 포함할 수 있습니다. 주소의 도메인과 하위 도메인을 파일 시스템의 계층에 비교할 수 있습니다. 하위 디렉토리가 상위 디렉토리 안에 포함된다고 간주되는 것처럼 메일 주소에 포함된 각 하위 도메인도 오른쪽에 있는 상위 도메인 안에 포함된다고 간주됩니다.

다음 표에서는 일부 최상위 도메인을 보여줍니다.

표 3-6  최상위 도메인
도메인
설명
com
상업적 사이트
edu
교육 사이트
gov
미국 정부 기관
mil
미국 군사 기관
net
네트워크 조직
org
기타 비영리 조직

도메인은 대소문자를 구분합니다. 오류 없이 대문자, 소문자 또는 대소문자를 함께 주소의 도메인 부분에 사용할 수 있습니다.

이름 서비스 도메인 이름 및 메일 도메인 이름

이름 서비스 도메인 이름과 메일 도메인 이름을 사용하여 작업할 때는 다음 사항을 기억하십시오.

  • 기본적으로 sendmail 프로그램은 NIS 도메인 이름에서 첫번째 구성 요소를 제거하여 메일 도메인 이름을 구성합니다. 예를 들어, NIS 도메인 이름이 bldg5.example.com일 경우 메일 도메인 이름은 example.com입니다.

  • 메일 도메인 주소는 대소문자를 구분하지 않지만 NIS 도메인 이름은 대소문자를 구분합니다. 메일 및 NIS 도메인 이름을 설정할 때 소문자를 사용하는 것이 가장 좋습니다.

  • DNS 도메인 이름과 메일 도메인 이름은 같아야 합니다.

자세한 내용은 sendmail과 이름 서비스의 상호 작용을 참조하십시오.

메일 주소의 일반 형식

일반적으로 메일 주소 형식은 다음과 같습니다. 자세한 내용은 경로 독립적 메일 주소를 참조하십시오.

user@subdomain. ... .subdomain2.subdomain1.top-level-domain

@ 기호 왼쪽의 주소 부분은 로컬 주소입니다. 로컬 주소는 다음을 포함할 수 있습니다.

  • 다른 메일 전송과의 경로 지정에 대한 정보(예: bob::vmsvax@gateway 또는 smallberries%mill.uucp@gateway)

  • 별칭(예: iggy.ignatz)


주 - 수신 메일러는 주소의 로컬 부분의 의미를 확인합니다. 메일러에 대한 자세한 내용은 메일러 및 sendmail을 참조하십시오.

@ 기호 오른쪽의 주소 부분은 로컬 주소가 위치한 도메인 레벨을 보여줍니다. 점은 각 하위 도메인을 분리합니다. 주소의 도메인 부분은 조직, 실제 영역 또는 지역일 수 있습니다. 또한 도메인 정보의 순서는 계층적이므로 하위 도메인이 로컬일수록 @ 기호와 가깝습니다.

경로 독립적 메일 주소

메일 주소는 경로 독립적일 수 있습니다. 경로 독립적인 주소를 지정하려면 전자 메일 메시지를 보낸 사람이 받는 사람 이름과 최종 대상을 지정해야 합니다. 인터넷과 같은 고속 네트워크에서는 경로 독립적 주소를 사용합니다. 경로 독립적 주소는 다음과 같은 형식일 수 있습니다.

user@host.domain

UUCP 연결을 위한 경로 독립적 주소는 다음과 같은 형식일 수 있습니다.

host.domain!user

도메인 계층적 이름 지정 체계가 컴퓨터에 널리 쓰이면서 경로 독립적 주소가 일반화되고 있습니다. 실제로 가장 일반적인 경로 독립적 주소는 호스트 이름을 생략하고 도메인 이름 서비스를 사용하여 전자 메일 메시지의 최종 대상을 적절하게 식별합니다.

user@domain

처음에는 @ 기호를 검색하여 경로 독립적 주소를 읽습니다. 그런 다음 오른쪽(최상위 레벨)에서 왼쪽(@ 기호 오른쪽에 있는 가장 구체적인 주소 부분)으로 도메인 계층을 읽습니다.

우편함 파일

우편함은 전자 메일 메시지 최종 대상인 파일입니다. 우편함 이름은 사용자 이름이거나 포스트마스터와 같은 특정 기능의 ID일 수 있습니다. 우편함은 /var/mail/username 파일에 있으며 이 파일은 사용자의 로컬 시스템이나 원격 메일 서버에 있을 수 있습니다. 두 경우 모두 메일이 배달되는 시스템에 우편함이 있습니다.

사용자 에이전트가 메일 스풀에서 메일을 가져와 로컬 우편함에 저장할 수 있도록 메일은 항상 로컬 파일 시스템으로 배달되어야 합니다. NFS 마운트된 파일 시스템을 사용자 우편함의 대상으로 사용하지 마십시오. 특히 원격 서버에서 /var/mail 파일 시스템을 마운트하는 메일 클라이언트로 메일을 전송하지 마십시오. 이 경우 사용자의 메일에 대해 클라이언트 호스트 이름이 아닌 메일 서버로 주소를 지정해야 합니다. NFS 마운트된 파일 시스템을 사용하면 메일 배달 및 처리에 문제가 발생할 수 있습니다.

/etc/mail/aliases 파일과 NIS 등의 이름 서비스는 전자 메일 주소의 별칭을 만들기 위한 방식을 제공합니다. 그러므로 사용자 우편함의 정확한 로컬 이름을 알 필요가 없습니다.

다음 표에서는 특별한 용도의 우편함에 대한 공통된 이름 지정 규약 몇 가지를 보여줍니다.

표 3-7  우편함 이름 형식을 위한 규약
형식
설명
username
사용자 이름이 우편함 이름과 같은 경우가 많습니다.
Firstname.Lastname Firstname_Lastname Firstinitial.Lastname Firstinitial_Lastname
점이나 밑줄로 첫째 이름과 마지막 이름을 분리하는 전체 이름으로 사용자 이름을 식별할 수 있습니다. 또는 점이나 밑줄로 이니셜과 마지막 이름을 분리하는 첫째 이니셜로 사용자 이름을 식별할 수 있습니다.
postmaster
사용자는 질문을 해결하고 메일 시스템의 문제를 postmaster 우편함에 보고할 수 있습니다. 사이트와 도메인마다 postmaster 우편함이 있어야 합니다.
MAILER-DAEMON
sendmail은 주소가 MAILER-DAEMON으로 지정된 메일의 경로를 포스트마스터로 자동으로 지정합니다.
aliasname-request
-request로 끝나는 이름은 배포 목록을 위한 관리 주소입니다. 이 주소는 배포 목록을 유지 관리하는 담당자에게 메일을 재지정합니다.
owner-aliasname
owner-로 시작하는 이름은 배포 목록을 위한 관리 주소입니다. 이 주소는 메일 오류를 처리하는 담당자에게 메일을 재지정합니다.
owner-owner
오류가 반환될 owner-aliasname 별칭이 없을 경우 이 별칭이 사용됩니다. 이 주소는 메일 오류를 처리하는 담당자에게 메일을 재지정합니다. 여러 별칭을 유지 관리하는 시스템에서도 이 주소를 정의해야 합니다.
로컬%domain
퍼센트 기호(%)는 메시지가 대상에 도착하면 확장되는 로컬 주소를 표시합니다. 대부분의 메일 시스템은 % 문자가 있는 우편함 이름을 전체 메일 주소로 해석합니다. %@으로 대체되고 메일이 알맞게 재지정됩니다. % 규약이 널리 사용되기는 하지만 공식 표준은 아닙니다. 이 규약을 "percent hack"이라고 합니다. 종종 이 기능을 사용하여 메일 문제를 디버깅합니다.

sendmail 버전 8부터, 소유자 별칭이 있을 경우 그룹 별칭으로 전송되는 메일의 Envelope 보낸 사람이 소유자 별칭에서 확장된 주소로 변경되었습니다. 이 변경으로 인해 메일 오류를 보낸 사람에게 돌려보내지 않고 별칭 소유자에게 보낼 수 있습니다. 이 변경으로 인해 메일이 배달되면 사용자는 별칭으로 전송된 메일이 별칭 소유자가 보낸 메일이라고 판단합니다. 다음 별칭 형식은 이 변경과 관련된 몇 가지 문제를 해결하는 데 도움이 됩니다.

mygroup: :include:/pathname/mygroup.list
owner-mygroup: mygroup-request
mygroup-request: sandys, ignatz

이 예에서는 mygroup 별칭이 그룹의 실제 메일 별칭입니다. owner-mygroup 별칭이 오류 메시지를 받습니다. mygroup-request 별칭을 관리 요청에 사용해야 합니다. 이 구조는 mygroup 별칭에게 보낸 메일에서 Envelope 보낸 사람이 mygroup-request로 변경됨을 의미합니다.

메일 별칭

별칭은 대체 이름입니다. 전자 메일에 별칭을 사용하여 우편함 위치를 지정하거나 메일링 목록을 정의할 수 있습니다. 작업 맵은 편지 별칭 파일 관리(작업 맵) in Chapter 2, 메일 서비스 관리를 참조하십시오. 이 장에서 메일 별칭 파일을 참조할 수도 있습니다.

대규모 사이트의 경우 메일 별칭은 일반적으로 우편함 위치를 정의합니다. 메일 별칭을 제공하는 것은 방이 여러 개 있는 큰 회사에서 방 번호를 개인의 주소로 제공하는 것과 같습니다. 방 번호를 제공하지 않으면 우편물이 중앙 주소로 배달됩니다. 방 번호가 없으면 건물 안에서 우편물을 배달할 위치를 확인할 수 없으므로 잘못 배달될 가능성이 있습니다. 예를 들어, 이름이 Kevin Smith인 두 사람이 같은 건물에 있을 경우 둘 중 한 명만 우편물을 받을 수 있습니다. 문제를 해결하려면 각 Kevin Smith의 주소에 방 번호를 추가해야 합니다.

메일링 목록을 만들 때 가급적 많은 도메인과 위치 독립적 주소를 사용하십시오. 별칭 파일의 이식성과 유연성을 개선하려면 메일링 목록의 별칭 항목을 가급적 일반적이고 시스템 독립적으로 만드십시오. 예를 들어, 이름이 ignatz인 사용자가 도메인 example.com의 시스템 mars에 있으면 ignatz@mars 대신 별칭 ignatz@example을 만드십시오. 사용자 ignatz가 시스템 이름을 변경하고 example 도메인은 유지할 경우 시스템 이름의 변경 사항을 반영하도록 별칭 파일을 업데이트할 필요가 없습니다.

별칭 항목을 만들 때 한 행에 하나씩 별칭을 입력하십시오. 사용자의 시스템 이름이 포함된 항목은 하나만 있어야 합니다. 예를 들어, 사용자 ignatz에 대해 다음 항목을 만들 수 있습니다.

ignatz: iggy.ignatz
iggyi: iggy.ignatz
iggy.ignatz: ignatz@mars

로컬 이름이나 도메인에 대해 별칭을 만들 수 있습니다. 예를 들어, 시스템 mars와 도메인 planets에 우편함이 있는 사용자 fred의 별칭 항목은 NIS 별칭 맵에 다음 항목을 포함할 수 있습니다.

fred: fred@planets

도메인 외부의 사용자를 포함하는 메일 목록을 만들 때는 사용자 이름과 도메인 이름을 사용하여 별칭을 만드십시오. 예를 들어, 이름이 smallberries인 사용자가 도메인 example.com의 시스템 privet에 있으면 별칭을 smallberries@example.com으로 만드십시오. 이제 메일이 사용자의 도메인을 벗어나면 보낸 사람의 전자 메일 주소가 정규화된 도메인 이름으로 자동 변환됩니다.

다음 목록에서는 메일 별칭을 만들고 관리하는 방법에 대해 설명합니다.

  • NIS aliases 맵이나 로컬 /etc/mail/aliases 파일에서 전역적으로 사용할 메일 별칭을 만들 수 있습니다. 같은 별칭 파일을 사용하는 메일링 목록을 만들어 관리할 수도 있습니다.

  • 메일 서비스 구성에 따라 NIS 이름 서비스를 사용해 전역 aliases 데이터베이스를 유지 관리하여 별칭을 관리할 수 있습니다. 또는 모든 로컬 /etc/mail/aliases 파일을 업데이트하여 별칭을 동기화할 수 있습니다.

  • 사용자도 별칭을 만들고 사용할 수 있습니다. 해당 사용자만 사용할 수 있는 ~/.mailrc 파일이나 아무나 사용할 수 있는 로컬 /etc/mail/aliases 파일에서 별칭을 만들 수 있습니다. 사용자는 보통 NIS 별칭 파일을 만들거나 관리할 수 없습니다.