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

2012-09-15

Mail] procmail 설치하기



원문 :

http://procmail.episode.co.kr/bbs/view.php?id=doc&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=20


2. procmail 설치하기

여기서는 sendmail/qmail 에 대한 설치법 및 기본적인 설정법과 procmail 설치법에 대해
설명합니다.
여기에 작성되는 모든 내용은 리눅스(RedHat 7.3) 기반의 rpm 으로 설명됩니다.
보 다 상위버전에서는 보다 쉽게 설치가 가능하리라 생각합니다.



2.1 sendmail procmail hcode

rpm 기반의 설치법은 상당히 간단한 편입니다.
일단 아래내용을 보면

$ su -
Password:
# rpm -Uvh sendmail-8.13.1-2.src.rpm
1:sendmail ########################################### [100%]
# cd /usr/src/redhat/SPECS/
# rpm -ba --target i686 sendmail.spec
# cd /usr/src/redhat/RPMS/i686/
# rpm -Uvh sendmail-*.rpm
# cp -p /usr/sbin/sendmail.sendmail /usr/sbin/sendmail
# cp -p /etc/pam.d/smtp.sendmail /etc/pam.d/smtp
# cd /etc/mail
# make
# /etc/rc.d/init.d/sendmail restart

위 내용만으로 기본적인 설정은 종료됩니다.
위에서 사용된 sendmail-8.13.1-2.src.rpm 은
http://procmail.episode.co.kr 에서 구할수 있습니다.


다 음은 procmail 에 대한 설치법입니다.
리눅스에는 기본으로 설치되는 추세이기에 기본적으로 설치가 되어 있을 것입니다.
그 러나 여기에 있는 최신 버전을 i686 으로 설치해 주는것이 더 빠르고 안전하게 작동하리라 생각합니다.

$ su -
Password:
# rpm -Uvh procmail-3.22-5.src.rpm
1:procmail ########################################### [100%]
# cd /usr/src/redhat/SPECS/
# rpm -ba --target i686 procmail.spec
# cd /usr/src/redhat/RPMS/i686/
# rpm -Uvh procmail-3.22-5.i686.rpm
# cd /etc/mail
# make
# /etc/rc.d/init.d/sendmail restart

역시 위에서 사용된 procmail-3.22-5.src.rpm 은
http://procmail.episode.co.kr 에서 구할수 있습니다.


마 지막으로 한글디코딩을 위한 hcode 의 설치입니다.

$ su -
Password:
# rpm -Uvh hcode-2.1m3-4.src.rpm
1:hcode ########################################### [100%]
# cd /usr/src/redhat/SPECS/
# rpm -ba --target i686 hcode.spec
# cd /usr/src/redhat/RPMS/i686/
# rpm -Uvh hcode-2.1m3-4.i686.rpm

역 시 소스는 http://procmail.episode.co.kr 에서 구할수 있습니다.



2.2 sendmail procmail hcode 연동 확인

정상적으로 설치되었을 경우 연동확인은 하지 않아도 되지만
만 약에 정상적으로 설치가 되지 않았다면 수동으로 설치해 줍니다.

$ cat /etc/mail/sendmail.mc | grep procmail
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
MAILER(procmail)dnl

위 내용이 출력되지 않거나 다르게 출력된다면 적절히 수정하고
다음을 실행합니다.

$ su -
Password:
# cd /etc/mail
# vi /etc/mail/sendmail.mc
# make
# /etc/rc.d/init.d/sendmail restart

이것으로 연동은 확인은 끝입니다.



2.3 sendmail 기반의 필터링 적용

procmail 의 설정화일은 단 한개입니다.
http://procmail.episode.co.kr 에서 procmailrc 를 다운받아 /etc/procmailrc 에 저장한 후
샌드메일을 재가동 하는것으로 모든 필터링 적용이 끝납니다.
단, 주의할것은 단순히 메모장으로 작성하여 업로드 할 경우 procmail 이 인식을 하지 못할 경우가 있습니다.
vi 를 열어서 입력하거나, unix 포멧의 화일로 저장하는것이 안전합니다.



2.4 qmail 과 procmail 의 연동 => qmail 사용자 추가 사항...

