2012-09-15

Mail]qmail 설치후 다람쥐메일(squirrelmail)설치하기(웹메일시스템구현)

qmail+ mysql +vpopmail+ qmailadmin 은 앞서 작성한 문서를 참고 하시면 됩니다.

여기에 이번에 추가적으로 웹메일클라이언트인 squirrelmail을 포트로 설치하고자 하며, 또한 스팸방지를위해 spamassassin이라고 하는것을 추가적으로 설치하고자 합니다.


앞서 문서에서 qmailadmin까지의 설정을 마치셨으면 다음의 작업을 합니다.

(사실 qmailadmin에서 유저계정을 추가하면 (vpopmail설치시) ~vpopmail/domains/해당도메인/계정 이 생성이 됩니다. 아래의 경우는 일반유저를 대상으로 한경우를 대비해서랍니다. )


1. /usr/share/skel/ 하의 몇몇 파일을 수정합니다.


-- dot.cshrc 파일의 경우

set mail = (/var/mail/$USER)행을 찾아 다음과 같이 추가를 해줍니다.

-----------------------------------------------

...

#set mail=(/var/mail/$USER)
setenv MAIL ~vpopmail/domains/해당도메인명/$USER/Mailbox
setenv MAILDIR ~vpopmail/domains/해당도메인명/$USER/Maildir
setenv MAILTMP ~vpopmail/domains/해당도메인명/$USER/Maildir/tmpfile
alias mail `/var/qmail/bin/maildir2mbox;/var/qmail/bin/qmail`
alias pine `/var/qmail/bin/maildir2mbox;/var/qmail/bin/pinq`
alias elm `/var/qmail/bin/maildir2mbox;/var/qmail/bin/elq`

-----------------------------------------------
-- dot.shrc 파일의 경우
-----------------------------------------------
...


MAIL=~vpopmail/domains /해당도메인명/$USER/Mailbox
MAILDIR=~vpopmail/domains/해당도메인명/$USER /Maildir
MAILTMP=~vpopmail/domains/해당도메인명/$USER/Maildir/tmpfile
export MAIL MAILDIR MAILTMP

alias mail=`/var/qmail/bin/maildir2mbox;/var/qmail/bin/qmail`
alias pine=`/var/qmail/bin/maildir2mbox;/var/qmail/bin/pinq`
alias elm=`/var/qmail/bin/maildir2mbox;/var/qmail/bin/elq`
-----------------------------------------------


2. Maildir 을 작성합니다.
# /var/qmail/bin/maildirmake /usr/share/skel/Maildir


3. 현재 계정이 있는 유저를 위해 작업합니다.
# cp -R /usr/share/skel/Maildir ~vpopmail/domains/도메인명/유저명
# chown -R 유저명 ~vpopmail/domains/도메인명/유저명/Maildir

4. 각자 계정의 rc파일을 변경합니다.

5. 이제 courier-imap을 설치합니다.
만약 qmail의 pop3프로그램을 사용하시겠다면 systemadmin.co.kr의 qmail설치문서를 참고하셔서 qmail-pop3d.sh를 작성하세요.

# cd /usr/ports/mail/courier-imap/
# make WITHOUT_OPENSSL=yes WITHOUT-PAM=yes WITHOUT_AUTHDAEMON=yes WITH_VPOPMAIL=yes WITH_TRASHQUOTA=yes install

**포트로 설치시 5.3R기준으로볼때 Makefile 에서 VPOPMAIL=${LOCALBASE}/vpopmail 로 되어있어 에러가 나는 경우 이 부분의 경로를 수정해주고 다시 make를 하면 됩니다. **

# vi Makefile
VPOPMAILDIR?= ${LOCALBASE}/vpopmail
+->VPOPMAILDIR?= /home/vpopmail

위 와 같이 수정을 합니다.

<B>
==> 5.4R 에서 설치시 주의사항 :
courier-imap 을 포트로 설치히면 이때 버전이 5.3R보다 높은 4.0.2버전이 설치된다.
이는 Makefile에서 VPOPMAIL이란 변수가 사라져서 vpopmail을 소스로 설치한 경우 "/usr/local/vpopmail/" 에서 파일을 찾을수 없다고 하면서 에러를 내고 인스톨이 중지된다.

그럼 인스톨중에 생성한 /usr/local/vpopmail을 삭제하고

