2008. 9. 18.

큐메일 서버 구축 #8 - courier-imap 설치

외부에서 급하게 메일을 확인할 일이 있을 경우 메일 클라이언트 프로그램 설정하기 귀찮을때가 있습니다.
그럴 경우를 위해 보통 웹메일을 많이 이용하게 됩니다.
웹메일을 설치하기에 앞서 웹메일을 구축하는데 필요한 imap를 설치하도록 하겠습니다.
imap의 종류는 여러가지가 있는데 큐메일은 imap2002보다는 courier-imap와 연동이 잘 됩니다.
따라서 필자는 courier-imap를 설치하도록 하겠습니다.

1. Tcl 패키지 설치
Tcl은 다른 응용 프로그램에 내장되도록 디자인된 단순한 스크립트 언어 입니다.
Tcl은 Tk 패키지에 포함된 위젯 모음인 Tk와 함께 사용되도록 만들어진 패키지 입니다.
이 패키지는 yum mirror에서 지원을 하므로 추후 업데이트를 위해 yum으로 설치 합니다.
※ 보통 레드헷 시스템에서는 기본적으로 설치가 되어 있습니다.
[root@localhost]# yum -y install tcl


2. expect 패키지 설치
Expect는 telnet, ftp, passwd, fsck, rlogin, tip 등과 같은 상호 대화식 응용 프로그램을
자동화 하는 Tcl 확장 프로그램 입니다.
또한 Expect는 응용 프로그램을 테스트 하는데 유용하게 사용되는 프로그램이기도 합니다.
최근의 레드헷 시스템에서는 yum mirror에서 지원하므로 추후 업데이트를 위해 yum으로 설치 합니다.
[root@localhost]# yum -y install expect

※ 만약 OS의 버전이 낮아 yum에서 지원하지 않는다면 rpm.pbone.net 에서 검색하여 설치하면 됩니다.

3. 퍼미션 조정
courier-imap는 보안을 위하여 일반유저의 권한으로 컴파일 한뒤에 root유저로 설치합니다.
따라서 필자처럼 만약 보안을 위해 퍼미션을 조정해놨다면 임시적으로 조정해주셔야 됩니다.
또한 courier-imap를 컴파일할때 vpopmail의 library를 필요로 하기 때문에 같이 조정합니다.
[root@localhost]# chmod 755 /usr/bin/gcc
[root@localhost]# chmod 755 /usr/bin/g++
[root@localhost]# chmod 755 /usr/bin/find
[root@localhost]# chmod 755 /usr/bin/which
[root@localhost]# chmod 755 /usr/bin/make
[root@localhost]# chmod 755 /usr/bin/install
[root@localhost]# chmod 777 /home/vpopmail/lib/
[root@localhost]# chmod 777 /home/vpopmail/lib/libvpopmail.a


4. 임시계정 생성
앞서 말했듯이 보안을 위해 일반유저(uid 500이상) 권한으로 컴파일 해야 됩니다.
따라서 일반 사용자 계정을 생성해주도록 합니다. 필자는 편하게 webmail 이라고 하겠습니다.
[root@localhost]# useradd webmail


