메일 서버 (SENDMAIL )

운영자 | 기사입력 2005/02/21 [09:07]
>
필자의 다른기사 보기 인쇄하기 메일로 보내기 글자 크게 글자 작게
메일 서버 (SENDMAIL )
 
운영자   기사입력  2005/02/21 [09:07]

메일 서버 (SENDMAIL )



























학습 목표

리눅스 서버에 sendmail 서버를 구축하고 관리 할 수 있는 내용은 배운다.











들어가며

인터넷의 한 분야인 메일은 초기에는 전문인들만 사용하는 분야 이였지만 웹기반에 메일을 사용 할 수 있는 웹메일인 핫메일(http://www.hotmail.com ms 운영) 시작으로 국내에는
한메일(http://www.hanmail.net) 등 여려 웹을 기반으로 한 무료 메일 서비스가 나타나면서 메일은 대중화 대었으며 요즘은 메일에서 단순히 텍스트의 내용 뿐만 아니라 멀티미디어의 내용을 전달 할 수 있는 형태까지 발달하였다.

일반 유저들은 웹에 접속해서 간단하게 메일을 보내지만 내부적으로는 메일 서버라는 서버프로그램이 메일의 송수신을 하는데 그 대표적인 것이 sendmail 과 좀더 보안쪽에 안정적인 qmail 이 있으면 ms에 운영하는 핫메일의(os: BSD) 전송 메일 서버는 qmail 로 되어 있으며 국내 메일서버의 90% 이상이 sendmail 서버로 메일서버를 운영하고 있다.


sendmail : http://www.sendmail.org
qmail : http://www.qmail.org
한국 미러링싸이트 : http://www.kldp.org/qmail




국내 메일 서버 현황

국내 메일 서버
mail.lycos.co.kr : sendmail v8.9.3
www.daum.net : sendmail v8.9.3
www.kr.yahoo.com : sendmail v8.9.3
www.intz.com : sendmail v8.8.8+sun
www.altavista.co.kr : sendmail v8.9.3
www.withyou.net : sendmail v8.9.3
www.orgio.net : sendmail v8.9.3
www.hanmir.com : sendmail SMI v8.6
www.card2card.com : Microsoft X1 IMS
www.mycard.co.kr : Microsoft IMS
www.bycard.co.kr : Microsoft IMS
www.lettee.com : sendmail v8.9.3
www.interbird.com/card : sendmail v8.9.3
www.flowermail.co.kr : Microsoft IMS
www.amail.co.kr : sendmail v8.9.3
www.tripod.co.kr : sendmail v8.9.3
www.shinbiro.com : sendmail v8.9.1aH1
www.interpia98.net : sendmail v8.9.3
www.koreamusic.net : sendmail v8.9.3
krfc.co.kr : sendmail v8.9.3
www.opentown.com : MS Exchange v5.5
www.netpark.co.kr : sendmail v8.9.3
www.netian.com : sendmail v8.9.3
www.hihome.co.kr : sendmail v8.9.3
www.dreamwiz.com : sendmail v8.9.3
www.midas.co.kr : sendmail v8.8.8
www.t2n.net : Wide mail v.1.0.3
naver : sendmail v8.9.3
chollian : sendmail v8.9.1a
hitel : netscape message server
unitel : sendmail v8.9.0
netsgo : microsoft smtp 5.5
Samsung : sendmail v8.9.3
LG : microsoft smtp 5.5
Doosan : sendmail v8.8.5
Daewoo : sendmail v8.9.2












RPM 설치
sendmail 은 3개의 파일로 되어 있습니다.
자료는 ftp.interpia98.net에서 다운 받은 수 있다.

sendmail-8.11.3-1kr.i686.rpm
sendmail-cf-8.11.3-1kr.i686.rpm
sendmail-doc-8.11.3-1kr.i686.rpm

설치
rpm -Uvh sendmail-8.11.3-1kr.i686.rpm
rpm -Uvh sendmail-cf-8.11.3-1kr.i686.rpm
rpm -Uvh sendmail-doc-8.11.3-1kr.i686.rpm

설정 파일
/etc/sendmail.cw
/etc/sendmail.cf
/etc/aliases
/etc/mail/access
/etc/mail/access.db
/etc/mail/domaintable
/etc/mail/domaintable.db
/etc/mail/mailertable
/etc/mail/mailertable.db
/etc/mail/virtusertable
/etc/mail/virtusertable.db


sendmail.cw  -- > local-host-names (이름 변경됨)
메일을 받을 도메인을 입력하면 되며 기본적으로 본인의 도메인이 입력되어야
있어야 하며 DNS에서 여려개의 도메인을 세팅시 호스팅 도메인들도 등록을
해야 메일을 받을 수 있다.

sansung.net (메인 도메인 )
iwav.co.kr (호스팅 도메인)
mwav.net (호스팅 도메인)




sendmail.cf
메일 서버의 가장 중요한 설정 파일이며 많은 설정 내용들이 들어가 있지만
설정이 복잡하기 때문에 변경 할 것은 거의 없습니다.



aliases
메일을 다른 사용자에게 돌리거나 메일링리스트 운영시에 응용하여 사용 할 수 있다.

#
# @(#)aliases 8.2 (Berkeley) 3/5/94
#
# Aliases in this file will NOT be expanded in the header from
# Mail, but WILL be visible over networks or from /bin/mail.
#
# >>>>>>>>>> The program "newaliases" must be run after
# >> NOTE >> this file is updated for any changes to
# >>>>>>>>>> show through to sendmail.
#

# Basic system aliases -- these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root

# General redirections for pseudo accounts.
bin: root
daemon: root
games: root
ingres: root
nobody: root
system: root
toor: root
uucp: root

# Well-known aliases.
manager: root
dumper: root
operator: root
# trap decode to catch security attacks
decode: root

# Person who should get root's mail
#root: marc

## 위의 내용은 기본적으로 들어가 있는 내용

webmaster: iwav
## webmaster 유저로 오는 메일을 iwav 유저에서 보낸다.

mwav: aaaa,bbbb,cccc,dddd
#mwav 로 오는 메일을 aaaa,bbbb,cccc dddd 로 보낸다.


#email:include:/etc/list.txt

## mailing 으로 오는 메일을 list.txt 파일 목록에 있는 모든 사람들한데 보낸다.


#수정 후 newaliases 명령어를 실행해야 그 값이 반영된다.


/etc/mail/access

# Check the /usr/doc/sendmail-8.9.3/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/doc/sendmail-8.9.3/README.cf is part of the sendmail-doc
#OK 모든 메일을 받는다.
# RELAY 지정된 도메인으로 부터오는 메일을 받는다.
# REJECT 지정된 주소로부터오는 모든 메일을 거부한다.
# 추가 후 makemap hash access < access
# by default we allow relaying from localhost...
localhost.localdomain RELAY
localhost RELAY
hacker.org REJECT
## hacker.org 로 오는 메일을 거부한다.
127.0.0.1 RELAY
211.171.202 RELAY
211.221 RELAY
#210 RELAY
211.58.230 RELAY



/etc/mail/virtusertable

# alaise 와 비슷한 기능을 한다.
# 이 file은 virtual user를 설정하는 file이다.
# 실제로 없는 계정을 mapping 할수 있으며, 같은 이름 역시
# domain 별로 다르게 mapping 할수 있다.
#
# file 작성후
# makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
# 명령을 실행 해 줘야 한다.
#
# * 예제 *
# admin@sansung.net alwaysb@hotmail.com
# sales@iwav.co.kr byun
#
# admin@abc.co.kr abc
# sales@abc.co.kr abc
#
#
@adin.co.kr adin
@javaexpert.co.kr javaexpert
# @javaexpert.co.kr 도메인으로 오는 모든 메일을 javaeepert 로 보낸다.




POP3 설치


rpm -q imap

#pop3가 작동하기 위해서는 imap 이 설치 되어 있어야 하며

설치가 안되있으며
시디에서

rpm -Uvh imap*

으로 설치 할 수 있다.

pop3 는 inet 방식으로 작동을 하기 때문에

/etc/ineted.conf 파일에서

#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d

주석(#) 을 지워야 한다.

inet
/etc/rc.d/inint.d/inet restart


pop3 데스트 하기


telnet localhost 110

[root@test /root]# telnet localhost 110
Trying 127.0.0.1...
Connected to sansung.
Escape character is '^]'.
+OK POP3 sansung v7.59 server ready


(pop 는 110 포트를 사용하며 종료는 quit )

 
sendmail.cf
O MaxMessageSize=100000
# 메일 크기가 1M를 넘지 않는다.
O QueueLA=64
# 기본은 8인데 전자우편이 8이 이상 되면 바로 큐에 저장하겠다는 것인데
# 이것을 높여주면 전자우편을 큐에  저장하기 않고 보냄
O RefuseLA=123
#  메일 프로세스가 평균 123개 이상이면 메일처리를 거부하겠다는 것임
O MamDaemonChilden=64
# 최대 메일 프로세스를 64개지 만들어서 처리 하겠다.
O MinQueueAge=5m    
# 큐에 저장된 메시지를 5분 후에 다시 재시도를 하겠다는 것
 
 
새로이 추가 된 것 들

메일 발송이 가능 한 곳은  localhost 나 이니면  /etc/mail/access   파일에서
접속을 허가한 특정 IP 에사만  메일 발송이 되었기 때문에 이에 추가된 것이

passwd 파일이 등록되 유저는  access에 별도 추가를 안해도 메일 발송을
가능하게 하는 것이다.
리눅스 7.1 에서는 이 패캐지가 설치되어 있지만 이전 버번은 따가 추가하여
설치를 하여 한다.
 
[root@aaa /root]# rpm -qa |grep sendmail
# 센드 메일
sendmail-8.11.3-1wl
sendmail-doc-8.11.3-1wl
sendmail-cf-8.11.3-1wl
[root@aaa /root]# rpm -qa |grep cyrus
#     passwd 파일을 이용해서 인증을 위한 cyrus
cyrus-sasl-devel-1.5.24-17
cyrus-sasl-1.5.24-17
cyrus-sasl-gssapi-1.5.24-17
[root@aaa /root]# rpm -qa |grep openssl
# 패스워드 암호화를 위한 ssl
openssl-python-0.9.6-3
openssl-perl-0.9.6-3
openssl-devel-0.9.6-3
openssl-0.9.6-3
openssl095a-0.9.5a-1
[root@aaa /root]# rpm -qa |grep imap
# pop3  서버를 imap
imap-devel-2000-9
php-imap-4.0.4pl1-9
imap-2000-9               

 
 위에 나온 패키지가 설치가 되어 있어야 하며 없다면 시디롬에서 설치가 가능하다.
 
설치가 되었으면    pop3를 가동하자 (inetd.conf 나   ipop3  을 수정한다)
 
 인증 기능 확인 테스트
 
[root@aaa /root]# telnet localhost 25
Trying 127.0.0.1...
Connected to aaa (127.0.0.1).
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.11.3/8.11.3; Fri, 2 Nov 2001 04:32:33
 -0500
ehlo aaa.com
250-localhost.localdomain Hello aaa [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-ETRN
250-XUSR
250-AUTH LOGIN PLAIN
250 HELP            
quit
 
 
다음 아웃록에서     인증 필요를 채크를 하면  access 파일을 설정하지 않고
유저들을 메일 서버를 보낼 수 있다.
 
 
spam  메일 막기 
sendmail.cf 
## Error messages definition
## Error codes refer to RFC821.

D{Msg_mailer}"553 SPAMBOT is not allowed here."
D{Msg_adv}"553 spam no.."
D{Msg_virus}"553 Your message may contain the"
D{Msg_master}"If you have questions, please email admin@$j."
D{Msg_date}"553 Bogus date format - SPAMMER - "
D{Msg_to}"501 Bogus recipient address."
D{Msg_from}"553 Must exist sender mail address"
D{DENYPRON}"553 Deny Porno spam mail!!!"
###################################################
#### Local Rulesets (dacapo, 11/13/99) #####
###################################################

Scheck_subject
# 제목을 검사하고 아래와 같은 내용이 있으면 에러 메시와 같이 반송한다.

R<ADV:$*> $#error $: ${Msg_adv} - ${Msg_master}
RADV:$* $#error $: ${Msg_adv} - ${Msg_master}
RADV$* $#error $: ${Msg_adv} - ${Msg_master}
R[ADV]$* $#error $: ${Msg_adv} - ${Msg_master}
R<광고>$* $#error $: ${Msg_adv} - ${Msg_master}
R[광고]$* $#error $: ${Msg_adv} - ${Msg_master}
RImportant Message From $* $#error $: ${Msg_virus} Melissa virus - See http://www.cert.org/advisories/CA-99-04-Melissa-Macro-V$
RRe: Important Message From $* $#error $: ${Msg_virus} Melissa virus - See http://www.cert.org/advisories/CA-99-04-Melissa-Macro-V$
RC:\CoolProgs\Pretty Park.exe $#error $: ${Msg_virus} PrettyPark virus - See http://www.symantec.com/avcenter/venc/data/prettypar$
R영상으로 보내는 편지 $#error $: ${Msg_virus} Ecokys virus - See http://www.ahnlab.com/newvir/warn19990330.htm - ${Msg_ma$

테스트 하기 
[root@server /root]# sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> check_subject [광고]
check_subject input: [ M-1M-$M-0M-m ]
check_subject returns: $# error $: 553 M-1M-$M-0M-m M-8M-^M-@M-OM-@M-; M-0M-EM-:M-N M-GM-UM-4M-OM-4M-Y . . - If you have questions , please email admin @ server . test .
>
 
Nimda.worm 차단하는 방법
HContent-Type: $>check_ct
D{NIMDA}"Your message may contain the NIMDA.WORM!!!"
Scheck_ct R
$+boundary="====_ABC1234567890DEF_===="        $#error $: 550 ${NIMDA}
 
 

트위터 트위터 페이스북 페이스북 카카오톡 카카오톡
기사입력: 2005/02/21 [09:07]  최종편집: ⓒ iwav
 
 
많이 본 기사