sendmail
sendmail 은 Linux에서 SMTP를 사용하여 메일을 전송하는 프로그램입니다.
sendmail에서 주로 사용하는 설정파일에 대해 설명하겠습니다.
SendMail에서 사용되는 주요 설정파일은 대부분 /etc/mail에 존재하며 그 중 가장 중요한 파일은 /etc/mail/sendmail.cf 입니다.
-
/etc/mail/sendmail.cf
Cw |
메일을 수신할 호스트의 이름을 명기하는 항목으로 보통 도메인 명을 기입합니다. ex. 도메인이 smiletest1.io 일 경우 Cwsmiletest1.io로 입력합니다. |
Fw |
여러 도메인을 사용하는 경우 별도의 파일을 지정해서 사용할때 사용합니다. Default 값은 Fw/etc/mail/local-host-names 입니다. |
Dj |
발신 도메인을 특정도메인명으로 지정후 강제로 적용할때 사용합니다. ex. Djsmiletest1.io로 설정시 발신 도메인이 smiletest1.io로 강제 적용됩니다. |
Kvirtuser |
동일한 계정을 여러 가상 호스트들이 메일 주소로 동시에 사용할 수 있도록 관련 파일을 지정할 때 사용합니다. ex. Kvirtuser hash –o /etc/mail/virtuser.db |
Kaccess |
Access 관련 설정으로 특정 호스트나 도메인이 SendMail로 접근시 제어하기 위한 파일을 지정합니다. 서버로 접근을 허용하는 것을 Relay라고 하는데 허가 또는 거부 관련 설정을 담당하는 파일명을 사용합니다. ex. Kaccess hash -T<TMPF> -o /etc/mail/access.db |
O AliasFile |
Aliases 관련설정 항목으로, 특정 계정으로 메일을 수신시 다른 계정으로 메일이 전송되게 설정하는 파일을 지정합니다. ex. AliasFile=/etc/aliases |
O MaxMessageSize |
메일 메세지의 최대 크기를 제한하는 항목으로 단위는 Byte를 사용합니다. 값을 0으로 설정하거나 주석처리시 메세지 크기의 제한이 두지 않습니다. ex. O MaxmessageSize=0 |
O ForwardPath |
개인 사용자가 메일을 다른 사용자의 메일로 포워딩할때 설정하는 파일명을 지정합니다. ex. O ForwardPath=$z/.forward.$w:$z/.forward |
O DaemonPortOptions |
SMTP 데몬 옵션으로 25번 포트를 사용할 주소를 지정하는 항목입니다. Default 값은 Localhost(127.0.0.1)이며, 전역설정(0.0.0.0)시 모든 주소에서 사용가능합니다. ex. O DaemonPortOptions=smtp,Addr=127.0.0.1, Name=MTA |
O QueueDirectory |
메일 전송을 대기하는 큐 관련 설정 항목입니다. ex. O QueueDirectory=/var/spool/mqueue |
-
/etc/mail/sendmail.mc
sendmail의 매크로 설정파일이며 sendmail.cf를 삭제나 복원시에 M4 매크로 프로세서를 이용하여 생성합니다.
ex. m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
-
/etc/mail/local–host–names
메일 서버에 사용할 도메인을 지정하는 파일로 한 줄당 도메인 한개씩 기입합니다.
/etc/mail/sendmail.cf의 Fw 항목을 활성화 하여 사용합니다.
-
/etc/mail/access
메일서버로 접근하는 도메인이나 호스트를 허용/거부 설정하는 파일입니다.
두 개의 필드로 구분하며, 허용(RELAY), 거부(REJECT, DISCARD), 예외(OK)를 사용하여 접근권한을 조정 가능합니다.
첫 필드는 도메인명, 메일 계정, IP주소등을 기입합니다.
두 번째 필드는 정책(허용/거부) 설정을 기입합니다.
sendmail 데몬이 구동시 확인하는 파일은 /etc/mail/access.db 이기에 내용 수정시 makemap hash로 갱신작업이 필요합니다. ( ex. # makemap hash /etc/mail/access < /etc/mail/access )
Connect | 접속시도하는 클라이언트의 주소 또는 이름을 기반으로 제어합니다. |
From | 보낸 사용자 기반으로 제어합니다. |
To | 받는 사용자 기반으로 제어합니다 |
OK | DNS 조회가 되지 않더라도 메일을 허가하며, 거부된 도메인에 대해 예외 사항을 사용시 설정합니다. |
-
/etc/aliases
동일한 계정으로 들어오는 메일을 여러 사용자에게 전달시 사용합니다.
예를 들면 Admin이라는 대표계정으로 메일 수신시 이를 관리하는 다수 사용자에게 전달 가능합니다.
기본적으로 : 로 필드를 구별하며 2개의 필드를사용합니다.
메일링 리스트 파일을 사용시에는 4개의 필드를 사용합니다.
sendmail 데몬이 구동시 확인하는 파일은 /etc/alises.db 이기에 # newalises 또는 # sendmail -bi 명령으로 갱신작업을 해야합니다.
위와 같이 설정시 Administtator로 오는 모든 메일은 Administrator계정에 전달되지 않고 testuser1, testuser2, testuser3, testuser4@smiletest3.co.kr로 전달됩니다.
이때 Administrator 계정은 실제 존재하지 않아도 무관합니다.
admin으로 오는 메일은 도메인 주소와 상관없이 계정명을 기준으로 하기때문에 모든 admin을 사용하는 모든 도메인의 메일은 나중에 선언된 user2에게만 전달되며 user1에게는 전달되지 않습니다.
-
/etc/mail/virtusertable
하나의 계정명을 사용하는 여러도메인 존재시 하나의 계정에게만 메일을 전송하는 aliases의 문제점을 해결하기 위해 사용합니다.
메일을 포워딩할 때 사용 계정명이 중복 되더라도 여러 사용자에게 메일을 전달 가능합니다.
sendmail 데몬이 구동시 확인하는 파일은 /etc/mail/virtusertable.db 이기에 makemap hash명령으로 갱신작업을 해야 합니다. ( ex. makemap hasn /etc/mail/virtusertable < /etc/mail/virtusertable )