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