5. courier-imap 설치 (최신버전 : http://sourceforge.net/projects/courier/)
현재 강좌를 쓰는 시점(2006.07.01)에서 courier-imap의 최신버전은 4.1.1 입니다.
그러나 courier-imap 4.x 버전은 이것저것 설치해줄것이 너무 많아 귀찮은점이 많이 있습니다.
따라서 필자는 courier-imap 3.x 버전을 사용해 설치를 하도록 하겠습니다.
courier-imap 3.x 버전은 필자의 개인 패키지 미러에 있습니다.
(http://pkg.tini4u.net/mta/qmail/source/)
또한 일반유저 권한으로 컴파일 해야 되기 때문에 임시 디렉토리인 /var/tmp/에서 하도록 하겠습니다.

- 일반 유저로 변환후 컴파일
[root@localhost]# su - webmail
[webmail@localhost]$ cd /var/tmp
[webmail@localhost]$ wget http://pkg.tini4u.net/mta/qmail/source/courier-imap-3.0.8.tar.bz2
[webmail@localhost]$ tar xfj courier-imap-3.0.8.tar.bz2
[webmail@localhost]$ cd courier-imap-3.0.8
[webmail@localhost]$ CFLAGS="-DHAVE_OPEN_SMTP_RELAY"; export CFLAGS
[webmail@localhost]$ ./configure \
--prefix=/usr \
--datadir=/usr/share/courier-imap \
--sysconfdir=/etc/courier-imap \
--libexecdir=/usr/libexec/courier-imap \
--localstatedir=/var \
--mandir=/usr/share/man \
--without-ipv6 \
--enable-unicode \
--with-authvchkpw \
--with-redhat \
--without-authdaemon \
--without-authmysql \
--without-authldap \
--without-authdaemon \
--without-authpgsql
[webmail@localhost]$ make
[webmail@localhost]$ make check
[webmail@localhost]$ exit


- root로 설치
[root@localhost]# cd /var/tmp/courier-imap-3.0.8
[root@localhost]# make install
[root@localhost]# make install-configure


- courier-imap 데몬 스크립트 복사
[root@localhost]# cp -f courier-imap.sysvinit /etc/rc.d/init.d/courier-imap
[root@localhost]# chown root.root /etc/rc.d/init.d/courier-imap
[root@localhost]# chmod 755 /etc/rc.d/init.d/courier-imap
[root@localhost]# chkconfig --add courier-imap
[root@localhost]# chkconfig --level 345 courier-imap on


- 임시계정 삭제 및 퍼미션 복구
컴파일과 설치가 모두 정상적으로 되었으므로 임시계정을 삭제하고 퍼미션도 복원합니다.
[root@localhost]# userdel -r webmail
[root@localhost]# chmod 700 /usr/bin/gcc
[root@localhost]# chmod 700 /usr/bin/g++
[root@localhost]# chmod 700 /usr/bin/find
[root@localhost]# chmod 700 /usr/bin/which
[root@localhost]# chmod 700 /usr/bin/make
[root@localhost]# chmod 700 /usr/bin/install
[root@localhost]# chmod 755 /home/vpopmail/lib/
[root@localhost]# chmod 644 /home/vpopmail/lib/libvpopmail.a


- 스크립트 수정
courier-imap가 root가 아닌 vpopmail 유저와 vchkpw 그룹으로 실행되도록 수정합니다.
※ imapd.rc 파일은 58라인을, pop3d.rc 파일은 51라인을 수정하시면 됩니다.
[root@localhost]# vi /usr/libexec/courier-imap/imapd.rc
원본 : -stderrlogger=${exec_prefix}/sbin/courierlogger \
수정 : -stderrlogger=${exec_prefix}/sbin/courierlogger -user=vpopmail -group=vchkpw \
[root@localhost]# vi /usr/libexec/courier-imap/pop3d.rc
원본 : -stderrlogger=${exec_prefix}/sbin/courierlogger \
수정 : -stderrlogger=${exec_prefix}/sbin/courierlogger -user=vpopmail -group=vchkpw \
[root@localhost]# chmod 755 /usr/libexec/courier-imap/imapd.rc
[root@localhost]# chmod 755 /usr/libexec/courier-imap/pop3d.rc


- imap 설정
기본적으로 courier-imap를 설치하고 시작하게 되면 아무런 데몬도 시작되지 않습니다.
그렇기 때문에 imap 스크립트를 수정해서 데몬을 실행하겠다고 수정해줘야 됩니다.
※ imapd 파일의 373 라인을 수정하시면 됩니다.
[root@localhost]# vi /etc/courier-imap/imapd
원본 : IMAPDSTART=NO
수정 : IMAPDSTART=YES


- courier-imap 시작
[root@localhost]# /etc/rc.d/init.d/courier-imap start
Starting Courier-IMAP server: imap

댓글 없음: