Linuxdoc Sgml/Cyrus-IMAP-HOWTO
<!doctype linuxdoc system>
<article>
<title> Cyrus IMAP HOWTO</title>
<author>Aurora Skarra-Gallagher (Community Vision)</author>
<date>v1.2, 5 September 2000</date>
<trans>옮긴이: 권태준 (linusben@kldp.org)</trans>
<tdate>옮긴날: 2000년 9월 7일</tdate>
<abstract>
Cyrus Imap 과 Cyrus Sasl 에 대한 설치, 설정, 실행 방법 소개
</abstract>
<toc>
<sect>이 문서에 대하여
<sect1>저작권
<p>(c) 2000 Aurora Skarra-Gallagher</p>
<p>이 부분은 HOWTO-HOWTO 에서 복사한 것입니다:</p>
<p>
이 메뉴얼은 다음의 제약 아래 전체, 혹은 일부를 무료로 재사용할 수 있습니다:
</p>
<p><itemize>
<item>
위에 명시한 저작권의 내용과 허가 내용은 이 문서의 전체 혹은 일부에 대해서 모두
해당됩니다.
<item>
어떠한 번역이나 파생된 작업은 배포되기 전에 저자의 승인을 받아야 합니다.
<item>
만약 이 문서의 일부를 배포하고 싶다면, 이 문서의 전체 내용을 얻을 수 있는 방법에 대한
소개가 반드시 들어가야 합니다.
<item>
적당한 인용 형식을 포함하고 있다면 이런 허락 없이도 작은 부분을 인용할 수 있습니다. 하지만
이런 예외는 학문적 목적의 사용으로 제한합니다: 그 범위는 저자에게 직접 문의하시기 바랍니다.
이러한 제한은 다른 사람들로부터 보호를 위한 것이지 여러분과 같은 배우고자 하는 사람들을
막고자 하는 것이 아닙니다. 이 문서가 작성된 SGML 소스를 포함한 문서 내의 모든 소스 코드는
GNU General Public License 를 따릅니다. 자세한 내용은 GNU 아카이브의 익명 FTP 에서 구하실
수 있습니다.
</itemize></p>
<sect1>피드백
<p>
어떤 의견(특히 오류가 있다면 수정내용)이 있다면 다음 주소로 이메일을 보내주세요
<url url="mailto:asg@CommunityVision.com" name="asg@CommunityVision.com">
</p>
<sect1>변경 사항
<p><itemize>
<item>
v1.2: SASL 설정 오류 수정, 새로운 postfix 설정 추가, 데이터베이스 정리 추가(Jernej 에게
감사를 표합니다)
<item>
v1.1: sendmail.mc 설정 오류 수정, IMAP 에 대한 기본 정보 추가.
</itemize></p>
<sect1>문서 내의 표기
<p><itemize>
<item><em>이탤릭</em> 디렉토리
<item><tt>타이프체</tt> 명령어
</itemize></p>
<sect>IMAP에 대한 소개
<sect1>IMAP 이 뭔가요?
<p>
<url url="http://www.computeruser.com/resources/dictionary/dictionary.html"
name="ComputerUser.com High-Tech Dictionary">에 IMAP 은 다음과 같이 정의되어 있습니다:
</p>
<p>
인터넷 메시지 억세스 프로토콜(Internet Message Access Protocol).
사용자에게 리모트 서버에 있는 email 을 제공해 주는 프로토콜. IMAP을 통하여 사용자는
메일박스 만들기, 지우기, 이름 바꾸기 등의 기능을 수행할 수 있으며, 새로운 메시지
받기, 받음 메시지 지우기, 메일 검색 기능 등을 이용할 수 있음. 메일을 보내기 위해서는
독립적인 프로토콜이 필요함. 다른 이름으로 인터넷 메일 억세스 프로토콜(Internet
Mail Access Protocol)이라고도 함.
</p>
<sect1>IMAP vs. POP
<p>
IMAP 은 서버 측에 매일이 보관되기 때문에 서로 다른 여러 곳에서 메일을 읽을 수 있습니다.
POP는 새로 도착한 읽지 않은 편지만이 서버측에 저장되고 읽은 메일이나 저장한 메일
정보는 메일 클라이언트 측에 저장이 됩니다. POP 에서 읽은 메일을 서버에서 지우지
않도록 설정을 할 수도 있지만, 그럴 경우 똑같은 메일을 여러번 확인하게 되고 저장 공간을
낭비하게 됩니다. 하지만 IMAP 은 설정하기가 훨씬 복잡합니다. 만약 당신이 하나의 이메일
계정만을 가지고 있다면 POP 가 차라리 좋은 해결책이 될 것입니다. 만약 하나 이상의
메일 계정에 대해서 여러 군데에서 접근을 하고 싶다면 IMAP 이 보다 효율적으로 사용될
것입니다.
</p>
<sect1>Cyrus IMAP vs. Washington IMAP
<p>
Cyrus IMAP은 독립적인 메일박스 데이터베이스를 가지고 있기 때문에 독립적으로 작동할 수
있으며 성능도 뛰어납니다. Washington IMAP 은 UNIX 표준 메일박스 형식을 사용하기 때문에
보다 적은 사용자 집단에 적합합니다. Washington IMAP 은 Cyrus IMAP 보다 많은 UNIX
시스템과 non-UNIX 시스템에 적용 가능하다는 장점도 있습니다. 가장 큰 차이점은 Cyrus
IMAP 의 경우 새로운 메일 계정을 추가하면서 리눅스 머신에 새로운 사용자를 추가할 수
없지만 Washington IMAP 은 그러한 기능을 제공하고 있습니다.
</p>
<sect>파일 구하기
<sect1>Cyrus Imap 홈페이지
<p>
현재 Cyrus Imap 의 홈페이지는 다음과 같습니다:
</p>
<p>
<url url="http://asg.web.cmu.edu/cyrus/imapd"
name="http://asg.web.cmu.edu/cyrus/imapd">
</p>
<sect1>파일 받기
<p>
IMAP 과 SASL 이 모두 필요합니다. 최신 프로그램을 다음에서 구하실 수 있을 겁니다:
</p>
<p>
<url url="ftp://ftp.andrew.cmu.edu/pub/cyrus-mail"
name="ftp://ftp.andrew.cmu.edu/pub/cyrus-mail">
</p>
<p>
다운받은 cyrus-imapd-X.X.X.tar.gz 과 cyrus-sasl-X.X.X.tar.gz 을 임시 디렉토리로 옮깁니다
(여기서 X.X.X 는 최신 버전을 의미합니다).
</p>
<p>
이 문서에서는 <em>/temp</em> 디렉토리에 파일들의 압축을 풀었다고 가정하겠습니다.
</p>
<sect>Cyrus SASL
<sect1>압축 풀기
<p>
다음과 같은 방법으로 파일의 압축을 풉니다.
</p>
<p><enum>
<item><tt> cd /temp</tt>
<item><tt> tar -zxvf cyrus-sasl-X.X.X.tar.gz</tt>
<item><tt> cd cyrus-sasl-X.X.X</tt>
</enum></p>
<sect1>실행 파일 만들기
<p>
대부분의 경우 다음과 같은 방법으로 프로그램을 쉽게 인스톨할 수 있을 것입니다. 만약
설정 내용을 바꾸고 싶다면 <tt>./configure --help | more</tt> 의 내용을 참조하시기
바랍니다.
</p>
<p><enum>
<item><tt> ./configure</tt>
<item><tt> make</tt>
<item><tt> make install</tt>
</enum></p>
<p>
만약 기본적인 sasldb 를 이용한 사용자 인증을 사용하지 않으려면 PAM, kerberos_v4,
passwd, shadow 가운데 사용할 방법을 지정해주어야 합니다. 만약 PAM 을 사용하여
인증을 처리하고자 한다면 위의 ./configure 를 다음과 같이 바꾸어 실행합니다:
</p>
<p><tt>./configure --with-pwcheck_method=PAM</tt></p>
<sect>Cyrus IMAP 설치
<sect1>압축 풀기
<p>
다음과 같은 과정으로 cyrus IMAP 을 <em>/temp</em> 에다 풉니다.
</p>
<p><enum>
<item><tt>cd /temp</tt>
<item><tt>tar -zxvf tar/cyrus-imapd-1.6.24.tar.gz</tt>
<item><tt>cd cyrus-imapd-1.6.24</tt>
</enum></p>
<sect1>com_err.h 에 대해서
<p>
제가 Cyrus IMAP 을 설치하려고 할 때 com_err.h 에서 에러가 발생했습니다.
제가 설치할 때 com_err.h 파일이 <em>/usr/include/et</em> 밑에 있었습니다.
그렇다면 이 파일을 <em>/usr/include</em>으로 옮기십시오. 다음 명령으로 이 파일이
제대로 위치를 찾았는지 확인할 수 있습니다:
</p>
<p><tt>locate com_err.h</tt></p>
<p>이 명령어는 파일이 어디에 위치하고 있는지를 보여줄 것입니다. 만약 <em>/usr/include</em>
밑에 있다면 다음 내용을 무시하셔도 됩니다. 만약 다른 디렉토리에 존재한다면 그냥 파일을
<em>/usr/include</em>로 복사하시기 바랍니다. 만약 이 파일이 없다면 다음 주소에서
새로 받아서 설치하시기 바랍니다:
<url url="http://www.ludd.luth.se/~jnilsson/cvsweb/cvsweb.cgi/src/contrib/com_err"
name="http://www.ludd.luth.se/~jnilsson/cvsweb/cvsweb.cgi/src/contrib/com_err">.
</p>
<sect1>설정하기
<p><tt> ./configure --with-auth=unix</tt></p>
<sect1>기본 사용자 추가
<p>
Cyrus 는 파일들을 소유할 사용자를 필요로 합니다. 기본 사용자는 cyrus가 됩니다. 다음
명령을 통하여 "mail" 그룹에 속하는 사용자 cyrus 를 시스템에 추가할 수 있습니다.
</p>
<p><tt>useradd -g mail cyrus</tt></p>
<p>
이 사용자 아이디에 대해 비밀번호를 넣고자 한다면 다음과 같이 하면 됩니다.
</p>
<p><tt>passwd cyrus</tt></p>
<sect1>실행파일 만들기
<p><enum>
<item><tt> make depend </tt>
<item><tt> make all CFLAGS=-O</tt>
<item><tt> make install</tt>
</enum></p>
<p>
이제 끝났습니다. 이제 Cyrus IMAP 을 설정하기만 하면 됩니다.
</p>
<sect> Cyrus IMAP 설정
<sect1>conf 파일 편집하기
<p><enum>
<item>/etc/syslog.conf 를 편집하여 아래와 같은 내용을 끝에 추가합니다:
<verb> local6.debug /var/adm/imapd.log
auth.debug /var/adm/auth.log</verb>
<item>새로 만들어진 /etc/imapd.conf 를 열고 다음 내용을 추가합니다:
<verb> configdirectory: /var/imap
partition-default: /var/spool/imap
admins: cyrus root
srvtab: /var/imap/srvtab
allowanonymouslogin: no
sasl_passwd_check: shadow</verb>
</enum></p>
<sect1>필요한 디렉토리들을 생성하기
<p>
이들 작업은 imap 에서 사용할 디렉토리들을 설정하기 위한 것입니다.
</p>
<p><enum>
<item><tt>mkdir /var/adm</tt>
<item><tt>touch /var/adm/imapd.log /var/adm/auth.log</tt>
<item><tt>mkdir /var/imap /var/spool/imap /var/imap/srvtab</tt>
<item><tt>chown cyrus /var/imap /var/spool/imap /var/imap/srvtab</tt>
<item><tt>chgrp mail /var/imap /var/spool/imap /var/imap/srvtab</tt>
<item><tt>chmod 750 /var/imap /var/spool/imap /var/imap/srvtab</tt>
<item><tt>su cyrus</tt>
</enum></p>
<p>
이제 cyrus 라는 유저 상태가 되었을 것입니다. 이는 파일의 소유권 문제 때문에 필요한
과정입니다. 계속 작업을 진행합니다:
</p>
<p><enum>
<item><tt>tools/mkimap</tt>
<item><tt>cd /var/imap</tt>
<item><tt>chattr +S . user quota user/* quota/*</tt>
<item><tt>chattr +S /var/spool/imap</tt>
<item><tt>exit</tt>
</enum></p>
<p>
이제 다시 root 로 돌아왔습니다. 마지막으로 다음 명령을 실행합니다.
</p>
<p><tt>chattr +S /var/spool/mqueue</tt></p>
<sect1>추가적인 설정 파일 편집
<p><enum>
<item>
<em>/etc/services</em>에서 다음 내용을 확인합니다. 내용이 없다면 추가하도록
합니다:
<verb> pop3 110/tcp
imap 143/tcp
imsp 406/tcp
kpop 1109/tcp
sieve 2000/tcp</verb>
<item>
<em>/etc/inetd.conf</em> 에서 모든 imap 과 pop3 관련 내용을 주석 처리합니다. 그리고
다음 내용을 추가하도록 합니다:
<verb> imap stream tcp nowait cyrus /usr/cyrus/bin/imapd imapd
pop3 stream tcp nowait cyrus /usr/cyrus/bin/imapd pop3d</verb>
<item>
<em>/etc/sendmail.mc</em> 을 편집합니다. 아래 내용을 추가하면서 추가적인 공백을 넣지
않도록 주의하셔야 합니다(탭이 제대로 들어가지 않을 수 있으니 이 문서의 내용을 복사하여
붙이지 마세요):
<verb> MAILER(local)
MAILER(cyrus)
define(`confLOCAL_MAILER',`cyrus')
LOCAL_RULE_0
R$=N $: $#local $: $1
R$=N < @ $=w . > $: $#local $: $1
Rbb + $+ < @ $=w . > $#cyrusbb $: $1</verb>
데이터를 구분하기 위해서는 탭을 사용합니다(예를 들어 R$=N 와 $: $#local $: $1 사이에는
세 개의 탭이 들어갑니다). 그리고는 다음과 같이 실행하세요:
<tt>m4 sendmail.mc > sendmail.cf</tt>
<item>
<em>/etc/group</em> 을 열고 사용자 daemon 을 mail 그룹에 추가합니다.
</enum></p>
<sect1>만약 sendmail 대신에 postfix 를 사용한다면?
<p>
Postfix는 sendmail 과 같은 메일 전송 프로그램입니다. 대부분의 리눅스 머신에는 sendmail이
기본으로 설치되어 있습니다. 만약 여러분이 postfix 를 사용하신다면 위의 설정 단계 가운데
세번째 단계를 무시하고 다음 내용을 <em>/etc/postfix/master.cf</em>에 추가하시기 바랍니다.
</p>
<p><verb>
cyrus unix - n n - - pipe flags=R user=cyrus
argv=/usr/sbin/cyrdeliver -e -m ${extension} ${user}
</verb></p>
<p>또한 다음 내용을 <em>/etc/postfix/main.cf</em>에도 추가합니다.</p>
<p><tt>local_transport = cyrus</tt></p>
<sect> Cyrus IMAP 구현
<sect1>cyrus 관리자 추가
<p>
다음 명령을 수행하여 cyrus 를 사용하기 위한 사용자를 세팅합니다
</p>
<p><tt>/usr/local/sbin/saslpasswd cyrus</tt></p>
<sect1>Cyrus IMAP 테스트하기
<p><enum>
<item><tt>killall -HUP inetd</tt>
<item><tt>su cyrus</tt>
<item><tt>imtest -m login -p imap localhost</tt>
</enum></p>
<p>
이제 비밀번호를 입력합니다. 만약 다음과 같은 화면이 보인다면 설정이 성공적으로
이루어진 것입니다:
</p>
<p><verb> (L01 OK User logged in means you're in)</verb></p>
<p>다음 과정을 통하여 로그아웃합니다</p>
<p><verb> . logout</verb></p>
<sect1>일반 사용자 설정
<p>
cyrus 의 권한으로 다음 명령을 실행합니다. 이 과정은 각각의 사용자들에 대해서
메일박스(es)를 설정하게 됩니다. (username) 부분에는 설정하고자 하는 사용자의
아이디를 입력합니다.
</p>
<p><enum>
<item><tt>cyradm localhost</tt>
<item><tt>cm user.(username)</tt> (모든 사용자에 대해서 설정합니다)
<item><tt>quit</tt>
<item><tt>exit</tt> (루트로 돌아옵니다)
</enum></p>
<p>
이제 루트 권한으로 각각의 사용자들의 비밀번호를 입력합니다:
</p>
<p><tt>saslpasswd (username)</tt></p>
<sect1>배달 데이터베이스 정리
<p>
만약 배달 데이터베이스를 정기적으로 정리해주지 않는다면, 파일 시스템이 넘치게 될 지도
모릅니다. 따라서 하루에 한 번 정도 cron 을 통해 이 작업을 해주는 것이 좋습니다. 우선
<em>/etc/cron.daily</em> 디렉토리에 cyrus-imapd 라는 이름의 파일을 만들고 다음과 같이
두 줄을 추가해줍니다:
</p>
<p><verb>
#!/bin/bash
su cyrus -s /bin/bash -c '/usr/cyrus/bin/deliver -E 3'
</verb></p>
<p>
다음과 같이 하여 이 스크립트를 실행 가능하게 만듭니다:
<tt>chmod 755 cyrus-imapd</tt>
</p>
<p>
또한 데이터베이스 파일들을 저장하기 위해서는 deliverdb 디렉토리를 만듭니다:
</p>
<p><tt>mkdir /var/imap/deliverdb</tt></p>
<sect1>마무리
<p>
시스템을 재부팅하고 새 설정이 제대로 실행되는지 확인합니다.
</p>
<sect>문제 해결
<p>
만약 사용시 어떤 문제가 생긴다면 다음과 같은 방법으로 에러를 확인할 수 있습니다:
</p>
<p><enum>
<item><tt>tail /var/log/messages</tt>
<item><tt>tail /var/adm/imapd.log</tt>
<item><tt>killall sendmail && sendmail -bd -X /root/error.log</tt>
(그런 뒤 /root/error.log을 살펴보십시오)
</enum></p>
</article>
|
You are secretive in your dealings but never to the extent of trickery. |











