먼저, 메일과 관련된 기본적인 용어를 봅시다.
SMTP(Simple Mail Transfer Protocol) 메일을 보낼 때 사용되는 프로토콜 - 포트 25번
POP3(Post Office Protocol) 서버에 있는 메일을 클라이언트로 가져올 때 사용되는 프로토콜 - 포트 110번
IMAP(Internet Message Access Protocol) POP3가 보낸 메일에 대해서 서버에 더 이상 남아 있지 않지만 IMAP로 접속하여 메일을 읽으면 메일 서버에는 메일이 계속 존재한다. - 포트 143번 예)뉴스그룹
MUA(Mail User Agent) 메일을 보내기 위해 사용되는 프로그램 예) 아웃룩, 넷스케이프 메신저
MTA(Mail Transfer Agent) 메일을 전달받아 이를 외부로 전달하는 프로그램 예) sendmail, Qmail
MDA(Mail Delivery Agent) 전송 받은 메일을 해당 사용자에게 전달하는 역할로, 동일한 메일서버에서 서로 메일을 주고받을 경우
|
sendmail 설정 기본 파일들 /etc/sendmail.cf 파일과 /etc/mail/디렉토리에 모두 모여 있습니다. 메일 서버로 사용할 도메인을 네임서버에 추가했다면, 특별히 변경할 사항은 거의 없습니다.
[root@ns root]# ls -al /etc/sendmail.cf -rw-r--r-- 1 root root 46298 12월 3 2001 /etc/sendmail.cf 합계 108 [root@ns root]# ls -al /etc/mail drwxr-xr-x 2 root root 4096 5월 20 16:40 . drwxr-xr-x 68 root root 8192 6월 10 13:47 .. -rw-r--r-- 1 root root 611 12월 3 2001 Makefile -rw-r--r-- 1 root root 364 3월 27 18:22 access -rw-r--r-- 1 root root 12288 5월 20 16:40 access.db -rw-r--r-- 1 root root 0 12월 3 2001 domaintable -rw-r--r-- 1 root root 12288 5월 20 16:40 domaintable.db -r--r--r-- 1 bin bin 5555 3월 11 15:54 helpfile -rw-r--r-- 1 root root 64 12월 3 2001 local-host-names -rw-r--r-- 1 root root 0 12월 3 2001 mailertable -rw-r--r-- 1 root root 12288 5월 20 16:41 mailertable.db -rw-r--r-- 1 root root 2475 12월 3 2001 sendmail.mc -rw-r--r-- 1 root bin 628 5월 14 04:02 statistics -rw-r--r-- 1 root root 127 12월 3 2001 trusted-users -rw-r--r-- 1 root root 0 12월 3 2001 virtusertable -rw-r--r-- 1 root root 12288 5월 20 16:40 virtusertable.db [root@ns root]#
|
1. sendmail.cf 파일 설정 sendmail.cf 파일은 설정파일 자체가 암호화 같은 설정이며, 전문적인 기능을 구현하지 않는 경우라면 기본적인 설정을 두고 설정을 변경할 사항은 없습니다. 여기서에서는 기본 설정을 변경하지 않도록 합니다. 자세한 설정 옵션들은 전문서적을 참고하시기 바랍니다. 참고적으로 sendmail.cf 파일의 Cwlocalhost는 메일서버의 수신을 받기 위한 도메인을 지정하는 부분으로 /etc/mail/local-host-names과 같은 역할을 합니다.
[root@ns root]# cat /etc/sendmail.cf | more # # Copyright (c) 1998-2001 Sendmail, Inc. and its suppliers. # All rights reserved. # Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved. # Copyright (c) 1988, 1993 # The Regents of the University of California. All rights reserved. # # By using this file, you agree to the terms and conditions set # forth in the LICENSE file which can be found at the top level of # the sendmail distribution. # #
###################################################################### ###################################################################### ##### ##### SENDMAIL CONFIGURATION FILE ##### ##### ###################################################################### ######################################################################
--More--
|
2. /etc/mail/local-host-names 설정 네임서버를 운영하며 가상도메인 서비스를 할 경우, local-host-names에 서비스 하고 있는 도메인을 추가적으로 적어 주시면 됩니다. 여기에서는 네임서버에서 지정한 linuxroot.co.kr 을 추가합니다.
[root@ns root]# cat /etc/mail/local-host-names # local-host-names - include all aliases for your machine here. linuxroot.co.kr [root@ns root]#
|
3. /etc/mail/access 설정 특정 호스트나 도메인이 메일 서버에 대한 접근을 설정합니다. sendmail server에서 access 할 호스트에 대해 메일 Relay를 허용하는 것으로 보면 됩니다. 메일서버를 사용할 사내 네트워크 대역(보통 C클래스)을 추가합니다. 61.40.233. RELAY
[root@ns root]# cat /etc/mail/local-host-names # local-host-names - include all aliases for your machine here. [root@ns root]# cat /etc/mail/access # Check the /usr/share/doc/sendmail-8.11.6/README.cf file for a description # of the format of this file. (search for access_db in that file) # The /usr/share/doc/sendmail-8.11.6/README.cf is part of the sendmail-doc # package. # # by default we allow relaying from localhost... localhost.localdomain RELAY localhost RELAY 127.0.0.1 RELAY 61.40.233. RELAY [root@ns root]#
| [참고1] 특정 도메인이나 호스트에 대해 접근을 제어도 가능합니다.
linuxroot.co.kr : 특정 도메인에 대해서 접근 제어 mail.linuxroot.co.kr : 특정 호스트에 대해서 접근 제어 61.40.233.122 : 특정 IP 주소에 접근 제어 admin@ : 특정 사용자에 대한 접근 제어
| [참고2] 접근 제어 옵션
OK : 지정한 호스트나 도메인에 대한 허용 RELAY : RELAY 허용 REJECT : 수신 및 발신 거부(반송) DISCARD : 받은 메일 폐기 "501 message" : 특정 사용자 및 주소에 대한 message 반송 접근 거부 "550 message" : 특정 도메인에 대한 message 반송 "570 message" : 특정 도메인 또는 특정 메일에 대한 경고 메시지 및 메일 거부
| [주의] 스팸메일 서버의 악용을 막기 위해, makemap hash /etc/mail/access < /etc/mail/access 명령으로 데이터베이스를 갱신합니다.
[root@ns root]# makemap hash /etc/mail/access < /etc/mail/access
| /etc/rc.d/init.d/sendmail start 로 sendmail 데몬을 띄웁니다.
[root@ns root]# /etc/rc.d/init.d/sendmail stop sendmail를 종료하고 있습니다: [실패] [root@ns root]# /etc/rc.d/init.d/sendmail start sendmail (을)를 시작합니다: [확인]
|
4. sendmail 설정 테스트 설정 테스트는 여러 가지가 있지만, mail 명령어를 이용하여 실제적으로 메일을 보내고 받는 손쉬운 방법을 이용합니다.
- 보내기 테스트 a. 셋팅된 메일서버의 텍스트 상에 mail 명령으로 외부의 웹 메일이나 다른 네트워크의 계정이 있는 곳으로 메일을 보내 봅니다. subject: => 제목을 입력합니다 엔터를 친 후, 내용을 입력합니다. 내용을 마칠 경우는 다음 줄에서 .을 입력합니다.
[root@ns root]# mail woojk@kebi.com Subject: test this is a test mail. . Cc: [root@ns root]#
| b. 보낸 외부 메일서버로 로그인 한 다음, 제대로 왔는지 확인합니다. c. 제대로 오지 않았다면, 대부분 sendmail 데몬이 뜨지 않은 경우이므로, 데몬을 재 실행한 다음 다시 테스트합니다.
- 외부 메일 받기 테스트 a. 외부 웹 메일이나 계정서비스에서 셋팅한 메일서버의 사용자계정으로 직접 메일을 보내봅니다. 저는 계속해서 linuxroot.co.kr 호스트에 네임서버와 메일서버를 같이 셋팅하였으므로, admin@linuxroot.co.kr 으로 메일을 보냅니다. b. 셋팅한 메일 서버의 명령 창에서 mail 명령으로 메일을 확인합니다.
[admin@ns admin]$ mail No mail for admin [admin@ns admin]$
| |