레이블이 squirrelmail인 게시물을 표시합니다. 모든 게시물 표시
레이블이 squirrelmail인 게시물을 표시합니다. 모든 게시물 표시

2012-09-16

Linux]suse linux qmail 설치하기


 SuSE Linux 9.2 Professional 상에서 qmail+mysql+vpopmail+qmailadmin+qmail-scanner+spamassassin+courier-imap+squirrelmail 설치하기


 목적 :

   1. 사용자 계정을 mysql 을 이용함으로써 추가나 삭제를 할수 있다.
   2. vpopmail 을 설치함으로써 가상 도메인에 대한 관리를 손쉽게 할수 있다.
   3. qmail-scanner 을 설치함으로써 바이러스에 대한 필터링을 한다.
   4. squirrelmail로 웹상에서 메일을 사용할 수 있게 한다.
   5. qmailadmin으로 웹상에서 메일계정을 쉽게 관리할 수 있게 한다.
   6. qmailMrtg로 웹상에서 메일서버의 트래픽을 쉽게 관찰할 수 있게 한다.


 아래의 파일은 2005.05.09 현재 최신 버전을 다운 받은 리스트이며, 위와 같은 조합의 메일 시스템을 구축하기 위한 모듈들입니다.



 qmail 관련

   http://qmail.kldp.org/src       : qmail-1.03,
   http://inter7.com               : vpopmail, qmailadmin, autoresponder
   http://www.ezmlm.org/           : ezmlm, ezmlm-idx
   http://qmail.org/netqmail/      : netqmail 패치
   autorespond-2.0.4.tar.gz        // 자동응답담당하는 모듈
   daemontools-0.76.tar.gz         // qmail 자동화 관리툴
   ezmlm-0.53.tar.gz               // qmail 지원하는 메일링리스트
   ezmlm-idx-0.440.tar.gz          //            
   maildrop-1.8.0.tar.bz2          // qmail-scanner에 연동되는 모듈
   netqmail-1.05.tar.gz            // qmail 패치
   qmail-1.03.tar.gz              
   qmailadmin-1.2.7.tar.gz         // 웹상에서 메일계정관리
   ucspi-tcp-0.88.tar.gz
   vpopmail-5.4.2.tar.gz           // 가상 메일지원모듈
   qmailmrtg7-4.2.tar.gz           // qmail 트래픽 모니터링
   qmail-scanner-1.25.tgz          // qmail-scanner (바이러스 필터링)
   Mail-SpamAssassin-3.0.3.tar.gz  // spamAssassin         http://spamassassin.apache.org
   Time-HiRes-1.67.tar.gz          // qmail-scanner설치시 필요
   clamav-0.84.tar.gz              // qmail-scanner 애드온
 
  mysql
   mysql-4.x.x.tar.gz              // http://www.mysql.com



  imapd
   (http://inter7.com/
        courier-imap-4.0.2.20050403.tar.bz2     // 웹메일을 지원하기 위한 모듈


  web

  httpd-2.0.54.tar.gz                     // http://www.apache.org
  php-5.0.4.tar.gz                        // http://www.php.net
  squirrelmail-1.4.4.tar.gz               // 웹메일 클라이언트    http://www.squirrelmail.org



 기타

  텍스트상에서 웹서핑하기 위한 도구
     lynx-2.8.5-26.i586.rpm          // http://www.rpmfind.net,  http://www.lynx.org

 

 패치
  qmail-1_03-mysql-0_6_6.patch
           -> 사용자 여부를 시스템 계정이 아닌 mysql 에서 하기 위한 패치.

  qmail-103.patch
           -> oversize dns 을 위한 패치

  checkpassword-0.81--mysql-0.6.6.patch
          -> pop3 사용시 사용자에 대한 패스워드 확인을  mysql 에서 하기 위한 패치. vpopmail 을 설치한다면 필요없습니다.

  qmailqueue-patch          
          -> qmail-scanner 를 위한 queue 패치입니다.

  qmail-smtp-auth.tar.gz
          -> 이것은 smtp 사용시 팝계정을 가진 사용자에 한해 smtp 를 사용하게 하자는 패치입니다. 좋더군요.

  relaymailfrom.patch
            -> 옵션으로 보내는 사람의 메일 주소로 smtp 릴레이를 막자는 패치입니다.



   패치가 많다고 해서 한번에 다 적용하려고 하지 말고. 하나씩 설치할때마다 필요한 패치를 그때 그때 적용하고 qmail 을 재 빌드하고 컴파일 하면 됩니다.
    ** 위의 netqmail을 이용해서 패치를 해도 됩니다.



 설치 순서



 * qmail 압축 풀기


 # tar -xvzf qmail-1.03.tar.gz
 # cd qmail-1.03


 * qmail 설치를 위한 디렉토리 생성

 # mkdir  /var/qmail


 * qmail 운영을 위한 유저, 그룹을 만들어 주기 위해 운영체제에 따라 INSTALL.ids를 편집한다. 리눅스상에서는 다음과 같다.
   INSTALL.ids 는 qmail-1.03 디렉토리에 존재한다.


   groupadd nofiles

   useradd -g nofiles -d /var/qmail/alias alias

   useradd -g nofiles -d /var/qmail qmaild

   useradd -g nofiles -d /var/qmail qmaill

   useradd -g nofiles -d /var/qmail qmailp

   groupadd qmail

   useradd -g qmail -d /var/qmail qmailq

   useradd -g qmail -d /var/qmail qmailr

   useradd -g qmail -d /var/qmail qmails



 * qmail과 부수적인 패키지 설치

squirrelmail guide 문서


웹메일 사용에 대한 안내


본 서버에서 사용하는 웹메일은 여러분들이 전세계 어느 곳에 있던지 사용할 수 있습니다. 그리고 사용한 컴퓨터에 아무런 정보가 남지 않기 때문에 다른 곳에서 메일을 확인하시고 간단히 보내는 경우 사용할 수 있습니다.
일반적인 웹브라저인 인터넷 익스플로러를 실행한 화면은 다음과 같습니다. 그러면 주소칸에http://mail.pettree.co.kr/squirrelmail/ 을 넣습니다.
다음과 같은 다람쥐가 여러분들을 반길겁니다. 본 서버에서 사용하는 웹 메일 프로그램은 다람쥐 메일이라는 프로그램입니다.
자신의 아이디와 패스워드를 입력하고 로그인을 하십시오.
아무런 설정없이 로그인을 하는 경우 다음과 같은 화면을 볼 수 있습니다. 이 화면에서도 기본적인 것을 사용할 수 있지만 좀더 나은 환경을 만들기 위해서는 조금 수정을 해야 합니다. 현재 왼쪽편에 보이는 화면은 여러분의 유일한 폴더인 받은 편지함입니다. 여기서 여러분이 보낸 메일이나 지운 편지함을 만들어야 합니다.첫번째왼쪽 위의 Folders라는 부분을 클릭합니다.
그러면 다음과 같은 화면이 나오는데 폴더 만들기에서 Trash라고 입력을 하고 만들기를 합니다.
그 다음 Sent라는 폴더를 만듭니다.
두 폴더를 만들고 난 후에는 다음과 같이 폴더 리스트를 갱신한다.
이제 폴더리스트를 보면 좀 전과는 다르게 세 개의 폴더가 생겼다. 이렇게 세 개의 폴더가 생겼지만 아직 보낸 편지함과 지운 편지함으로 사용할 수 없다. 그렇게 사용하기 위해서는 옵션에서 설정을 해 줘야 한다.
다시 오른쪽 위에 옵션 부분을 클릭을 해라.
옵션을 클릭하면 다음과 같은 화면이 나온다. 이 가운데 일단 폴더 설정부분을 클릭을 해라.
폴더 설정에서 지운 편지함과 보낸 편지함을 좀 전에 만든 폴더에 연결을 해야 한다.
다음과 같이 지운편지함과 보낸 편지함을 서로 연결해라.
다음은 화면을 좀더 편하게 보는 옵션에 대해 설명을 한다. 그리고 화면 설정에서 한글 부분은 영어를 매번 사용하지 않는다면 꼭 설정을 해야된다. 다음과 같이 화면 설정부분을 클릭해라
화면설정 부분에서 보면 언어를 설정하는 부분이 있다. 이 부분에서 Korean을 설정하고 폴더 리스트의 폭을 결정하는 부분에서 200 pixels에서 120pixel이나 아니면 여러분이 원하는 크기로 바꾸면 된다.
언어와 폴더 리스트의 폭을 결정하고 난 후 맨 마지막에 있는 HTML로 온 메일은 HTML로 기본으로 보여주기 부분을 체크하기 바란다. 왜냐면 요즘은 외부에서 메일을 보내는 경우나 또는 다른 사람들이 메일을 보낼 때 HTML로 보낸 메일이 많이 있는데 그런 경우 알아서 다람쥐 메일이 보여준다.
위에서 얘기한 모든 것을 다 한 후 제출버튼을 누르고 난 후 페이지 갱신 부분을 다음과 같이 클릭하면 됩니다.

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옵션을 넣으셔야 합니다.
안하셨다면 재설치