--------------------------------------------------------------------------------
<참고자료>
www.howtosolaris.com
howtosolaris님의 강좌인 <Sendmail 8.12.10 설치하기>
http://blog.naver.com/flydrago?Redirect=Log&logNo=40010326337
쭈니보고시퍼요님의 블로그..^^
솔직히 이 두 분의 강좌가 아니었다면..-_-
수십번 지웠다~ 압축풀었다~ 설치하다가 에러나서.. %#^#@$@$ 하고있을 듯..;;;
그리고 참고자료라 하기에는 거의 퍼왔다는 사실을 강조한다-_-a
그 외에도 제가 본 수많은 강좌들.. 진심으로 감사드립니다..(^ ^) (_ _)
---------------------------------------------------------------------------------
Sendmail 이란?
쉽게 말해 메일 서버 프로그램이라고 생각하면 된다. 한 가지 유의해야 할
사실은 SMTP용 서버라는 것 이다. SMTP 프로토콜은 간단하게 얘기해 메일을 전송하는
프로토콜이지 메일을 수신하는 프로토콜은 아니다. 메일을 전송만이 아닌 수신까지 하고
싶으면 메일 수신에 사용되는 POP3나 IMAP4서버를 부가적으로 설치해야 한다. 대표적인
프로그램은 qpopper, WU-IMAP이 있다.
---------------------------------------------------------------------------------
설치한 운영체제 : 솔라리스 10 x86
<설치한 패키지>
openssl-0.9.7g
db-4.2.52.NC (버클리 DB)
//그 외 잡다한 패키지는 제외..-_-..하였음;;
openssl은 TLS를 적용하기 위해서 설치!
버클리DB는 sendmail 에서 database를 hash하기위해서는 이 버클리 DB가 필요!!
패키지는 www.sunfreeware.com에서 받을 수 있음.
-----------------------------------------------------------------------------------
버클리 DB와 Openssl 몇 가지 라이브러리 /usr/lib에 카피!!
(분명히 LD_LIBRARY_PATH에 정의 되있는데도 못 찾는다..-_-..)
# cp /usr/local/ssl/lib/libssl.so.0.9.7 /usr/lib ( TLS를 적용하기 위해서 .. )
# cp /usr/local/ssl/lib/libcrypto.so.0.9.7 /usr/lib ( TLS를 적용하기 위해서 .. )
# cp /usr/local/BerkeleyDB.4.2/lib/libdb-4.2.so /usr/lib
# cd /usr/lib
# chmod 444 libssl.so.0.9.7 libcrypto.so.0.9.7 ( TLS를 적용하기 위해서 .. )
# chmod 444 libdb-4.2.so
-----------------------------------------------------------------------------------
TLS를 적용하기 위해서는 /dev/urandom 이 있어야 한다.
http://www.cosy.sbg.ac.at/~andi/SUNrand/pkg/ANDIrand-0.7-5.8-sparc-1.pkg
여기서 다운 받자^^a
솔라리스 8 spac용이지만 솔10 x86에도 잘 깔린다-_-a ( 솔9, 10 pkg가 음따-_-..)
# pkgadd -d ANDIrand-0.7-5.8-sparc-1.pkg
# /etc/init.d/random start <- 실행..
-----------------------------------------------------------------------------------
sendmail 설치!!
ftp://ftp.kreonet.re.kr/pub/people/sysuh/sendmail 에서 다운 받을 수 있다^^
자세한 정보는 www.sendmail.org 에서 확인!! ( 물론 영문 이다 -_- )
# cd /sendmail 다운받은 dir
# gzip -d sendmail.8.13.3.tar.gz
# tar xvf sendmail.8.13.3.tar
# cd sendmail-8.13.3
# vi devtools/Site/site.config.m4 ( 참고로 새로 만드는 것이당!!-_-!!)
APPENDDEF(`confLIBDIRS', `-L/usr/local/BerkeleyDB.4.2/lib')
APPENDDEF(`confINCDIRS', `-I/usr/local/BerkeleyDB.4.2/include')
APPENDDEF(`confENVDEF', `-DNEWDB')
## TLS 적용 ###
define(`confSTDIO_TYPE', `portable')
APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS -DHASURANDOMDEV')
APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
APPENDDEF(`confLIBDIRS', `-L/usr/local/ssl/lib')
APPENDDEF(`confINCDIRS', `-I/usr/local/ssl/include')
APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
APPENDDEF(`conf_libmilter_ENVDEF', `-D_FFR_MILTER_ROOT_UNSAFE')
빨간 부분 copy 해서 걍 붙여넣기 하고 저장!! ( LD_LIBRARY_PATH 기능을 한다고..함;; )
<주의>
APPENDDEF(`confLIBDIRS', `-L/usr/local/BerkeleyDB.4.2/lib')
APPENDDEF(`confINCDIRS', `-I/usr/local/BerkeleyDB.4.2/include')
DB가 설치되어있는 정확한 경로를 입력해야 한다!!
# vi devtools/OS/SunOS.5.10
..........
define(`confMAPDEF', `-DNDBM -DNIS -DNISPLUS -DMAP_REGEX') <- 이 부분을..
define(`confMAPDEF', `-DNEWDB -DNIS -DNISPLUS -DMAP_REGEX') <- 요렇게..!!!
..........
저장하고 빠져나온다!! ( 읽기전용 파일이므로 wq! 로 강제저장한다!! )
이 부분을 안해주면 빌드 할 때 계속 에러난다-_-.. 요걸 몰라서;; 힘들었음-_-
이 부분은 http://blog.naver.com/flydrago?Redirect=Log&logNo=40010326337 참고!!
이제~ 빌드 하세!!
# ./Build -c
빌드가 성공적으로 끝난 후..설정한다.
# groupadd smmsp <- 아마.. 솔10에서는 있을 것이다.
# useradd -g smmsp smmsp <- 얘두.. 솔10에서는 있을 것이다. 다른 버젼은 모르겠음-_-
# passmgmt -m -s /dev/null smmsp
# mkdir -p /usr/share/man/cat1
# mkdir /usr/share/man/cat5
# mkdir /usr/share/man/cat8
# ./Build install
-------------------------------------------------------------------------------------
sendmail 8.13.3 본격적인 작업하기!!
# cd cf/cf
# cp generic-solaris.mc config.mc
# vi config.mc
divert(0)dnl
VERSIONID(`$Id: generic-solaris.mc,v 8.13 2001/06/27 21:46:30 gshapiro Exp $')
OSTYPE(solaris2)dnl
DOMAIN(generic)dnl
FEATURE(access_db)dnl
FEATURE(blacklist_recipients)dnl
FEATURE(mailertable)dnl
MAILER(local)dnl
MAILER(smtp)dnl
define(`confCACERT_PATH', `/etc/mail/certs')dnl
define(`confCACERT', `/etc/mail/certs/CAcert.pem')dnl
define(`confSERVER_CERT', `/etc/mail/certs/MYcert.pem')dnl
define(`confSERVER_KEY', `/etc/mail/certs/MYkey.pem')dnl
define(`confCLIENT_CERT', `/etc/mail/certs/MYcert.pem')dnl
define(`confCLIENT_KEY', `/etc/mail/certs/MYkey.pem')dnl
define(`confPRIVACY_FLAGS', `authwarnings,goaway,noetrn')dnl
define(`confTO_IDENT', `0')dnl
config.mc 안의 내용 다 지우고.. 빨간 부분 그대로 붙여넣어버리자!!
( 빨간 부분이 기존의 내용을 다 포함하고 있다..)
# sh Build config.cf <- 엄청난 양을 자랑하는 sendmail.cf 설정파일의 생성
# cp config.cf /etc/mail/sendmail.cf
-----------------------------------------------------------------------------------
Sendmail 구동 스크립트 만들기
# vi /etc/init.d/sendmail
#!/sbin/sh
case "$1" in
'start')
# Start the MTA
/usr/lib/sendmail -L sm-mta -bd -q1h
# Start the MSP
/usr/lib/sendmail -L sm-msp-queue -Ac -q30m
;;
'stop')
pid=`/usr/bin/ps -eo pid,comm | /usr/bin/awk '{ if ($2 == "/usr/lib/sendmail") print $1 }'`
if test "$pid"
then
/usr/bin/kill $pid
fi
;;
*)
echo "Usage: $0 { start | stop }"
exit 1
;;
esac
exit 0
빨간부분 붙여넣고 저장..!! ( 쉘 스크립트..공부하세!! ㅠ0ㅜ..)
# chown root:sys /etc/init.d/sendmail
# chmod 744 /etc/init.d/sendmail
----------------------------------------------------------------------------------
Sendmail database 파일 만들기
# cd /etc/mail
# touch access mailertable
# makemap hash access < access
// access 파일을 DB로 만들기 전에 메일의 릴레이에 대해 설정하고 DB로 만들자!!
// 그다지 안 그래두 상관없다-_-a
# makemap hash mailertable < mailertable
# touch aliases
# newaliases
# touch local-host-names
// local-host-names 에 localhost 하나 입력해 놓자-_- 자세한 내용은 검색해보세~공부!!
----------------------------------------------------------------------------------
TLS 이용시 조치하기!!
# mkdir /etc/mail/certs
# mv CAcert.pem MYcert.pem MYkey.pem /etc/mail/certs
# cd /etc/mail/certs
# chmod 600 CAcert.pem MYcert.pem MYkey.pem
# chown root CAcert.pem MYcert.pem MYkey.pem
sendmail 구동하기
# /etc/init.d/sendmail start
( 데몬 작동 중지 시키는 것은 물론..-_-.. stop 이다;;;)
# ps -ef | grep mail
root 20039 1 0 18:25:22 ? 0:00 /usr/lib/sendmail -L sm-mta -bd -q1h
smmsp 20042 1 0 18:25:22 ? 0:00 /usr/lib/sendmail -L sm-msp-queue -Ac -q30m
데몬 참 잘 올라와있다;;^^
데몬도 확인했고.. 이제 메일만 가는 것만 확인 하면 끝^-^
최고의 시스템 엔지니어가 되기 위하여..-_-)/ 홧팅!!!
-------------------------------------------------------------------------------------
<중요!!>
위와 같은 과정으로 sendmail 설치가 끝이 났지만..딱 하나!! -_-.. 설치가 안되는 것이 존재한다!!
mail.local 이 대표적인 예이다!! 이 넘이 없으면 메일이 안 받아진다;;; 썅!!-_-
sendmail 압축화일을 해제한 디렉토리로 들어가서..
# cd obj.SunOS.5.10.i86pc/mail.local
# cp mail.local /usr/lib
# chmod g-w /usr/lib/mail.local
그럼 설치 끝!!
만약 sendmail 압축화일을 해제한 디렉토리에 obj.SunOS.5.10.i86pc/ 디렉토리가 없으면
이렇게 해준다-_-..
# cd sendmail을 압축 해제한 디렉토리
# cd mail.local
# make
그러면 자신의 OS Version에 맞게 obj.SunOS.5.10.i86pc란 디렉토리가 생긴다.
( 참고로 나는 solaris 10을 운영중..!! )
<참고자료>
www.howtosolaris.com
howtosolaris님의 강좌인 <Sendmail 8.12.10 설치하기>
http://blog.naver.com/flydrago?Redirect=Log&logNo=40010326337
쭈니보고시퍼요님의 블로그..^^
솔직히 이 두 분의 강좌가 아니었다면..-_-
수십번 지웠다~ 압축풀었다~ 설치하다가 에러나서.. %#^#@$@$ 하고있을 듯..;;;
그리고 참고자료라 하기에는 거의 퍼왔다는 사실을 강조한다-_-a
그 외에도 제가 본 수많은 강좌들.. 진심으로 감사드립니다..(^ ^) (_ _)
---------------------------------------------------------------------------------
Sendmail 이란?
쉽게 말해 메일 서버 프로그램이라고 생각하면 된다. 한 가지 유의해야 할
사실은 SMTP용 서버라는 것 이다. SMTP 프로토콜은 간단하게 얘기해 메일을 전송하는
프로토콜이지 메일을 수신하는 프로토콜은 아니다. 메일을 전송만이 아닌 수신까지 하고
싶으면 메일 수신에 사용되는 POP3나 IMAP4서버를 부가적으로 설치해야 한다. 대표적인
프로그램은 qpopper, WU-IMAP이 있다.
---------------------------------------------------------------------------------
설치한 운영체제 : 솔라리스 10 x86
<설치한 패키지>
openssl-0.9.7g
db-4.2.52.NC (버클리 DB)
//그 외 잡다한 패키지는 제외..-_-..하였음;;
openssl은 TLS를 적용하기 위해서 설치!
버클리DB는 sendmail 에서 database를 hash하기위해서는 이 버클리 DB가 필요!!
패키지는 www.sunfreeware.com에서 받을 수 있음.
-----------------------------------------------------------------------------------
버클리 DB와 Openssl 몇 가지 라이브러리 /usr/lib에 카피!!
(분명히 LD_LIBRARY_PATH에 정의 되있는데도 못 찾는다..-_-..)
# cp /usr/local/ssl/lib/libssl.so.0.9.7 /usr/lib ( TLS를 적용하기 위해서 .. )
# cp /usr/local/ssl/lib/libcrypto.so.0.9.7 /usr/lib ( TLS를 적용하기 위해서 .. )
# cp /usr/local/BerkeleyDB.4.2/lib/libdb-4.2.so /usr/lib
# cd /usr/lib
# chmod 444 libssl.so.0.9.7 libcrypto.so.0.9.7 ( TLS를 적용하기 위해서 .. )
# chmod 444 libdb-4.2.so
-----------------------------------------------------------------------------------
TLS를 적용하기 위해서는 /dev/urandom 이 있어야 한다.
http://www.cosy.sbg.ac.at/~andi/SUNrand/pkg/ANDIrand-0.7-5.8-sparc-1.pkg
여기서 다운 받자^^a
솔라리스 8 spac용이지만 솔10 x86에도 잘 깔린다-_-a ( 솔9, 10 pkg가 음따-_-..)
# pkgadd -d ANDIrand-0.7-5.8-sparc-1.pkg
# /etc/init.d/random start <- 실행..
-----------------------------------------------------------------------------------
sendmail 설치!!
ftp://ftp.kreonet.re.kr/pub/people/sysuh/sendmail 에서 다운 받을 수 있다^^
자세한 정보는 www.sendmail.org 에서 확인!! ( 물론 영문 이다 -_- )
# cd /sendmail 다운받은 dir
# gzip -d sendmail.8.13.3.tar.gz
# tar xvf sendmail.8.13.3.tar
# cd sendmail-8.13.3
# vi devtools/Site/site.config.m4 ( 참고로 새로 만드는 것이당!!-_-!!)
APPENDDEF(`confLIBDIRS', `-L/usr/local/BerkeleyDB.4.2/lib')
APPENDDEF(`confINCDIRS', `-I/usr/local/BerkeleyDB.4.2/include')
APPENDDEF(`confENVDEF', `-DNEWDB')
## TLS 적용 ###
define(`confSTDIO_TYPE', `portable')
APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS -DHASURANDOMDEV')
APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
APPENDDEF(`confLIBDIRS', `-L/usr/local/ssl/lib')
APPENDDEF(`confINCDIRS', `-I/usr/local/ssl/include')
APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
APPENDDEF(`conf_libmilter_ENVDEF', `-D_FFR_MILTER_ROOT_UNSAFE')
빨간 부분 copy 해서 걍 붙여넣기 하고 저장!! ( LD_LIBRARY_PATH 기능을 한다고..함;; )
<주의>
APPENDDEF(`confLIBDIRS', `-L/usr/local/BerkeleyDB.4.2/lib')
APPENDDEF(`confINCDIRS', `-I/usr/local/BerkeleyDB.4.2/include')
DB가 설치되어있는 정확한 경로를 입력해야 한다!!
# vi devtools/OS/SunOS.5.10
..........
define(`confMAPDEF', `-DNDBM -DNIS -DNISPLUS -DMAP_REGEX') <- 이 부분을..
define(`confMAPDEF', `-DNEWDB -DNIS -DNISPLUS -DMAP_REGEX') <- 요렇게..!!!
..........
저장하고 빠져나온다!! ( 읽기전용 파일이므로 wq! 로 강제저장한다!! )
이 부분을 안해주면 빌드 할 때 계속 에러난다-_-.. 요걸 몰라서;; 힘들었음-_-
이 부분은 http://blog.naver.com/flydrago?Redirect=Log&logNo=40010326337 참고!!
이제~ 빌드 하세!!
# ./Build -c
빌드가 성공적으로 끝난 후..설정한다.
# groupadd smmsp <- 아마.. 솔10에서는 있을 것이다.
# useradd -g smmsp smmsp <- 얘두.. 솔10에서는 있을 것이다. 다른 버젼은 모르겠음-_-
# passmgmt -m -s /dev/null smmsp
# mkdir -p /usr/share/man/cat1
# mkdir /usr/share/man/cat5
# mkdir /usr/share/man/cat8
# ./Build install
-------------------------------------------------------------------------------------
sendmail 8.13.3 본격적인 작업하기!!
# cd cf/cf
# cp generic-solaris.mc config.mc
# vi config.mc
divert(0)dnl
VERSIONID(`$Id: generic-solaris.mc,v 8.13 2001/06/27 21:46:30 gshapiro Exp $')
OSTYPE(solaris2)dnl
DOMAIN(generic)dnl
FEATURE(access_db)dnl
FEATURE(blacklist_recipients)dnl
FEATURE(mailertable)dnl
MAILER(local)dnl
MAILER(smtp)dnl
define(`confCACERT_PATH', `/etc/mail/certs')dnl
define(`confCACERT', `/etc/mail/certs/CAcert.pem')dnl
define(`confSERVER_CERT', `/etc/mail/certs/MYcert.pem')dnl
define(`confSERVER_KEY', `/etc/mail/certs/MYkey.pem')dnl
define(`confCLIENT_CERT', `/etc/mail/certs/MYcert.pem')dnl
define(`confCLIENT_KEY', `/etc/mail/certs/MYkey.pem')dnl
define(`confPRIVACY_FLAGS', `authwarnings,goaway,noetrn')dnl
define(`confTO_IDENT', `0')dnl
config.mc 안의 내용 다 지우고.. 빨간 부분 그대로 붙여넣어버리자!!
( 빨간 부분이 기존의 내용을 다 포함하고 있다..)
# sh Build config.cf <- 엄청난 양을 자랑하는 sendmail.cf 설정파일의 생성
# cp config.cf /etc/mail/sendmail.cf
-----------------------------------------------------------------------------------
Sendmail 구동 스크립트 만들기
# vi /etc/init.d/sendmail
#!/sbin/sh
case "$1" in
'start')
# Start the MTA
/usr/lib/sendmail -L sm-mta -bd -q1h
# Start the MSP
/usr/lib/sendmail -L sm-msp-queue -Ac -q30m
;;
'stop')
pid=`/usr/bin/ps -eo pid,comm | /usr/bin/awk '{ if ($2 == "/usr/lib/sendmail") print $1 }'`
if test "$pid"
then
/usr/bin/kill $pid
fi
;;
*)
echo "Usage: $0 { start | stop }"
exit 1
;;
esac
exit 0
빨간부분 붙여넣고 저장..!! ( 쉘 스크립트..공부하세!! ㅠ0ㅜ..)
# chown root:sys /etc/init.d/sendmail
# chmod 744 /etc/init.d/sendmail
----------------------------------------------------------------------------------
Sendmail database 파일 만들기
# cd /etc/mail
# touch access mailertable
# makemap hash access < access
// access 파일을 DB로 만들기 전에 메일의 릴레이에 대해 설정하고 DB로 만들자!!
// 그다지 안 그래두 상관없다-_-a
# makemap hash mailertable < mailertable
# touch aliases
# newaliases
# touch local-host-names
// local-host-names 에 localhost 하나 입력해 놓자-_- 자세한 내용은 검색해보세~공부!!
----------------------------------------------------------------------------------
TLS 이용시 조치하기!!
# mkdir /etc/mail/certs
# mv CAcert.pem MYcert.pem MYkey.pem /etc/mail/certs
# cd /etc/mail/certs
# chmod 600 CAcert.pem MYcert.pem MYkey.pem
# chown root CAcert.pem MYcert.pem MYkey.pem
sendmail 구동하기
# /etc/init.d/sendmail start
( 데몬 작동 중지 시키는 것은 물론..-_-.. stop 이다;;;)
# ps -ef | grep mail
root 20039 1 0 18:25:22 ? 0:00 /usr/lib/sendmail -L sm-mta -bd -q1h
smmsp 20042 1 0 18:25:22 ? 0:00 /usr/lib/sendmail -L sm-msp-queue -Ac -q30m
데몬 참 잘 올라와있다;;^^
데몬도 확인했고.. 이제 메일만 가는 것만 확인 하면 끝^-^
최고의 시스템 엔지니어가 되기 위하여..-_-)/ 홧팅!!!
-------------------------------------------------------------------------------------
<중요!!>
위와 같은 과정으로 sendmail 설치가 끝이 났지만..딱 하나!! -_-.. 설치가 안되는 것이 존재한다!!
mail.local 이 대표적인 예이다!! 이 넘이 없으면 메일이 안 받아진다;;; 썅!!-_-
sendmail 압축화일을 해제한 디렉토리로 들어가서..
# cd obj.SunOS.5.10.i86pc/mail.local
# cp mail.local /usr/lib
# chmod g-w /usr/lib/mail.local
그럼 설치 끝!!
만약 sendmail 압축화일을 해제한 디렉토리에 obj.SunOS.5.10.i86pc/ 디렉토리가 없으면
이렇게 해준다-_-..
# cd sendmail을 압축 해제한 디렉토리
# cd mail.local
# make
그러면 자신의 OS Version에 맞게 obj.SunOS.5.10.i86pc란 디렉토리가 생긴다.
( 참고로 나는 solaris 10을 운영중..!! )