10-3. 메일 서버 설치 및 운영
- 센드메일 설정 및 가동
[실습]
naver.com 메일 서버와 daum.net 메일 서버를 구축하자.
0.
앞 10-1장의 실습에 이어서 해야 한다.
1. [ Fedora Server-메일 서버 ]
naver.com 메일 서버를 구축한다.
1-1 메일 서버를 구현하기 위한 필수 패키지는 sendmail, sendmail-cf, dovecot 세 가지이다.
기본적으로 sendmail은 설치가 되어 있었으므로, sendmail-cf와 dovecot만 설치하면 된다.
간편하게 "yum -y install sendmail-cf dovecot" 명령으로 한꺼번에 설치한다.
[sendmail-cf와 dovecot의 패키지 설치]
1-2 /etc/mail/sendmail.cf 파일을 다음과 같이 수정한다.
85행쯤 : Cwlocalhost -> Cwnaver.com (붙여서 쓸 것)
261행쯤 : O DaemonPortOptions=Port=smtp, Addr=127.0.0.1, Name=MTA
-> O DaemonPortOptions=Port=smtp,
Name=MTA (",Addr=127.0.0.1"부분 삭제)
[85행 수정]
[261행 수정]
[/etc/mail/sendmail.cf 수정]
※ /etc/mail/sendmail.cf 파일은 Sendmail 서버의 설정 파일이다.
설정 내용이 길고 복잡하여 꽤 까다롭게 여겨지지만, 꼭 필요한 부분만 알면 된다.
- Cw도메인 이름 : 도메인 이름에 대한 메일 서버로 사용하겠다는 의미
- MaxMessageSize=용량 : 한 개 메일의 본문과 첨부 파일을 합친 제한 용량(Byte 단위)
- Mlocal 설정 내용 : 전체 메일 공간의 제한
- O QueueDirectory=/var/spool/mqueue : 메일 전송 시에 임시 저장 디렉토리
- O DaemonPortOptions=Port=smtp, Addr=127.0.0.1, Name=MTA :
Addr=127.0.0.1은 자기 자신만 메일을 보낼 수 있다는 의미.
그래서 외부에서도 메일을 보낼 수 있도록 이 부분을 삭제한 것임
sendmail.cf 파일을 수정한 후에는 "service sendmail restart"로 센드메일 데몬을 재시작해야 한다.
하지만 지금은 다른 설정까지 모두 마친 후에 서비스를 다시 시작할 것이므로,
아직은 서비스를 재시작하지 않아도 된다.
1-3 외부 네트워크 또는 호스트가 메일을 보낼 수 있도록 허가해 준다.
/etc/mail/access 파일에 다음 내용을 추가해 준다.
naver.com RELAY -> naver.com 도메인의 릴레이 허용
daum.net RELAY -> daum.net 도메인의 릴레이 허용
192.168.xxx RELAY -> 192.168.xxx.ooo 컴퓨터의 릴레이 허용 (나는 192.168.000)
[/etc/mail/access 수정]
1-4 /etc/mail/access 파일을 수정한 후에는
"makemap hash /etc/mail/access < /etc/mail/access" 명령어로 적용시켜 줘야 한다.
[makemap 명령어]
/etc/mail/access 파일을 수정하고나면, 꼭 "makemap" 명령어를 수행한 후에,
"service sendmail restart"로 센드메일 데몬을 재시작해야 한다.
하지만 지금은 모두 설정한 후에 서비스를 시작할 것이므로 데몬을 재시작하지 않아도 된다.
1-5 그림 [센드메일 서버의 자세한 작동 원리]에서 나온 사용자에게
메일 박스의 내용을 보내주는 dovecot 데몬의 설정 파일은 /etc/dovecot.conf이다.
vi나 gedit로 다음 부분을 수정해 준다.
16행쯤 : base_dir = /var/run/dovecot/ -> 주석(#) 제거
20행쯤 : protocols = imap imaps pop3 pop3s -> 주석(#) 제거
42행쯤 : listen = *, [::] -> 주석(#) 제거
86행쯤 : ssl_listen = * -> 주석(#) 제거 및 * 추가
89행쯤 : ssl = yes -> 주석(#) 제거
139행쯤 : login_dir = /var/run/dovecot/login -> 주석(#) 제거
149행쯤 : login_user = dovecot -> 주석(#) 제거
224행쯤 : mail_location = mbox:~/mail:INBOX=/var/mail/%u -> 주석(#) 제거 및 219행 복사
312행쯤 : mail_access_groups = mail -> 주석(#) 제거 및 mail 추가
361행쯤 : lock_method = fcntl -> 주석(#) 제거
540행쯤 : login_executable = /usr/libexec/dovecot/imap-login -> 주석(#) 제거
553행쯤 : mail_executable = /usr/libexec/dovecot/imap -> 주석(#) 제거
617행쯤 : login_executable = /usr/libexec/dovecot/pop3-login -> 주석(#) 제거
621행쯤 : mail_executable = /usr/libc/dovecot/pop3 -> 주석(#) 제거
782행쯤 : auth_executable = /usr/libexec/dovecot/dovecot-auth -> 주석(#) 제거
[/etc/dovecot.conf 수정]
※ /etc/dovecot.conf 설정 파일도 내용이 많이 복잡하다.
앞에서 수정한 내용 중 20행의 protocols는 4가지 프로토콜을 모두 사용한다는 의미다.
42행의 "*"은 IPV4를, "[::]"는 IPV6 프로토콜을 의미한다.
또, 224행의 mail_location 부분은 기존의 메일 박스(/var/mail/사용자명)를 사용하기 위한 것이다.
그 외에는 /etc/dovecot.conf의 주석에 상세히 잘 나와 있으니, 참조하도록 하자.
더 자세하게 알고 싶으면 http://www.dovecot.org에 들어가거나, "man dovecot.conf" 명령으로 확인해 보도록 한다.
dovecot.conf를 수정하면 "service dovecot restart"로 서비스를 다시 시작해야 한다.
하지만 지금은 모두 설정한 후에 서비스를 시작할 것이므로 데몬을 재시작하지 않아도 된다.
1-6 naver.com의 메일 계정 사용자인 'lee'를 생성하자.(암호도 쉽게 'lee'로 해 주자)
'lee'의 메일 계정은 lee@naver.com이 될 것이다.
[사용자 생성]
1-7 Sendmail 데몬은 restart해 주고, dovecot 데몬은 start한다.
[데몬(서비스) 시작]
1-8 "system-config-firewall" 명령으로 보안 수준을 설정한다.
관련된 포트는 sendmail 25번, pop3 110번, imap 143번, pop3s 995번, imaps 993번이다.
먼저 [신뢰하는 서비스]에서 'DNS', 'SSL을 통한 IMAP', 'SSL을 통한 POP-3', '메일(SMTP)'
네 개를 체크해 준다.
[방화벽 설정 1]
[그 외의 포트]에는 110(tcp)와 143(tcp) 포트를 추가해 준다.
[방화벽 설정 2]
완료되었으면 적용 아이콘을 클릭해서 적용한 후 [방화벽 설정] 창을 닫는다.
1-9 컴퓨터가 부팅할 때 자동으로 E-Mail 서비스를 할 수 있도록
"chkconfig dovecot on" 명령으로 설정한다.
설정 후에 "system-config-services" 명령으로 확인하면
dovecot이 자동으로 시작된다는 초록색으로 되어 있을 것이다.
(sendmail은 이미 자동으로 시작되도록 설정되어 있을 것이다)
[dovecot 자동 실행 확인]
지금까지 진행한 것은 그림 [구현할 인터넷 구성도]의 naver.com 메일 서버를 완성한 것이다.
daum.net 메일 서버를 만들기 전에 naver.com 메일 서버가 자체적으로 잘 작동하는지 확인해 보자.
그림 [구현할 인터넷 구성도]의 naver.com의 사용자인
'lee'의 PC인 'Windows Client'에서 lee@naver.com 자기 자신한테 메일을 보내 보도록 하자.
2. [ Windows Client(=호스트OS) ]
naver.com 메일 서버가 작동하는지 테스트하자.
현재 Windows Client PC는 lee@naver.com 계정을 가진 사용자의 컴퓨터로 가정한다.
2-1 Windows의 [시작] -> [Microsoft Office] -> [Microsoft Office Outlook]을 실행한다.
※ Windows Vista 이전의 운영체제에서는 아웃룩 익스프레스(Outlook Express)를 실행하면
거의 동일하게 작동한다.
나는 오피스의 아웃룩 2007을 사용해보도록 하겠다.
※ Windows 7에서는 MS Office에 포함된 아웃룩을 사용하거나, 무료 이메일 클라이언트인
Thunderbird(http://www.mozilla.or.kr에서 다운로드)를 사용하면 된다.
아웃룩을 처음 실행하고
[도구] -> [계정 설정]으로 들어간다.
전자 메일 계정에서 [새로 만들기] 클릭
2-2 "수동으로 서버 설정 또는 추가 서버 유형 구성" 체크 -> [다음]
"인터넷 전자 메일" 체크 -> [다음]
인터넷 전자 메일 설정에서
사용자 이름은 "리네이버"로 하고 전자 메일 주소를 "lee@naver.com"으로 설정한다.
계정 유형은 'POP3'으로 두고,
받는 메일 서버와 보내는 메일 서버 모두를
그림 [구현할 인터넷 구성도]에 나온 mail.naver.com으로 입력한다.
로그온 정보에서 사용자 이름과 암호는 모두 "lee"로 설정하자.
[인터넷 전자 메일 설정]
2-3 설정이 끝났으면 <마침>을 클릭하고, <닫기>를 클릭해서 설정을 종료한다.
2-4 메일 작성 아이콘을 클릭해서 자기 자신(lee@naver.com)한테 메일을 보내 보도록 한다.
작성이 끝나면 보내기 아이콘을 클릭해서 메일을 보낸다.
[메일 테스트]
만약에 보내기 버튼이 보이지 않는 경우에는 위 그림의 경로로 보내기를 하자.
2-5 잠시 후에 메뉴의 [도구] -> [보내기 및 받기] -> [모두 받기]나
[보내기/받기] 버튼을 클릭해서
메일이 오는지 확인한다.
다음과 같이 메일이 잘 온다면 그림 [구현할 인터넷 구성도]의
naver.com 메일 서버 및 네임 서버가
정상적으로 작동하는 것이다.
[naver.com 메일 서버 및 네임 서버 정상작동 확인]
※ 메일이 '정크 메일' 폴더에 들어가 있다면, 메일을 선택한 후 마우스 오른쪽 버튼을 클릭하고,
[정크 메일] -> [보낸 사람을 수신 허용 목록에 추가]를 선택해 주면 정상적인 주소로 인식한다.
그리고 메일을 다시 보내고 메뉴의 [도구] -> [보내기 및 받기] -> [모두 받기]를 선택하면 된다.
3. [ Fedora Server(B) ]
이번에는 그림 [구현할 인터넷 구성도]의 daum.net 메일 서버를 구축한다.
3-1 Sendmail 관련 패키지를 설치한다.
# yum -y install sendmail-cf dovecot
3-2 vi 에디터로 /etc/mail/sendmail.cf 파일을 다음과 같이 수정한다.
85행쯤 : Cwlocalhost -> Cwdaum.net (붙여서 쓸 것)
261행쯤 : O DaemonPortOptions=Port=smtp, Addr=127.0.0.1, Name=MTA
-> O DaemonPortOptions=Port=smtp,
Name=MTA(",Addr=127.0.0.1"부분 삭제)
※ vi 에디터에서 행을 표시하려면 [ESC] -> [:](콜론)을 누른 후 "set number"를 입력하면 된다.
3-3 외부 네트워크 또는 호스트가 메일을 보낼 수 있도록 허가해 준다.
vi 에디터로 /etc/mail/access 파일에 다음 내용을 추가해 준다.
naver.com RELAY -> naver.com 도메인의 릴레이 허용
daum.net RELAY -> daum.net 도메인의 릴레이 허용
192.168.xxx RELAY -> 192.168.xxx.ooo 컴퓨터의 릴레이 허용 (나는 192.168.000)
[/etc/mail/access 편집]
수정 후에 다음의 명령을 수행한다.
# makemap hash /etc/mail/access < /etc/mail/access
3-4 vi 에디터로 /etc/dovecot.conf 파일의 아래 부분을 수정해 준다.
(":set number"로 행 번호를 보이게 하자)
16행쯤 : base_dir = /var/run/dovecot/ -> 주석(#) 제거
20행쯤 : protocols = imap imaps pop3 pop3s -> 주석(#) 제거
42행쯤 : listen = *, [::] -> 주석(#) 제거
86행쯤 : ssl_listen = * -> 주석(#) 제거 및 * 추가
89행쯤 : ssl = yes -> 주석(#) 제거
139행쯤 : login_dir = /var/run/dovecot/login -> 주석(#) 제거
149행쯤 : login_user = dovecot -> 주석(#) 제거
224행쯤 : mail_location = mbox:~/mail:INBOX=/var/mail/%u -> 주석(#) 제거 및 219행 복사
312행쯤 : mail_access_groups = mail -> 주석(#) 제거 및 mail 추가
361행쯤 : lock_method = fcntl -> 주석(#) 제거
540행쯤 : login_executable = /usr/libexec/dovecot/imap-login -> 주석(#) 제거
553행쯤 : mail_executable = /usr/libexec/dovecot/imap -> 주석(#) 제거
617행쯤 : login_executable = /usr/libexec/dovecot/pop3-login -> 주석(#) 제거
621행쯤 : mail_executable = /usr/libc/dovecot/pop3 -> 주석(#) 제거
782행쯤 : auth_executable = /usr/libexec/dovecot/dovecot-auth -> 주석(#) 제거
3-5 daum.net의 메일 계정 사용자인 'kim'을 생성한다.(암호도 쉽게 'kim'으로 해 주자)
'kim'의 메일 계정은 kim@daum.net이 될 것이다.
# useradd kim
# passwd kim
3-6 Sendmail 데몬과 dovecot 데몬을 재시작한다.
# service sendmail restart
# service dovecot restart
3-7 텍스트 모드의 보안 수준 설정 도구인 "system-config-firewall-tui" 명령
또는 "lokkit" 명령으로
'Enable'의 체크를 해제해서 방화벽을 해제해 준다.
[방화벽 사용 안 함]
3-8 부팅 시마다 자동으로 시작되도록 설정한다.
# chkconfig sendmail on
# chkconfig dovecot on
이렇게 해서 그림 [구현할 인터넷 구성도]의 2대의 메일 서버 및 네임 서버 구성을 완료하였다.
이제는 Fedora Client 사용자(kim@daum.net)가 Windows Client 사용자(lee@naver.com)에게
메일을 보내도록 해 보자.
4. [ Fedora Client ]
그림 [구현할 인터넷 구성도]의 kim@daum.net이 lee@naver.com에게 메일을 보내 보자.
4-1 X 윈도우 메뉴 [프로그램] -> [오피스] -> [에볼루션 메일 및 달력]을 선택하거나,
터미널에서 "evolution" 명령을 입력한다.
처음 환영 메시지가 나오면 <앞으로>를 클릭한다.
4-2 [백업에서 복구] 창에서 <앞으로>를 클릭한다.
4-3 [신상 정보] 창에서 '전체 이름'은 적절히 입력하고,
'전자 메일 주소'는 kim@daum.net을 입력한다.
나머지는 비워 놓아도 된다.
(전체 이름은 메일을 보낼 때 상대편에게 보이는 이름이다)
<앞으로>를 클릭한다.
[Fedora 메일 클라이언트 설정 1]
※ 한영 전환은 왼쪽 [Ctrl] + [Space] 또는 [한/영] 혹은 오른쪽 [Alt]다.
4-4 [메일 받기] 창에서는 서버 종류를 'POP'으로 선택하고, 호스트는 "mail.daum.net",
사용자는 "kim"을 입력하고 인증 방법은 '암호', '암호 기억'을 체크한다.
<앞으로>를 클릭한다.
[페도라 메일 클라이언트 설정 2]
4-5 [받기 옵션] 창에서는 그냥 <앞으로>를 클릭한다.
4-6 [메일 보내기] 창에서는 서버 종류를 'SMTP'로 선택하고, 서버에 'mail.daum.net'을 입력한다.
또, 바로 아래에 있는 '서버에 인증이 필요'의 체크를 해제한 후 <앞으로>를 클릭한다.
[페도라 메일 클라이언트 설정 3]
4-7 [계정 관리] 창의 이름에 자동으로 kim@daum.net이 입력되어 있을 것이다.
<앞으로>를 클릭한다.
[페도라 메일 클라이언트 설정 4]
4-8 [시간대]에서 '아시아/서울'을 선택하거나, 지도에서 서울의 위치를 클릭하고,
<앞으로>를 클릭한다.
4-9 [완료] 창에서 <적용>을 클릭해서 설정을 마친다.
4-10 [Evolution] 창에서 새로 만들기 아이콘을 클릭하고,
다음과 같이 lee@naver.com에게 메일을 쓰고,
보내기 아이콘을 클릭한다. (현재 사용자는 kim@daum.net 이다)
[외부에 편지쓰기]
5. [ Windows Client(=호스트OS) ]
lee@naver.com에게 온 메일이 있는지 확인한다.
5-1 Windows Mail의 메뉴에서 [도구] -> [보내기 및 받기] -> [모두 받기]를 선택해서
받은 메일이 있는지 확인한다.
김다음(kim@daum.net)에게 온 편지가 확인되었다.
(혹시 정크 메일로 들어갔다면, '김다음'을 수신 허용으로 해 준다)
[kim@daum.net이 보낸 메일 확인]
5-2 회신 아이콘을 클릭해서, 답장을 보내 본다. 필요하면 첨부 파일도 첨부한다.
[답장 쓰기]
6. [ Fedora Client ]
Evolution을 실행한 후, 보내고 받기 아이콘을 클릭해서 메일을 확인한다.
이네이버(lee@naver.com)가 보낸 답장이 확인될 것이다. 처음에 암호를 입력하라고 나오면
kim@daum.net의 암호인 "kim"을 입력한다.
이네이버(lee@naver.com)가 보낸 파일이 확인되었다.
[lee@naver.com이 보낸 메일 확인]
7. [ Fedora Server, Fedora Server(B) ]
지금 구현한 메일 서버를 Fedora Server와 Fedora Server(B)에서
각각 "메일 서버 완료"라는 이름으로 스냅샷을 저장하자.
이상으로 그림 [구현할 인터넷 구성도]의 구현이 완료되었다.
지금은 사설 네트워크 내부에 구현을 했지만,
외부 인터넷상에 구현하는 것도 이와 동일하다고 생각하면 된다.
메일을 주고 받는 과정을 그림 [구현할 인터넷 구성도]를 보면서 이해한다면
더 쉽게 이해가 될 것이다.