1. /usr/ports/mail/vpopmail/Makefile 에 있는 PREFIX의 경로를 현재 설정에 맞게 수정한 다음 다시 make install
/usr/ports/mail/vpopmail/Makefile:
# User-configurable variables
#
# Define these to change from the default behaviour
#
[...]
# PREFIX - installation area for vpopmail (see comment below)
[...]
# Uncomment this, or set PREFIX to /home if you have an existing
# vpopmail install with the vpopmail users' home directory set to
# /home/vpopmail - package rules dictate we default
to /usr/local/vpopmail
#
#PREFIX?= /home
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ==> 이부분의 주석을 해제한다.

2. 심볼릭링크를 걸어서 해결한다.
# ln -s /home/vpopmail /usr/local/vpopmail

명 령어로 링크를 생성 한 다음 위의 make ... 명령을 다시 실행하면 원활히 진행이 된다.

imap 인증시에 vpopmail의 인증시스템을 사용합니다.


6. courier-imap의 세팅을 변경합니다.

# cd /usr/local/libexec/courier-imap/authlib/


Vchkpw 의 인증모듈만 남겨둡니다. (??)

# mkdir sample
# mv * ./sample(Vchkpw는 제외)
==> mv authcustom authpam authuserdb ./sample


////////////////////////////////////////////////////////////////////
[주 의]
5.4R 에서 포트로 courier-imap설치후 변화된점.

/usr/local/lib/courier-authlib/libauthvchkpw.so.0
/usr/local/lib/courier-authlib/libauthvchkpw.so
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ==> 기존의 파일대신에 생기는 파일이다.

디렉토리 구조의 변화로 인해
# cd /usr/local/libexec/courier-imap/authlib/
이 존재하지 않는다.
대신 아래와 같이 .so파일이 생성되는것을 알 수 있다.

#find / | egrep authvchkpw
/usr/local/lib/courier-authlib/libauthvchkpw.so.0
/usr/local/lib/courier-authlib/libauthvchkpw.so

그 래서 5.4R에서 설치시
=================================================
Vchkpw 의 인증모듈만 남겨둡니다. (??)

# mkdir sample
# mv * ./sample(Vchkpw는 제외)
==> mv authcustom authpam authuserdb ./sample
=================================================
부 분은 일단 건너뛴다.



/etc/rc.conf 파일에
courier_authdaemond_enable="YES"
courier_imap_imapd_enable="YES"

항 목을 추가한다.
////////////////////////////////////////////////////////////////////


# cd /usr/local/etc/courier-imap
# mv imapd.dist imapd
# vi imapd <- imapd의 내용을 수정한다.

*****************************************************

(아 래 ADDRESS는 수정해도되고 안해도 됨)

ADDRESS=0
+--> ADDRESS=192.168.1.21 -> 서버 ip



##NAME: AUTHMODULES:0
...
#AUTHMODULES="authcustom authuserdb authvchkpw authpam"
AUTHMODULES="authvchkpw"


##NAME: AUTHMODULES_ORIG:0
#
# For use by webadmin
#AUTHMODULES_ORIG="authcustom authuserdb authvchkpw authpam"
AUTHMODULES_ORIG="authvchkpw"

MAXPERIP=4
+--> MAXPERIP=10 -> 동일 ip에서 최대 접속 (각자 알아서 정하세요.)

IMAPDSTART=NO
+--> IMAPDSTART=YES -> yes로 해야 대몬이 시작함
*****************************************************

# mv imapd.cnf.dist imapd.cnf
# chmod 644 imapd.cnf
# vi imapd.cnf

****************

[ req_dn ]
C=US
ST=NY
L=New York
O=Courier Mail Server
OU=Automatically-generated IMAP SSL key
CN=localhost
emailAddress=postmaster@example.com --> emailAddress=postmaster@pettree.co.kr

****************

# chmod 444 imapd.cnf
# mv quotawarnmsg.example quotawarnmsg
# cd /usr/local/etc/rc.d

마찾가지로 sample이라는 폴더를 만들고 courier-imap관련 파일을 모두 옮깁니다. (courier-imap-imapd.sh 제외)

==> # mkdir sample


# mv courier-imap-imapd.sh.sample courier-imap-imapd.sh
# mv *.sample ./sample



courier-imap-imapd.sh 파일에서 imapd-ssl 관련사항들을 지웁니다.
안지우면 제대로 작동이 안되더군요... ^_____________^

# vi /usr/local/etc/rc.d/courier-imap-imapd.sh
===================================================================== 삭제된 부분

18
19 #if test ! -f /usr/local/etc/courier-imap/imapd-ssl
20 #then
21 # echo "/usr/local/etc/courier-imap/imapd-ssl does not exist, forgot make install-configure?"
22 # exit 1
23 #fi


26 #. /usr/local/etc/courier-imap/imapd-ssl