2.4.1 기초사항

기본적으로 procmail 은 sendmail procmail 상황에 맞춰져 작성되어 있습니다.
따라서 MAILDIR, DEFAULT 등의 변수를 사용자가 직접 설정해 주어야 합니다.

또한, 실제계정을 이용한 qmail 과 qmail vpopmail 을 이용한 가상계정에서의
procmail 연동방식이 달라집니다.

또하나 주의할것은 qmail 은 기본적으로 각각의 이메일 사용자계정의 권한으로 설정됩니다.
따라서, /etc/procmailrc 와 /var/log/qmail/procmail 등의 화일권한을 수정해주어야 합니다.

아래에 세부적인 설정 방법을 알려드립니다.



2.4.2 qmail procmail(공통부분)

procmail, hcode 의 설치방법은 sendmail 방식과 같습니다.
세 부적인 설치법은 sendmail 방식을 참고합니다.

위 두개의 화일을 설치후 다음의 명령을 실행합니다.

$ su -
# vi /etc/procmailrc
# chmod 644 /etc/procmailrc
# touch /var/log/procmail
# chmod 644 /var/log/procmail



2.4.3 실제계정을 사용할 경우

/etc/procmailrc 의 상단에 다음을 추가합니다.

MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR

그 다음에 rc 화일을 수정합니다.

# vi /var/qmail/rc
| /path/to/preline /path/to/procmail -p -m /etc/procmailrc

qmail 을 재가동합니다.



2.4.4 가상계정을 사용할 경우 (vpopmail mysql사용시)

/etc/procmailrc 의 마지막 부분과, $DEFAULT 를 사용한 부분 모두에 다음으로 변경한다.

:0 w
| /path/to/vdelivermail '' bounce-no-mailbox

IBM AIX] anti relay 설정 및 sendmail 설정 방법



Anti Relay
 설정방법
세희(kseh@kr.ibm.com)

다음은 aix5l에 서 기본적으로 사용되는 sendmail 8.11에서의 anti-relay 설정방법이다.


relay방지를 위해 sendmail 8.11.0의 환경을 설정
우선 다음 파일?이 설치되어 있는지 확인하자. 만약 설치되어 있지 않으면 smit을 사용해서 설치해야 한다.
# lslpp -l bos.adt.base
# lslpp -l bos.net.tcp.adt

AIX 5.1.0에는 현재 사용환경에 맞춰 sendmail 환 경파일을 만들 수 있도록 각종 도구와 매크로가 들어있는데, 이것들은bos.net.tcp.adt 파일?에 있다. 설 치하고 나면 이 파일들은
/usr/samples/tcpip/sendmail/cf 디렉토리에 위치한다.

이 디렉토리로 이동해보자.
#cd /usr/samples/tcpip/sendmail/cf

이 디렉토리에는 aixsample.mc 라는 파일이 있는데, 이 파일에는 사용자가 바꿀 수 있는 여러 가지 기능들이 들어있다. 이 파일을vi등으로 열어보면 다음과 같은 항목이 있다.
FEATURE(promiscuous_relay) dnl

우선 원래 파일을 겹쳐 쓰지 않도록 파일을 복사하자.
#cp aixsample.mc aix51.norelay.mc

복사한 파일을 열어보면 다음과 같이 보일 것이다. (à옆에 나오는 항목은 환경설정파일의 부분이 아니고 주석문이다.)
#vi aix51.norelay.mc
NOTE:The aixsample.mc can be edited with whatever FEATURES are needed for the
new sendmail.cf.
These features are documented at http://www.sendmail.org/m4/features.html


This is an example of a minimum .mc file:

divert(0)dnl
OSTYPE(aixsample)dnl
FEATURE(genericstable)dnlà지워도 무방
FEATURE(mailertable)dnlà지워도 무방
FEATURE(virtusertable)dnlà지워도 무방
FEATURE(domaintable)dnlà지워도 무방
FEATURE(allmasquerade)dnl
FEATURE(promiscuous_relay)dnlà승인되 지 않은 relay를 방지하려면 삭제
FEATURE(accept_unresolvable_domains)dnl à지워도 무방
FEATURE(accept_unqualified_senders)dnlà지워도 무방
DOMAIN(generic)dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(uucp)

