웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
qmail-1.03설치④ (vpopmail+mysql)
2003.02.28 08:06
첨부파일은 제홈의 설치이야기에서 받아가세요.
질문은 메일로 안 받습니다. 홈의 질답게시판에서 해주세요.
비츠로 홈 - http://vitro.pe.kr
qmail-1.03설치④ (vpopmail+mysql)
이번엔 mysql db 연동하는 경우다.
vpopmail을 설치할시 먼저 mysql과 연동할것인가 아니면 연동 안할것인가
하는것을 결정해야 한다.
그러나 내 생각에 mysql과 연동은 크게 중요한거 같지 않다.
어차피 mysql과 연동해도 메일은 시스템에 파일로 저장되고 보내지며
단지 디비에는 유저 아디와 비번이 입력되며 인증 정보가 저장된다.
실제 유저 추가와 삭제등의 관리 작업은 시스템 컴멘드를 쓰든가 웹에서
qmailadmin으로 하여야 하므로...
어쨋든 나는 디비와 연동하는 방법과 연동하지 않는것 두가지 경우를 다 한다.
http://www.inter7.com/vpopmail.html 에서 소스를 다운 받는다.
vpopmail-5.2.1
소스 압축해제
tar xpfz /var/tmp/qmail/$PACKAGE-$VERSION.tar.gz -C /var/tmp
vpopmail유저 추가와 그룹추가
groupadd -f -g 110 vchkpw > /dev/null 2>&1 || :
useradd -c "vpopmail" -g vchkpw -u 110 -s /bin/false -r -m -d /home/vpopmail vpopmail > /dev/null 2>&1 || :
vpop유저를 만들면 홈폴더가 생성되나 그 아래 etc 폴더를 미리 만들어두지 않으면
나중에 etc/아래에 inc_deps lib_deps가 생성되지 않는다. 왜그런진 모르겟다... ^^
반드시 아래 폴더를 만들어라. 나중에 mysql과 연동할때나 다른것과 연동시 문제된다.
mkdir -p /home/vpopmail/etc
chmod 777 /home/vpopmail/etc
소스 폴더로 이동
cd /var/tmp/vpopmail-5.2.1/
다른 부분은 앞의 mysql을 연동하지 않는 부분과 모두 같으나
아래부분만 다르다... 아래 부분만 주의해서 앞을 mysql과 연동하지 않는
부분의 설치와 똑같이 하면 된다.
디비 설정 부분과 도메인 추가하고 나서 시스템 유저를 vpopmail로
변환하는 과정이 다르다.
------- mysql을 연동시 다른 부분 시작 ------------
우선은 데이터 베이스에 vpopmail이라는 디비명을 추가하고
vpopmail이라는 디비 유저를 추가해줘야 한다.
mysql 루트로 접속해서
mysql -u root -p 디비루트비번
CREATE DATABASE vpopmail;
use vpopmail;
grant CREATE,INSERT,SELECT,DELETE,UPDATE on vpopmail.* to vpopmail;
grant CREATE,INSERT,SELECT,DELETE,UPDATE on vpopmail.* to vpopmail@localhost;
insert into user (Host,User,Password) values('localhost','vpopmail',PASSWORD('패스워드'));
set password for 'vpopmail'@'%'=password('패스워드');
set password for 'vpopmail'@'localhost'=password('패스워드');
flush privileges;"
아래 파일을 열어서 그곳에 있는 디비 설정을 바꾼다.
위에서 정의한 vpopmail 유저와 vpopmail 패스워드 등을 수정한다.
디비 테이블은 vpopmail을 설치할때 자동으로 생성되니 디비만 생성한ㄷ.
vi /var/tmp/$PACKAGE-$VERSION/vmysql.h
아래에서 기본도메인명을 자신이 사용할 메일 도메인으로 바꾼다.
당근 dns mx 설정은 잘되어 있어야할것이다.
echo "#######################"
echo "### vpop with mysql ###"
echo "#######################"
./configure --enable-default-domain=기본도메인명
--enable-roaming-users=y
--enable-tcprules-prog=/usr/bin/tcprules
--enable-relay-clear-minutes=15
--enable-mysql-logging=y
--enable-logging=e
--enable-sqlincdir=/usr/include/mysql
--enable-sqllibdir=/usr/lib/mysql
--enable-mysql=y
--enable-mysql-replication=y
--enable-valias=y
--enable-many-domains=n
------- mysql을 연동시 다른 부분 끝 ------------
컴파일
make
find /* > /root/vpopmail1
실제 설치
make install-strip
find /* > /root/vpopmail2
diff /root/vpopmail1 /root/vpopmail2 > /root/vpopmail-install
지겹게 이야기 했지만 find로 기존의 시스템 파일목록을
만든후 소스 설치후에 다시 find로 소스 설치후의
파일목록을 만들어 두개를 비교하면 설치된
파일 리스트가 나온다. 나중에 언인스톨할 시를
위해 만들어 둔다.
이제 vpop설정이다. 우선 기본적으로 자신의 호스트의 릴레이를 열어준다.
tcpserver설치하면서 했던 설정파일은 vpop에선 무시되고 이제 아래의 설정파일을 따르게 된다.
echo "127.0.0.1:allow,RELAYCLIENT=""" > ~vpopmail/etc/tcp.smtp
chown 110.110 ~vpopmail/etc/tcp.smtp
tcpserver설정파일을 cdb파일로 변환
tcprules ~vpopmail/etc/tcp.smtp.cdb ~vpopmail/etc/tcp.smtp.tmp < ~vpopmail/etc/tcp.smtp
chown 110.110 ~vpopmail/etc/tcp.smtp.cdb
vpop은 한번 인증한 사용자에게 일정기간동안 유동아피라도 릴레이를 열어준다.
clearopensmtp 라는 프로그램은 유동아피 유저들에게 임시적으로 열어준
오픈 릴레이 호스트 목록을 지워준다.
위에서 지워주는 주기를 --enable-relay-clear-minutes=15 (15분)라고 정의해주었다.
설치한후 릴레이 설정을 한번 다 지워준다.
~vpopmail/bin/clearopensmtp
그리고 qmail의 설정파일을 다시 설정
우선 큐메일 설정에서 /home/유저명/Maildir로 기본 전송을 이제 vpopmail의
디렉토리 아래로 배달할것이므로 아래처럼 localhost만 설정
echo "localhost" > /var/qmail/control/locals
qmail-vpop이라는 시작 스크립트를 다운받는다.
첨부파일을 /etc/rc.d/init.d/qmail 로 복사시킨다. 기존의 시작 스크립트가 있으면 덮어쓴다.
vpopmail의 실행 명령(유저추가,도메인추가등)을 경로로 이동하지 않고 쓰기 위해
기본 경로 추가해준다.
echo 'export PATH="$PATH:/home/vpopmail/bin"' >> /etc/profile
. /etc/profile
vpop의 릴레이 청소를 크론탭에 등록해서 주기적으로 릴레이 목록을 청소해준다.
여기서는 15분간 청소할것이다.
아래 내용으로 크론탭에 등록한다.
10,25,40,55 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null
chmod 700 /etc/rc.d/init.d/qmail
chown 0.0 /etc/rc.d/init.d/qmail
/etc/rc.d/init.d/qmail restart
이제 다 설치는 끝나고 기본 도메인을 추가한다.
###### Add to Domain ######
vadddomain 도메인명 <--- configure시 설정해준 기본 도메인명
---------------- 이부분이 앞의 부분과 다르다. --------------------
###### user convert for mysql
vconvert -e -m 도메인명 <--- 자신의 시스템에 있는 기존 유저들을 vpop계정으로 변환
------------------------------------------------------------------------
자신의 도메인에 알수없는 유저명으로 올 경우 받을 이메일 주소다.
(나의 경우는 vitro@vitro.pe.kr로 모두 받는것으로 설정했다.)
##### unknow user deliver ####
echo "| /home/vpopmail/bin/vdelivermail '' vitro@vitro.pe.kr" > ~vpopmail/domains/도메인명/.qmail-default
아래처럼 하나의 계정으로 모두 포워드를 새로 걸어준다.
루트나 메일러 데몬, 포스트 마스터등의 메일을 일반 유저하나에게 모두 모아서
보내게 한다. (관리상 에러나 각종 메시지를 하나의 일반 유저로 메일을 받아 보는게 편하다)
#### qmail-root qmail-mailer-daemon qmail-postmaster mail forward ####
echo "vitro@vitro.pe.kr" > ~vpopmail/domains/도메인명/.qmail-root
cp ~vpopmail/domains/도메인명/.qmail-root ~vpopmail/domains/도메인명/.qmail-mailer-daemon
cp ~vpopmail/domains/도메인명/.qmail-root ~vpopmail/domains/도메인명/.qmail-postmaster
만약 가상 도메인을 하나 더 추가해주고 싶으면 위의 기본 도메인 추가시의 설정과 같다.
그리고 새로운 가상 도메인과 기존 가상 도메인의 알리아스를 만들기 위해서는
vaddaliasdomain new.com old.com 라는 명령으로 추가해준다.
그리고 아웃룩으로 접속하면 되는데...
주의할것은
가상도메인 유저는
사용자명 입력시 유저명@도에인명.com
으로 입력해줘야 한다.
vpop의 인증을 사용하므로 이같이 한다.
질문은 메일로 안 받습니다. 홈의 질답게시판에서 해주세요.
비츠로 홈 - http://vitro.pe.kr
qmail-1.03설치④ (vpopmail+mysql)
이번엔 mysql db 연동하는 경우다.
vpopmail을 설치할시 먼저 mysql과 연동할것인가 아니면 연동 안할것인가
하는것을 결정해야 한다.
그러나 내 생각에 mysql과 연동은 크게 중요한거 같지 않다.
어차피 mysql과 연동해도 메일은 시스템에 파일로 저장되고 보내지며
단지 디비에는 유저 아디와 비번이 입력되며 인증 정보가 저장된다.
실제 유저 추가와 삭제등의 관리 작업은 시스템 컴멘드를 쓰든가 웹에서
qmailadmin으로 하여야 하므로...
어쨋든 나는 디비와 연동하는 방법과 연동하지 않는것 두가지 경우를 다 한다.
http://www.inter7.com/vpopmail.html 에서 소스를 다운 받는다.
vpopmail-5.2.1
소스 압축해제
tar xpfz /var/tmp/qmail/$PACKAGE-$VERSION.tar.gz -C /var/tmp
vpopmail유저 추가와 그룹추가
groupadd -f -g 110 vchkpw > /dev/null 2>&1 || :
useradd -c "vpopmail" -g vchkpw -u 110 -s /bin/false -r -m -d /home/vpopmail vpopmail > /dev/null 2>&1 || :
vpop유저를 만들면 홈폴더가 생성되나 그 아래 etc 폴더를 미리 만들어두지 않으면
나중에 etc/아래에 inc_deps lib_deps가 생성되지 않는다. 왜그런진 모르겟다... ^^
반드시 아래 폴더를 만들어라. 나중에 mysql과 연동할때나 다른것과 연동시 문제된다.
mkdir -p /home/vpopmail/etc
chmod 777 /home/vpopmail/etc
소스 폴더로 이동
cd /var/tmp/vpopmail-5.2.1/
다른 부분은 앞의 mysql을 연동하지 않는 부분과 모두 같으나
아래부분만 다르다... 아래 부분만 주의해서 앞을 mysql과 연동하지 않는
부분의 설치와 똑같이 하면 된다.
디비 설정 부분과 도메인 추가하고 나서 시스템 유저를 vpopmail로
변환하는 과정이 다르다.
------- mysql을 연동시 다른 부분 시작 ------------
우선은 데이터 베이스에 vpopmail이라는 디비명을 추가하고
vpopmail이라는 디비 유저를 추가해줘야 한다.
mysql 루트로 접속해서
mysql -u root -p 디비루트비번
CREATE DATABASE vpopmail;
use vpopmail;
grant CREATE,INSERT,SELECT,DELETE,UPDATE on vpopmail.* to vpopmail;
grant CREATE,INSERT,SELECT,DELETE,UPDATE on vpopmail.* to vpopmail@localhost;
insert into user (Host,User,Password) values('localhost','vpopmail',PASSWORD('패스워드'));
set password for 'vpopmail'@'%'=password('패스워드');
set password for 'vpopmail'@'localhost'=password('패스워드');
flush privileges;"
아래 파일을 열어서 그곳에 있는 디비 설정을 바꾼다.
위에서 정의한 vpopmail 유저와 vpopmail 패스워드 등을 수정한다.
디비 테이블은 vpopmail을 설치할때 자동으로 생성되니 디비만 생성한ㄷ.
vi /var/tmp/$PACKAGE-$VERSION/vmysql.h
아래에서 기본도메인명을 자신이 사용할 메일 도메인으로 바꾼다.
당근 dns mx 설정은 잘되어 있어야할것이다.
echo "#######################"
echo "### vpop with mysql ###"
echo "#######################"
./configure --enable-default-domain=기본도메인명
--enable-roaming-users=y
--enable-tcprules-prog=/usr/bin/tcprules
--enable-relay-clear-minutes=15
--enable-mysql-logging=y
--enable-logging=e
--enable-sqlincdir=/usr/include/mysql
--enable-sqllibdir=/usr/lib/mysql
--enable-mysql=y
--enable-mysql-replication=y
--enable-valias=y
--enable-many-domains=n
------- mysql을 연동시 다른 부분 끝 ------------
컴파일
make
find /* > /root/vpopmail1
실제 설치
make install-strip
find /* > /root/vpopmail2
diff /root/vpopmail1 /root/vpopmail2 > /root/vpopmail-install
지겹게 이야기 했지만 find로 기존의 시스템 파일목록을
만든후 소스 설치후에 다시 find로 소스 설치후의
파일목록을 만들어 두개를 비교하면 설치된
파일 리스트가 나온다. 나중에 언인스톨할 시를
위해 만들어 둔다.
이제 vpop설정이다. 우선 기본적으로 자신의 호스트의 릴레이를 열어준다.
tcpserver설치하면서 했던 설정파일은 vpop에선 무시되고 이제 아래의 설정파일을 따르게 된다.
echo "127.0.0.1:allow,RELAYCLIENT=""" > ~vpopmail/etc/tcp.smtp
chown 110.110 ~vpopmail/etc/tcp.smtp
tcpserver설정파일을 cdb파일로 변환
tcprules ~vpopmail/etc/tcp.smtp.cdb ~vpopmail/etc/tcp.smtp.tmp < ~vpopmail/etc/tcp.smtp
chown 110.110 ~vpopmail/etc/tcp.smtp.cdb
vpop은 한번 인증한 사용자에게 일정기간동안 유동아피라도 릴레이를 열어준다.
clearopensmtp 라는 프로그램은 유동아피 유저들에게 임시적으로 열어준
오픈 릴레이 호스트 목록을 지워준다.
위에서 지워주는 주기를 --enable-relay-clear-minutes=15 (15분)라고 정의해주었다.
설치한후 릴레이 설정을 한번 다 지워준다.
~vpopmail/bin/clearopensmtp
그리고 qmail의 설정파일을 다시 설정
우선 큐메일 설정에서 /home/유저명/Maildir로 기본 전송을 이제 vpopmail의
디렉토리 아래로 배달할것이므로 아래처럼 localhost만 설정
echo "localhost" > /var/qmail/control/locals
qmail-vpop이라는 시작 스크립트를 다운받는다.
첨부파일을 /etc/rc.d/init.d/qmail 로 복사시킨다. 기존의 시작 스크립트가 있으면 덮어쓴다.
vpopmail의 실행 명령(유저추가,도메인추가등)을 경로로 이동하지 않고 쓰기 위해
기본 경로 추가해준다.
echo 'export PATH="$PATH:/home/vpopmail/bin"' >> /etc/profile
. /etc/profile
vpop의 릴레이 청소를 크론탭에 등록해서 주기적으로 릴레이 목록을 청소해준다.
여기서는 15분간 청소할것이다.
아래 내용으로 크론탭에 등록한다.
10,25,40,55 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null
chmod 700 /etc/rc.d/init.d/qmail
chown 0.0 /etc/rc.d/init.d/qmail
/etc/rc.d/init.d/qmail restart
이제 다 설치는 끝나고 기본 도메인을 추가한다.
###### Add to Domain ######
vadddomain 도메인명 <--- configure시 설정해준 기본 도메인명
---------------- 이부분이 앞의 부분과 다르다. --------------------
###### user convert for mysql
vconvert -e -m 도메인명 <--- 자신의 시스템에 있는 기존 유저들을 vpop계정으로 변환
------------------------------------------------------------------------
자신의 도메인에 알수없는 유저명으로 올 경우 받을 이메일 주소다.
(나의 경우는 vitro@vitro.pe.kr로 모두 받는것으로 설정했다.)
##### unknow user deliver ####
echo "| /home/vpopmail/bin/vdelivermail '' vitro@vitro.pe.kr" > ~vpopmail/domains/도메인명/.qmail-default
아래처럼 하나의 계정으로 모두 포워드를 새로 걸어준다.
루트나 메일러 데몬, 포스트 마스터등의 메일을 일반 유저하나에게 모두 모아서
보내게 한다. (관리상 에러나 각종 메시지를 하나의 일반 유저로 메일을 받아 보는게 편하다)
#### qmail-root qmail-mailer-daemon qmail-postmaster mail forward ####
echo "vitro@vitro.pe.kr" > ~vpopmail/domains/도메인명/.qmail-root
cp ~vpopmail/domains/도메인명/.qmail-root ~vpopmail/domains/도메인명/.qmail-mailer-daemon
cp ~vpopmail/domains/도메인명/.qmail-root ~vpopmail/domains/도메인명/.qmail-postmaster
만약 가상 도메인을 하나 더 추가해주고 싶으면 위의 기본 도메인 추가시의 설정과 같다.
그리고 새로운 가상 도메인과 기존 가상 도메인의 알리아스를 만들기 위해서는
vaddaliasdomain new.com old.com 라는 명령으로 추가해준다.
그리고 아웃룩으로 접속하면 되는데...
주의할것은
가상도메인 유저는
사용자명 입력시 유저명@도에인명.com
으로 입력해줘야 한다.
vpop의 인증을 사용하므로 이같이 한다.