53 . /usr/local/etc/courier-imap/imapd ;#
54 # . /usr/local/etc/courier-imap/imapd-ssl ;
=====================================================================


////////////////////////////////////////////////////////////////////
==> 5.4R 포트에서 설치시 각각 해당 설정파일에 해당 항목만 존재한다.
따라서 위의 courier-imap-imapd.sh 파일에 위의 내용이 존재하질 않는다.

그리고 courier-imap-*.sh 파일이 courier_authdaemond.sh(imap인증담당)이 먼저 기동이
되어야 실행이 된다. 또한 이 데몬들은 /etc/rc.conf파일에 아래와 같이 등록이 되어야 한다.

courier_authdaemond_enable="YES"
courier_imap_imapd_enable="YES"
////////////////////////////////////////////////////////////////////


# /usr/local/etc/rc.d/courier-imap-imapd.sh start


이제 테스트를 해봅니다. 로컬에서 로컬, 외부에서 로컬, 로컬에서 외부를 해봅시다.
릴레이 설정도 검사합니다.



** 143포트가 열렸는지 확인합니다.

# netstat -na
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp4 0 0 *.143 *.* LISTEN
tcp6 0 0 *.143 *.* LISTEN

...



**



7. squirrelmail을 설치합니다.

# cd /usr/ports/mail/squirrelmail
# make install



7.1 php.ini 파일 수정

# cd /usr/local/etc
# vi php.ini-recommended(저장할때 php.ini로 저장) 혹은 vi php.ini

register_global=On
file_uploads = On

session.auto_start = 1

과 같이 수정한 후
:w php.ini => 현재 작업중인 파일을 php.ini파일로 저장
:q! => 현재 작업중인 파일을 저장하지 않고 끝냄


8. 아파치 설정에서 alias를 만들어줍니다.(httpd.conf)

# vi /usr/local/etc/apache2/httpd.conf

Alias /squirrelmail "/usr/local/www/squirrelmail/"을 추가합니다.


<Directory "/usr/local/www/squirrelmail">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>



9. squirrelmail 설정

# cd /usr/local/www/squirrelmail
# ./configure

-------------------------------------------------------------

configure 화면의 설정 내용.

1.Organization Preferences :
-> 6. Default Language : ko_KR

2. Server Setting :
-> 1. Domain 으로 들어가서 해당 도메인 명을 넣는다.
-> A. Update IMAP Settings : localhost:143 (courier)
-> 6. Authentication type : login <--확인

4. General Options :
-> 1. Default Charset : euc-KR


D. Set pre-defined settings for specific IMAP servers
-> courier


8. Plugins
-> 다람쥐메일의 플러그인입니다. 필요한것을 받아서 설치하세요.

# lynx www.squirrelmail.org/plugins.php 에서

아래의 플러그인을 받는다.

- unsafe_image_rules : html로 오는 메일과 그림을 바로 출력하게 해줌.
- address_add(address book) : 편지본문에서 바로 주소추가 가능하게 함
- archive_mail : 편지함의 편지를 html이나 elm형식으로 백업 가능하게 함.
- bookmarks(Add-ON) : 간단하게 즐겨찾기 기능 제공
- folder_sizes : 폴더의 사용률을 보여준다.
- msg_flags : 읽은 메시지와 읽지 않은 메시지등을 이쁜 아이콘으로 표시
- notes : 간단한 메모를 남길수 있는 기능을 제공
- view_as_html : 편지 본문에서 html과 text로 보기전환 가능


# tar -xvzpf unsafe_image_rules.xxx.tar.gz -C /usr/local/www/squirrelmail/plugins/
와 같은형식으로 squirrelmail 의 plugins 디렉토리 밑에 디렉토리를 만들어서 푼다.
( tar 의 -C 옵션은 타겟디렉토리를 지정하는 거랍니다.)



압축을 다 푼 후에
# chown -R www:www /usr/local/www/squirrelmail/plugins/


그리고 위에서 플러그 인을 추가하던 메뉴에서 해당 플러그인을 추가합니다.
(# cd /usr/local/www/squirrelmail/
# ./configure -> 8번에서 해당 플러그인을 추가하고 저장후 빠져나오기)


설 정을 하고 나옴.
그외의 설정을 한 뒤 "S"를 눌러 save를 합니다.
그 후 "q"를 눌러 빠져 나오면 됩니다.
-------------------------------------------------------------

웹 메일을 설정합니다.
여기서 imap login 형태는 login으로 합니다.
참고로 한글메일이 깨질 수가 있습니다.
이것은 php compile시 mbstring옵션을 넣으셔야 합니다.
안하셨다면 재설치

댓글 없음:

댓글 쓰기