>> Read No. 3332 article  
sendmail +smtp-auth기능 소스설치하기(cyrus-sasl설치포함)

등록 2003-02-03 01:13:00     조회 6
이름 비츠로    

http://vitro.pe.kr  <-- 비츠로 홈
 센드메일은 정균님의 패키지로 사용하는게 아주 유용하고 좋다고
생각을 하나 소스로 설치하는 부분은 없기에 내가 사용하는
소스 설치법을 한번 올립니다. 정균님홈(http://oops.org) 내용중에 정균님의 강좌를 참조한 부
분이 많습니다. 정균님에게 거듭 감사드립니다.
우선 설치순서는 cyrus-sasl설치하고 난뒤 sendmail설치 입니다.
첨부 파일은 제 홈에서 받아가십시요. 그리고 질문은 제홈에서 해주세요
 ### cyrus-sasl-1.5.27(smtp-auth기능 사용위해) 설치 ###
 
 센드메일에서 SMTP-AUTH기능을 제외하고
설치하고자 하는유저는 거의 없을것이다.
그 기능을 설치하고자 한다면 반드시 이 소스가
필요하다 아래와 같은 과정으로 설치한다.
 cyrus-sasl-1.5.27 소스를
ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/ 에서 다운 받는다.
소스를 /var/tmp로 옮긴다.
cd /var/tmp
소스 압축해제
tar xzpf cyrus-sasl-1.5.27.tar.gz
cd /var/tmp/cyrus-sasl-1.5.27
 컴파일링을 위한 컨피그작업
./configure
--prefix=/usr
--bindir=/usr/bin
--sbindir=/usr/sbin
--libexecdir=/usr/libexec
--localstatedir=/var
--libdir=/usr/lib
--includedir=/usr/include
--mandir=/usr/share/man
--with-openssl=/usr
--enable-static
--enable-shared
--with-plugindir=/usr/lib/sasl2
--with-dblib=gdbm
--disable-krb4
--with-rc4
--enable-anon
--enable-cram
--enable-digest
--enable-plain
--enable-login
 컴파일
make
 find /* > /root/cyrus-sasl1
(이작업은 하도 마니 말해서 알거다. emoticon)
설치될 서버의 파일 목록을 작성하기 위해
설친전의 시스템에 존재하는 파일과
디렉토리 목록을 작성해두는 것이다.
 컴파일된 파일 설치
make install
 find /* > /root/cyrus-sasl2
(요놈도)설치하고 난뒤에 생긴 파일들 리스트 조사
 diff /root/cyrus-sasl1 /root/cyrus-sasl2 > /root/cyrus-sasl-install
프로그램 설치전에 시스템에 존재하는 파일목록과
프로그램 설치후에 시스템에 존재하는 파일 목록을
비교하여 새로 시스템에 설치된 파일들을 추출한다.
이렇게 하면 새로 설치한 프로그램의 목록을 만들수 있다.
나중에 해당 프로그램을 삭제할때 아주 유용하다
 다음의 내용의 팸을 작성한다.
echo "#%PAM-1.0
auth      required    /lib/security/pam_stack.so service=system-auth
account    required    /lib/security/pam_stack.so service=system-auth"
> /etc/pam.d/smtp
 sasl의 설정파일이다. 센드메일이 이파일이 없으면
auth기능이 안된다.
echo "pwcheck_method:pam" > /usr/lib/sasl/Sendmail.conf
ln -s /usr/lib/sasl /usr/lib/sasl2
보통 링크를 거는것은 어떤 것은 첨에 설치된 장소를
참조하고 어떤것은 다른곳을 참조하는 경우가
있다. 이런 문제를 해결하기 위한것이다.
 ###  sendmail-8.12.6 (중앙 메인 서버) 센드메일 설정법은 정규님의 강좌를
참조  ###
 
 이번엔 중앙 메일 서버로 센드 메일을 사용할 경우의 설치법을 다룬다.
 메일서버가 아닌 단독 서버에서 에러나 로그만 받아보기 위한 널클라이언트 센
드메일
설치는 다음에서 다루겠다.
 센드메일을 설치하기전에 유동 아피 유저들도
아웃룩을 이용하여 자신의 아디와 패스워드 인증만으로
메일을 보내는것을 가능하게 하고 싶다면
앞의 cyrus-sasl설치를 먼저 보고 그대로
cyrus-sasl을 먼저 설치해라... 꼭 먼저 설치되어
있어야 유동아피 유저 인증기능을 이용할수 있다.
내 설치법을 보고 레드햇 7.3을 설치한 사용자는
아마 rpm이 없을것이다.
rpm으로 설치하지 말고 그냥 소스로 다시 설치하길 권한다.
 http://www.sendmail.org에서 sendmail-8.12.6 소스를 다운 받아서 /var/tmp로 이동시킨다.
 cd /var/tmp
압축해제한다.
tar xzpf sendmail-8.12.6.tar.gz
 압축해제한 소스 디렉토리로 이동
cd /var/tmp/sendmail-8.12.6
기존의 메일널 유저를 제거하고 새로 메일 유저를 추가
userdel mailnull 2> /dev/null
groupdel mailnull 2> /dev/null
groupadd  -g 12 mail
useradd -u 47 -d /var/spool/mqueue -r -s /bin/false smmsp
메일이라는 그룹의 smmsp라는 유저로 데몬을 실행할것이다.
 이제부터는 소스 디렉토리에서 작업을 한다.
아래 수정할 파일들은 상대경로임을 주의 한다.
 smrsh/smrsh.c 파일의 다음라인을 수정한다.
(유닉스 경로를 리눅스에 맞게 수정하는것이다.)
 /usr/adm/sm.bin/ 을
/etc/smrsh 로 고친다.
 /bin:/usr/bin:/usr/ucb 를
/bin:/usr/bin 로 고친다.
 sendmail/daemon.c 파일의
nleft = sizeof ibuf - 1 을
nleft = sizeof (ibuf) - 1 로 고친다.
(센드메일의 버그인듯)
 devtools/OS/Linux파일의 다음 라인을 수정
/usr/man/man 을
/usr/share/man/man 로 수정 (맨페이지 수정)
  아래처럼 devtools/Site/site.config.m4 파일을 생성
아래에서 sasl이라는 문구가 포함된 라인은
센드메일의 auth기능을 포함시키는 설정이다.
(유동아피 릴레이 인증후 허용기능) sendmail-auth기능
 echo "define(`confMAPDEF', `-DMAP_REGEX')
define(`confENVDEF', `-DPICKY_QF_NAME_CHECK -DXDEBUG=0')
APPENDDEF(`confLIBDIRS', `-L/usr/lib')
APPENDDEF(`confINCDIRS', `-I/usr/include')
APPENDDEF(`confENVDEF', `-DSASL')
APPENDDEF(`conf_sendmail_LIBS', `-lsasl')
define(`confCC', `gcc')
define(`confOPTIMIZE', `-O2 -march=i686 -funroll-loops -fomit-frame-
pointer')
define(`confNO_HELPFILE_INSTALL')" > devtools/Site/site.config.m4
 센드 메일 설정 과정은 위에 파일수정으로 끝이다.
따로 ./configure 과정이 없다.
 꼭 쓰는데 필요한 파일들만 컴파일하기 위해
각 프로그램 디렉토리로 이동후 각각 컴파일해준다.
우선 데몬부터.
cd sendmail
./Build
 cd ../mailstats/
./Build
 cd ../smrsh
./Build
 센드 메일 디비를 생성하는 프로그램 컴파일
cd ../makemap
./Build
 얼라이어스 갱신 프로그램 컴파일
cd ../praliases
./Build
 find /* > /root/sendmail1
설치될 서버의 파일 목록을 작성하기 위해
설친전의 시스템에 존재하는 파일과
디렉토리 목록을 작성해두는 것이다.
 이제 부터는 센드 메일을 실제 설치하는 작업이다.
일반적인 make install과정이다.
이 과정도 각 프로그램 디렉토리로 이동후 작업한다.
 cd ../sendmail
./Build install
 cd ../mailstats/
./Build install
 cd ../smrsh
./Build install
 cd ../makemap
./Build install
 cd ../praliases
./Build install
 센드 메일 링크와 센드메일이 사용할수 있는 명령 제한하고 퍼미션 변경등 한
다.
ln -fs /usr/sbin/sendmail /usr/lib/sendmail
chmod 511 /usr/sbin/smrsh
install -d -m700 /var/spool/mqueue
chown 0.mail /var/spool/mail
chmod 1777 /var/spool/mail
mkdir /etc/smrsh
strip /usr/sbin/sendmail
 find /* > /root/sendmail2
설치하고 난뒤에 생긴 파일들 리스트 조사
 diff /root/sendmail1 /root/sendmail2 > sendmail-install
프로그램 설치전에 시스템에 존재하는 파일목록과
프로그램 설치후에 시스템에 존재하는 파일 목록을
비교하여 새로 시스템에 설치된 파일들을 추출한다.
이렇게 하면 새로 설치한 프로그램의 목록을 만들수 있다.
나중에 해당 프로그램을 삭제할때 아주 유용하다
 아래 처럼 센드 메일 설정파일을 만드는 매크로 파일을 만든다.
/etc/mail/sendmail.mc (매크로 파일)
 echo "VERSIONID(`Mail server')dnl
OSTYPE(`linux')dnl
DOMAIN(`generic')dnl
define(`confTRY_NULL_MX_LIST',true)dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`confPRIVACY_FLAGS',
`authwarnings,goaway,restrictmailq,restrictqrun')dnl
define(`confSAFE_FILE_ENV',`/home')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')dnl
FEATURE(`redirect')dnl
FEATURE(`always_add_domain')dnl
FEATURE(`relay_hosts_only')dnl
FEATURE(`use_cw_file')dnl
FEATURE(`local_procmail')dnl
FEATURE(`access_db')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`dnsbl')dnl
MAILER(`local')dnl
MAILER(`smtp')dnl
MAILER(`procmail')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl"
> /etc/mail/sendmail.mc
 위에서 마지막 두라인은 센드메일의 유동 아피유저들의
릴레이를 인증을 통해서 허용해주기 위해 필요하다.
센드메일8.12버전의 SENDMAIL-AUTH 기능이다.
(반드시 포함하는것이 좋다.)
이제 만든 매크로 파일로 실제 센드 메일 설정파일을 생성
 cd /etc/mail
m4 /var/tmp/sendmail-8.12.6/cf/m4/cf.m4 sendmail.mc
> /etc/mail/sendmail.cf
설정 파일 퍼미션 조정
chmod 600 sendmail.cf
chown emoticon sendmail.cf
 메일 릴레이 호스트 설정
echo "127.emoticon.1  RELAY
자신의 네트워크 아피  RELAY" > /etc/mail/access
 아래와 같은 내용의 /etc/mail/aliases 파일을 생성
-------------  파일 내용 요기 부터 ---------------
# Basic system aliases -- these MUST be present.
MAILER-DAEMON:  postmaster
postmaster:      root
 # General redirections for pseudo accounts.
bin:            root
daemon:          root
nobody:          root
smmsp:  root
-------------  요기 까지 -------------------
 다음처럼 /etc/mail 디렉토리에서 나머지
설정파일들을 빈 파일들로 만들고
makemap으로 센드 메일 디비로 변환한다.
 for map in access relay-domains aliases virtusertable domaintable
mailertable; do
touch /etc/mail/${map}
chmod 600 /etc/mail/${map}
makemap hash /etc/mail/${map}.db < /etc/mail/${map}
chmod 0600 /etc/mail/${map}.db
done
 echo "mail.vitro.pe.kr
www.vitro.pe.kr" > /etc/mail/local-host-names
메일을 받아 들일 호스트 지정
 chmod 600 /etc/mail/*
 /etc/sysconfig 파일을 다음 두라인의 내용으로 생성
 DAEMON=yes
QUEUE=1h
 첨부된 센드메일 시작 스크립트를
/etc/rc.d/init.d/로 복사
chmod 700 /etc/rc.d/init.d/sendmail
chkconfig --level 2345 sendmail on
/etc/rc.d/init.d/sendmail start
 메일을 보내고 받고 테스트 해본다.
메일 큐확인 명령 mailq
메일 보내기 mail 이멜 주소
메일 확인 mail (메일을 확인할 유저로 로그인후)
이름
암호
  목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 0.88 초 ] 작업시간: [ 0.1 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1791017495
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.