이제 새 파일은 다음과 같이 보일 것이다.
(주의! 지울 항목은 완전히 없애야 한다. 주석처리하는 것은 소용없다.
relay와 관련 있는 항목은 "FEATURE(promiscuous_relay)dnl" 만 해당되지만, 이것만 지우면 계속 경고메시지가 나오기 때문에 지워도 무방한 항목은 지워야 한다.)

#vi aix51.norelay.mc
divert(0)dnl
OSTYPE(aixsample)dnl
FEATURE(allmasquerade)dnl
DOMAIN(generic)dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(uucp)

이제 새 옵션을 사용하여 새 sendmail.cf를 만들자. 모든 작업은 /usr/samples/tcpip/sendmail/cf 디렉토리에서만 수행해야 한다.

#m4../m4/cf.m4 aix51.norelay.mc> testmail.cf

이제 /usr/samples/tcpip/sendmail/cf 디 렉토리 아래 새 testmail.cf가 보일 것이다. 원래의 sendmail.cf를 이름을 바꾸어 복사한 다음 새로 만든 testmail.cf를 sendmail.cf로 복사한다. (원래 파일의 백업을 만드는 것을 잊지 말 것!)

#mv /etc/mail/sendmail.cf/etc/mail/sendmail.cf.orig
#mv testmail.cf/etc/mail/sendmail.cf

이제 새 /etc/mail/sendmail.cf 가 생겼다. 여기에는 관리자가 특정 파일을 지정해서 그 파일에 relay를 허용한 도메인을 적을 수 있도록 했다. 우 선 sendmail.cf를 열어보자.

#vi /etc/mail/sendmail.cf
여기에서 아래와 같은 매크로를 찾아보자.
#Hosts that will permit relaying ($=R)
FR-o /etc/mail/relay-domains

relay-domains 파일에 relay를 허용한 도메인을 적어놓으면 된다. 현 재 여기에서는 특별히 수정할 사항은 없다.

이제 relay를 허용할 도메인이나 호스트명을 relay-domains파일에 적는다. 이때 여러분 자신의 호스트 이름도 적어야 한다. 네크워크나 호스트 IP주소로 적어도 된다.
#vi /etc/mail/relay-domains
entry1...
entry2...
entry3...

예를 들어 ibm.com도메인에서 오는 호스트들은 모두 relay를 허용하려면 relay-domains파 일에 ibm.com이라고 써놓으면 된다.

이제 sendmail에게 환경파일이 바뀐 것을 알려줘야 한다.
#refresh -s sendmail

만약 sendmail 데몬이 돌아가고 있지 않다면 다음 명령어로 sendmail이 살아있는 상태인지 아닌지 확인할 수 있다.

#lssrc -s sendmail
SubsystemGroupPIDStatus
sendmailmail5424active

만약 sendmail데몬이 살아있는 상태가 아니라면 다음 명령어로 데몬을 살린다.

#startsrc -s sendmail -a "-bd -q30m"

만약 허용되지 않은 도메인에서 relay로 이용하려고 하면 “relay denied”라는 메시지가 보일 것이다.

Troubleshhting
메일사용 시 다음과 같은 메시지가 보일 수 있다.
/etc/mail/sendmail.cf: line 140: fileclass: Cannot open
/etc/mail/local-host-names:A file or directory in the path name does not exist.

이런 경우 local-host-names 파일을 열어서 자신의 호스트 이름과 알리아스,도메인이름, relay하는 도메인이름등을 적어넣으면 된다. 예를 들어 carter라는 이름의 호스트이고 ibm.com, austin.ibm.com이라는 도메인에서 오는 메일을 relay한다면 local-host-names 파일은 다음과 같다.

#vi /etc/mail/local-host-names

carter
carter.autin.ibm.com
ibm.com
austin.ibm.com


주의
이 정보에 대해서 IBM은 직접적 책임이 없으며, 이 정보를 사용한 구현방법에 대한 책임은 전적으로 사용자의 능력과 사용환경에 의존하며, 사용결과에 대한 책임역시 사용자에게 있다.