[메일] sendmail 에 대한 전반적인 이야기 (아랑)

======================================================================================

SENDMAIL 에 대하여 …

                                        작성자: 서 진 우 ( alang at sysmng.com )

======================================================================================

인터넷이 대중화되면서 편지를 주고받는 것보다 E-Mail(전자우편)을 주고 받는 것이

일상적인 일이 되었습니다. 이번 주 테마에서는 E-Mail(전자우편)이 어떻게 전달되는지의

개념과 메일서버로 가장 많이 사용되고 있는 Sendmail의 설치방법과 사용법에 대해서

알아보도록 하겠습니다.

E-mail(전자우편)과 메일서버

————————————————————————————

Sendmail의 설치와 사용법을 배우기 전에 E-Mail(전자우편)이 어떠한 경로를 통해

전달되고 어떻게 사용되는지에 대해 살펴보겠습니다. 메일서버란 인터넷에서

E-Mail(전자우편)을 주고 받는 기능을 수행하는 서버를 말하며, E-Mail(전자우편)은 크게

두 종류의 프로그램?프로토콜에 의해 전달됩니다. 여기서 두 종류의 프로그램이란

MUA(Mail User Agent)와 MTA(Mail Transfer Agent)를 말합니다. MUA로는

사용자가 직접 메일을 작성하거나 보낼 때 사용하는 넷스케이프 메신저, 마이크로소프트

아웃룩, 유도라 등의 프로그램이 있고, MTA는 실제로 메일을 전송해주는 Sendmail,

Qmail등의 프로그램이 있습니다.

아래의 그림과 같이 Sendmail이 설치된 메일서버는 SMTP(Simple Mail Transfer

Protocol) 프로토콜을 사용하여 메일을 전송하고, 호스트로부터 받은 메일을 클라이언트로

전달할 때는 POP3 또는 IMAP등의 프로토콜을 사용합니다. 예를 들어

aroma at

mail.linuxul.com이라는 메일주소를 가진 사람이 다른 서버에 계정을 가진

nea at yahoo.co.kr이라는

친구에게 메일을 보낸다고 가정하면, 아래와 같은 과정을 거쳐

메일이 전달됩니다.

1. aroma at

mail.linuxul.com이라는 사람이 넷스케이프 메신저와 같은 MUA

프로그램에서 보낸 메일은 먼저 SMTP 프로토콜을 통해 mail.linuxul.com 메일서버에

전달됩니다.

2. mail.linuxul.com에서 대기하고 있던 MTA데몬(Sendmail)은 메일을 메일큐

디렉토리(/var/spool/mqueue)에 임시 저장한 후 SMTP 프로토콜을 통해 다시

yahoo.co.kr메일서버로 전송하고 큐디렉토리에 저장했던 메일을 삭제합니다.

yahoo.co.kr에서는 sendmail 데몬이 대기하고 있다가 mail.linuxul.com 메일서버가

보내온 메일의 도착지가 자신의 것인지 확인 한 후 맞으면 메일박스(/var/mail

디렉토리)에 nea라는 파일로 저장합니다.

3. nea at yahoo.co.kr의

사용자는 마이크로소프트 아웃룩이나 유도라와 같은 MUA를

통해 메일을 확인하며, 이때에는 POP3나 IMAP등의 프로토콜을 통해 메일이

전송됩니다.      

Sendmail

———————————————————————————–

Sendmail은 메일서버로 가장 많이 사용되고 있는 MTA프로그램으로 공식사이트는

http://www.sendmail.org입니다.

대부분의 리눅스 배포판에 기본적으로 설치가 되어

있으므로 자신의 시스템에 맞는 환경설정을 한 후 사용하시면 됩니다. Sendmail의 최신

버전은 sendmail 8.11.2이며 아래의 사이트에서 다운받을 수 있습니다.

Sendmail 공식 미러사이트 – ftp://ftp.sendmail.org

Sendmail 미러사이트 – http://www.sendmail.org/mirrors.html

국내 미러사이트 : ftp://ftp.linux.co.kr/server/sendmail

POP3와 IMAP

———————————————————————————–

앞에서도 설명했듯이 넷스케이프 메신저나 마이크로소프트 아웃룩과 같은 클라이언트

프로그램에서 메일을 가져오려면 메일서버에 POP3 또는 IMAP등의 데몬이 설치되어

있어야 합니다. POP3(Post Office Protocol version 3)와 IMAP(Internet

Message Access Protocol)데몬은 사용자의 인증절차를 거친 후 메일을

클라이언트에 보내는 기능을 수행합니다. RedHat 리눅스 배포판에서는 IMAP과 POP

데몬을 하나의 패키지(UW IMAP)로 제공하고 있어 누구나 쉽게 설치할 수 있으며

최신버전은 아래의 사이트에서 다운받으시면 됩니다.

UW IMAP 공식 홈페이지 – http://www.washington.edu/imap/

UW IMAP 미러사이트 – ftp://ftp.cac.washington.edu/imap

국내 미러사이트 – ftp://ftp.linux.co.kr/server/imap

Sendmail과 IMAP 설치하기

대부분의 리눅스 배포판에는 Sendmail이 기본적으로 내장되어 있으므로 최신버전이나

보안문제로

인해 다시 설치해야 하는 경우를 제외하면 소스를 사용해 설치하는 경우는 드물고 배포판에

들어있는 RPM 패키지를 사용해 설치합니다.

Sendmail 설치하기

와우 리눅스 7.0 까치버전을 기본 OS로 하여 Sendmail을 설치하는 방법에 대해

알아보겠습니다. 먼저 CD-ROM을 마운트한 후 /RedHat/RPMS 디렉토리에 있는

sendmail을 확인합니다. 기본적으로 제공하는 Sendmail은 Sendmail-8.11.0입니다.

# mount /dev/cdrom

# cd /mnt/cdrom/RedHat/RPMS

# ls sendmail*

sendmail-8.11.0-8.i386.rpm

sendmail-cf-8.11.0-8.i386.rpm

sendmail-doc-8.11.0-8.i386.rpm

Sendmail에 관련된 rpm패키지를 모두 설치합니다.

# rpm -Uvh sendmail*

sendmail         #############################

sendmail-cf      #############################

sendmail-doc     #############################

Sendmail을 실행하기전에 /etc/services 파일을 열고 smpt 프로토콜에 주석처리가 되어

있는지 확인한 후 Sendmail 서버를 실행합니다.

# cat /etc/services | grep smtp

smtp25/tcp    mail

smtp25/udp    mail

smtps     465/tcp # SMTP over SSL (TLS)

Sendmail 서버가 정상적으로 실행되었는지 확인하기 위해 telnet을 사용해 25번 포트(smpt)로

접속해봅니다. 아래와 같은 메시지가 출력되면 Sendmail이 정상적으로 실행된 것입니다.

Sendmail 서버가 정상적으로 실행되었는지 확인하기 위해 telnet을 사용해 25번 포트(smpt)로

접속해봅니다. 아래와 같은 메시지가 출력되면 Sendmail이 정상적으로 실행된 것입니다.

# telnet 0 25

Trying 0.0.0.0…

Connected to 0 (0.0.0.0).

Escape character is ‘^]’.

220 xxxxxx.net ESMTP Sendmail 8.11.2/8.11.2; Sat, 21 Jul 2001 14:28:12 +0900

만약 레드헷 버젼이 7.1 이상부터는 relay 보안 기능이 강화 되어서 초기 셋팅상태에서는

내부 사용자 끼리만 메일을 보내고 받을수 있다. 원격지에서는 이 서버를 통해서 메일을

주고 받을수가 없다. 일단..새로 sendmail.cf 파일을 만들어야 한다.

# cd /etc/mail

/etc/mail/sendmail.mc 파일을 수정한후 m4 를 이용하여 새로운 sendmail.cf

파일을 만든다. (redhat 7.1 부터 변경된 사항)

# vi sendmail.mc

——————————————————————

.

.

아래 설정 부분 제일 앞에 “dnl” 을 붙여준다.

dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA’)

.

.

——————————————————————

# m4 sendmail.mc > /etc/sendmail.cf

# /etc/rc.d/init.d/sendmail restart

확인 하도록 하자.

# telnet <ip address> 25

Trying x.x.x.x…

Connected to 0.  

Escape character is ‘^]’.

220 xxxxxxx.net ESMTP Sendmail 8.11.2/8.11.2; Wed, 27 Jun 2001 01:29:51 +0900

Washington IMAP설치하기

————————————————————————————-

Washington IMAP 역시 RPM 패키지로 제공하고 있으므로 CD-ROM을 마운트한 후 쉽게

설치할 수 있습니다. 먼저 CD-ROM에 있는 UW IMAP 패키지를 확인 해 보겠습니다.

# mount /mnt/cdrom

# cd /mnt/cdrom/RedHat/RPMS

# ls imap*

imap-2000-3.i386.rpm

Washington IMAP는 imap-2000-3이라는 파일명으로 패키징되어 있으며, POP3와 IMAP

데몬이 모두 설치됩니다.

# rpm -Uvh imap-2000-3.i386.rpm

이제 설치한 imap과 pop3 데몬을 클라이언트에서 접속할 수 있도록 실행시켜야 합니다.

먼저 /etc/services 파일을 열어 pop3와 imap의 주석을 제거하고 아래와 같이 설정되었

는지 확인합니다.

pop3        110/tcp  pop-3  # POP version 3

pop3        110/udp  pop-3

imap2   143/tcp  imap    # Interim Mail Access Proto v2

imap2   143/udp  imap

레드햇 7.0 버전부터는 슈퍼데몬이 inetd에서 xinetd로 변경되었고, inetd.conf 설정파일이

xinetd.conf 파일로 변경되었습니다. xinetd의 기본적인 설정파일들은 /etc/xinetd.d에

위치하므로 설치한 ipop3와 imaps 파일을 열고 disable = no를 추가하여 아래의 그림과 같이

설정합니다.

# vi /etc/xinetd.d/ipop3

# default: on

service pop3

{

        disable = no

        socket_type = stream

        protocol = tcp

        wait = nowait

        user = root

        server = /usr/sbin/ipop3d

        log_on_success += USERID

        log_on_failure += USERID

}

다음에는 슈퍼 데몬을 다시 재시작합니다.

# /etc/rc.d/init.d/xinetd restart

이제 마지막으로 설치한 POP3와 IMAP이 제대로 가동되었는지 확인해 보겠습니다. telnet을

이용하여 25번 포트(POP3)와 143번 포트(IMAP)로 접속한 후 아래와 같이 테스트 해봅니다.

여기까지 제대로 되었다면 설치는 성공한 것입니다.

이밖에 pop 프로그램으로 많이 사용하는 qpopper 의 설치에 대해 알아보자.

pop 데몬으로 qpopper 를 사용할것이기 때문에 최신 소스를 다운 받는다.

다운 받은 소스를 풀고 그 디렉토리로 이동한 다음…

# ./configure  –enable-specialauth –enable-servermode –enable-shy

# make

# cp popper/popper /usr/local/lib

inetd.conf 파일을 redhat 7.1 부터는 쓰지 않으므로 xinetd 방식으로 전환 한다.

먼저 inetd.conf 파일을 /etc 밑에 만들고 pop 설정 부분을 적어준다.

# vi inetd.conf

—————————————————————————

pop-3   stream  tcp     nowait  root     /usr/local/lib/popper

—————————————————————————

# inetdconvert -d /etc/xinetd.d pop-3

# /etc/rc.d/init.d/xinetd restart

확인 하자.

# telnet 0 110

Trying 0.0.0.0…

Connected to 0.

Escape character is ‘^]’.

+OK ready

이것으로 센드메일에 관련되어 smtp, pop 모든 셋팅을 마쳤다.

Sendmail 설정하기

——————————————————————————————-

Sendmail에서 가장 중요하고도 어려운 부분이 sendmail.cf 파일의 설정입니다.

O’Reilly사에서

Sendmail에 대한 전문서적이 나올 정도로 방대하고 다양한 기능을 가지고 있으며 사용법도

매우

다양합니다. Sendmail을 사용하기 위해 기본적으로 알아야 할 설정 파일들에 대해

살펴보겠습니다.

/etc/sendmail.cf

Sendmail의 가장 중요한 설정파일로 /etc 또는 /etc/mail 디렉토리에 자동으로 설치되어

있습니다. Sendmail.cf에 대한 자세한 내용은 Bryan Costales 와 Eric Allman이 집필한

O’Reilly의 Sendmail을 참고하시거나 이상로님의 홈페이지

http://trade.chonbuk.ac.kr/~leesl/mail/을 참고하시기 바랍니다.

여기서는 간단히

메일서버를 관리하기 위한 몇 가지 설정에 대해서만 다루겠습니다.

Fw/etc/mail/local-host-names

메일을 수신할 호스트 이름을 명시한 파일의 위치를 설정합니다.

FR-o /etc/mail/relay-domains

relay-domains파일에는 Relay를 허용할 호스트의 이름을 설정합니다. 주석으로 처리하면

모든 IP에 대해서 Relay가 허용되므로 스팸메일과 같은 문제가 발생할 수도 있으므로

주의하시기 바랍니다.

DnMAILER-DAEMON

Sendmail 서버가 에러메시지를 보내야 할 경우 보낸 사람의 이름을 결정합니다. 잘못된

메일이 되돌아 온 경우 FROM : Mail Delivery Subsystem

&ltMAILER-DAEMON>과 같은 메시지를 보신적이 있을 것입니다.

Kaccess hash /etc/mail/access

Relay를 허용하거나 거부할 특정 IP와 도메인을 설정하는 파일입니다.

relay-domains보다 사용이 편리하므로 많이 사용됩니다.

O ForwardPath=$z/.forward.$w:$z/.forward

여러 개의 메일을 가진 경우, 특정 메일계정으로 들어온 메일을 다른 메일로 곧바로 보내주는

포워딩파일을 설정합니다. 사용자의 홈 디렉토리에 .forward라는 파일을 만들고 포워딩시킬

메일 주소를 입력하면 됩니다.

# O MaxMessageSize=1000000

메일의 최대 크기를 결정합니다. 주석을 제거하면 설정한 크기(Byte단위)보다 큰 메일은

전송할 수 없게 됩니다. 지금 써준 1000000은 1메가로 제한한 메일 용량입니다.

O QueueDirectory=/var/spool/mqueue

큐 디렉토리를 설정합니다.

O Timeout.queuereturn=5d

메일을 보내려는 호스트에 문제가 생기면 메일은 큐 디렉토리에 저장됩니다. Sendmail

서버는 쌓인 메일을 상대방 호스트에 보내기 위해 주기적으로 접속을 시도하며, 일정한

기간이 지나면 메일을 다시 발송한 사람에게 되돌려 보냅니다. Sendmail이 메일을 보내려고

시도하는 기간을 설정하는 옵션으로 5d는 5일을 의미합니다.

O Timeout.queuewarn=4h

큐 디렉토리에 쌓인 메일이 지정한 시간안에 전송되지 못할 경우 메일을 보낸 사람에게 경고

메일을 보냅니다. 기본값은 4h로 4시간안에 전송되지 못하면 보낸 사람에게 경고의 메일을

보냅니다.

Mlocal,

P=/usr/bin/procmail, F=lsDFMAw5u:/|@qSPfhn9,

S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,

T=DNS/RFC822/X-Unix,

A=procmail -Y -a $h -d $u

사용자계정에 대문자가 있는 경우에도 메일을 받을 수 있도록 설정하려면 Mlocal로

시작하는 부분을 찾아 F= 부분에 ‘u’를 추가합니다.

/etc/mail/access

스팸메일을 방지하기 위해 Relay를 허용할 호스트의 IP와 도메인을 설정하는 매우 중요한

파일입니다. Relay에 대한 자세한 내용은 [Relay에 대하여]를 참고하시기 바랍니다.

먼저 vi에디터나 emacs를 사용해 /etc/mail/access파일을 열고 릴레이를 허용하거나

거부할 IP 주소를 아래와 같이 입력합니다.

[root@zzang911 /root]# cat /etc/mail/access

# Check the /usr/share/doc/sendmail-8.11.2/README.cf file for a description

# of the format of this file. (search for access_db in that file)

# The /usr/share/doc/sendmail-8.11.2/README.cf is part of the sendmail-doc

# package.

#

# by default we allow relaying from localhost…

localhost.localdomain     RELAY

localhost     RELAY

127.0.0.1     RELAY

xxx.xxx.xxx.xxx                 RELAY

spam.com                        REJECT

위는 localhost 나 xxx.xxx.xxx.xxx 의 특정 IP 에서는 릴레이를 허용하나 spam.com

에서는 오는 모든 메일은 릴레이를 거부한다는 뜻이다.

이와 같이 허용이나 거부 대역을 지정후 access.db 파일을 갱신시켜주면 바로 적용이

된다.

[root@zzang911 /root]# makemap hash /etc/mail/access < /etc/mail/access

[Relay에 대하여]

그럼 간단하게 Relay에 대한 개념을 알아보겠습니다.

예를 들어 A라는 사람은 IP주소가 203.243.88.21이라는 컴퓨터에서

aroma at

mail.linuxul.com이라는 메일을 사용한다고 가정하고, B라는 사람은 IP주소가

168.211.106.34인 컴퓨터에서 nea at

yahoo.co.kr이라는 메일을 사용한다고 가정합니다.

B가 A에게 메일을 보내면 메일은 203.249.88.21로 가는 것이 아니라 mail.linuxul.com서버의

/var/mail 디렉토리 밑에 aroma라는 파일로 복사가 됩니다. 그러면 A는 MUA 프로그램을

사용해 메일을 확인할 수 있지요. 그런데 여기서 중대한 문제점이 생겨나게 됩니다. 아무나

주소를

맞게 보내면 그냥 /var/mail에 쌓이게 되는 것이죠. 그래서 하드디스크가 메일로 꽉

차버리거나,

네트워크 전송량의 증가로 네트워크가 마비되는 경우가 생겨나게 됩니다. 이 문제를 막기

위해서

고안된 방법이 바로 Relay라는 방법입니다.

Relay에는 두 가지 방식이 있습니다.

o 첫 번째는 메일을 보내는[송신] 컴퓨터의 제한

o 두 번째는 메일을 받는[수신] 컴퓨터의 제한

Relay로 주로 쓰이는 방법은 메일을 확인하는 컴퓨터는 제한하지 않고 메일을 보내는 것을

제한하는 것입니다. 즉, 위의 그림과 같이 /etc/mail/access파일에 203.243.88의

C클래스를 허용 가능하게 해주면 203.243.88.21처럼 허용 그룹에 들어 있는 컴퓨터에서는

메일을 보내고/받을 수가 있지만, 그룹에 들지 않은 168.211.106.34라는 컴퓨터에서는

메일을 확인할 수만 있습니다. 또한 spam.com이라는 도메인에 속한 호스트에서 오는

메일은 보내기와 받기가 모두 거부됩니다.

/etc/mail/relay-domains을 사용해도 됩니다. 하지만, 차이점은 relay-domains을

사용하면sendmail데몬을 다시 실행시켜 주어야 하지만 /etc/mail/access파일을 사용하면

다시 실행할 필요 없이 makemap hash /etc/mail/access < /etc/mail/access라고

실행만 시켜주면 됩니다.

/etc/mail/local-host-names

메일을 수신할 호스트의 이름을 입력하는 파일로, Sendmail 8.9.x 버전이하에서 사용되었던

sendmail.cw 파일의 명칭이 Sendmail 8.10.x 버전부터는 local-host-names로

변경되었습니다. Sendmail 서버는 이곳에 적힌 호스트의 이름으로 메일이 들어오면 더 이상

다른 서버로 메일을 보내지 않고 자신의 메일박스에 저장합니다. 아래와 같이 메일서버의

호스트이름을 입력하거나 여러 개의 가상호스트를 사용한다면 모두 입력해야 합니다.

etc/aliases

특정 사용자에게 온 메일을 다른 사람에게 보내주거나, 메일링리스트를 작성해야 하는 경우에

사용되는 파일로 보안에 주의하여 사용해야 합니다. aliases 파일을 열어보면 시스템 계정들이

아래와 같이 root로 alias되어 있습니다. 또한 특정 사용자를 다른 사용자로 alias 시킬 수도

있습니다.    

메일링 리스트 작성하기

——————————————————————————————

메일링리스트란 동일한 메일을 여러 사람에게 보내야 할 경우 사용되며, 그룹을 지정해

구성원들의

목록을 써주거나 특정 파일을 지정하는 방법 등으로 사용됩니다. 예를 들어 aroma, bulpeng,

bibi와 같은 사용자들을 test1라는 그룹으로 지정해 보겠습니다.

vi편집기로 /etc/aliases 파일을 열고 아래의 라인을 추가한 후 저장합니다. 앞으로 test1에게

메일을 보내면 지정된 모든 사용자들에게 메일이 도착하게 됩니다.

test1: aroma, bulpeng, bibi

다른 하나는 특정파일을 지정해 주는 방법으로 include 지시자를 사용한 후에 파일의 경로와

파일이름을 입력합니다.

test2: :include:/etc/maillist/test2

# cat /etc/maillist/test2

aroma  

bulpeng

bibi

파일을 수정한 후에는 newaliases 명령으로 aliases.db를 만들어 줍니다.

# newaliases

/etc/aliases: 40 aliases, longest 28 bytes, 434 bytes total

이제 test1 또는 test2로 메일을 보내면 지정된 사용자들(aroma, bulpeng, bibi)이 모두

메일을

받아볼 수 있습니다.

sendmail 기본 보안

—————————————————————————————-

설정파일 속성 변경하기

# chattr +i /etc/mail/sendmail.cf or /etc/sendmail.cf

# chattr +i /etc/mail/local-host-nameds

# chattr +i /etc/mail/aliases or /etc/aliases

# chattr +i /etc/mail/access

Sendmail deamon을 실행하는 쉘을 바꾸어주기

Sendmail의 보안을 위해서는 보통 프로그램의 /bin/sh을 smrsh program으로 바꾸어 주어야

합니다. /bin/sh로 실행이 되었을 경우에 해킹의 우려가 있으므로, 이를 제한하기 위해서

Sendmail 프로그램의 실행을 제한할 필요가 있기 때문입니다.

하지만, 레드햇의 RPM으로 설치했을 경우에는 Default로 설정이 되어 있습니다.

/etc/mail/sendmail.cf 또는 /etc/sendmail.cf 파일에서

Mprog,

P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL,

R=EnvToL/H drToL, D=$z:/,

T=X-Unix/X-Unix/X-Unix,

A=sh -c $u

의 굵게 쓴 파일을 아래와 같이 바꾸어주고

Mprog,

P=/usr/sbin/smrsh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL,

R=EnvToL/H drToL, D=$z:/,

T=X-Unix/X-Unix/X-Unix,

A=smrsh -c $u

sendmail.cf 파일을 저장하고 아래와 같이 sendmail deamon을 재시작합니다.

# /etc/rc.d/init.d/sendmail restart

인증되지 않은 사용자의 Sendmail Deamon사용을 제한하기

Sendmail에는 Anti-Spam Feature를 포함하고 있습니다. 이 기능을 제대로 사용하기

위해서는 /etc/mail/sendmail.cf 또는 /etc/sendmail.cf파일에서 옵션을 바꾸어 주어야

합니다.

# privacy flags

O PrivacyOptions=authwarnings, goaway

Sendmail에서 goaway 옵션을 사용할 경우에 SMTP의 EXPN, VRFY명령어를 제한하게

됩니다. 이로 인해서 VERB명령어도 더불어 제한하게 됩니다. 처음 SMTP에 접하시는 분들은

이 명령어에 대해서 생소할 수 있으므로 약간의 설명을 덧붙이겠습니다. STMP에 접속하여서

MAIL을 전달하기 위해서는 여러 가지 명령어를 사용하게 되어 있습니다.

아래와 같이 접속 후 HELP 명령어를 타이핑하면 HELO, EHLO, MAIL, RCPT, DATA,

RSET, NOOP, QUIT, HELP, VRFY, EXPN, VERB ETRN, DSN, AUTH,

STARTTLS등의 사용 가능한 명령어를 보실 수 있습니다.

자세한 사용법과 내용은 HELP &ltCommand>하시면 알 수 있습니다.

HELP AUTH <- 입력

214-2.0.0 AUTH mechanism [initial-response]

214-2.0.0     Start authentication.

214 2.0.0 End of HELP info

EXPN aroma <- 입력 (Mail list의 관계된 메일 계정을 보여줄 수 있는 명령어입니다.)

250 2.1.5 &ltsweetness

at linux.co.kr>

VRFY aroma <- 입력(Alias에 관계된 메일 계정을 보여줄 수 있는 명령어입니다.)

250 2.1.5 &ltaroma at

mail.linuxul.com>

보안설정 후에는 아래와 같은 메시지가 나타납니다.

EXPN aroma <- 입력

502 5.7.0 Sorry, we do not allow this operation

mailq command의 제한하기

/usr/bin/mailq 명령어를 제한하기 위해서는 /etc/mail/sendmail.cf or

/etc/sendmail.cf파일에서

옵션을 바꾸어 주어야 합니다.

# privacy flags

O PrivacyOptions=authwarnings, goaway, restrictmailq

또한, queue디렉토리를 root권한으로 막아주고 재시작합니다.

#chmod 0700 /var/spool/mqueue

#/etc/rc.d/init.d/sendmail restart

mailq명령어를 실행시키면 아래와 같은 메시지가 나타납니다.

aroma$ mailq

You are not permited to see the queue

Queue 프로세스를 root권한으로 제한하기

Queue프로세스를 root권한으로 제한하기 위해서는 /etc/mail/sendmail.cf 또는

/etc/sendmail.cf파일에서 아래와 같이 옵션을 바꾸어 줍니다.

# privacy flags

O PrivacyOptions=authwarnings, goaway, restrictmailq,

restrictqrun

파일을 저장후 재시작합니다.

#/etc/rc.d/init.d/sendmail restart

SMTP Greeting Message를 수정하기

Sendmail의 Version 정보라든지 여러 가지 이유로 Connected중에 보여주는 아래와 같은

메시지들을 바꾸어주므로, 불필요한 정보를 숨길 수 있습니다.

[root@mail /root]# telnet mail.linuxul.com 25

Trying 211.106.100.89…

Connected to mail.linuxul.com.

Escape character is ‘^]’.

220 mail.linuxul.com ESMTP Sendmail 8.11.0/8.11.0; Wed, 21 Feb 2001

22:50:51 +0900

/etc/mail/sendmail.cf 또는 /etc/sendmail.cf파일에서 옵션을 바꾸어 주어야 합니다.

# SMTP initial login message (old $e macro)

O SmtpGreetingMessage=$j Sendmail $v/$Z; $b

를 아래와 같이 수정합니다.

# SMTP initial login message (old $e macro)

O SmtpGreetingMessage=$j

파일을 저장후 Sendmail을 재시작합니다.

#/etc/rc.d/init.d/sendmail restart

수정후에는 아래와 같은 메시지가 출력됩니다.

# telnet mail.linuxul.com 25

220 localhost.localdomain ESMTP

Sendmail 모니터링

[Sendmail의 프로세스 상태보기]

# ps aux|grep sendmail

root 21094 0.0 0.3 3244 1504 ? S 08:43 0:00 sendmail: accepti

[Sendmail의 mail 상태를 모니터링하기]

[root@ns /root]# mailstats

Statistics from Wed Jan 23 04:02:04 1980

M   msgsfr  bytes_from   msgsto    bytes_to  msgsrej msgsdis  Mailer

5   361145   14357435K    89312    3671483K    16983 0  esmtp

8   236772   11571389K   661786   20775066K     8687 0  local

=============================================================

T   597917   25928824K   751098   24446549K    25670 0

[메일큐값 모니터링 하기]

[root@ns /root]# mailq

                Mail Queue (5 requests)

–Q-ID– –Size– —–Q-Time—– ————Sender/Recipient————

LAA21970     2375 Sat Jul 21 11:40 MAILER-DAEMON

      8BITMIME   (Deferred: Connection refused by web.kdlp.org.)

                                   <www at web.kdlp.org>

QAA29807    11059 Fri Jul 20 16:58 MAILER-DAEMON

      8BITMIME   (Deferred: Connection refused by tmail.simmani.com.)

                                   <IDCGUYS_20010720164215677-

at tmail.simmani.com

KAA01947     7550 Fri Jul 20 10:29 MAILER-DAEMON

      8BITMIME   (Deferred: Connection refused by web.kdlp.org.)

                                   <www at web.kdlp.org>

OAA05202     3153 Wed Jul 18 14:43 MAILER-DAEMON

      8BITMIME   (Deferred: Connection refused by web.kdlp.org.)

                                   <www at web.kdlp.org>

PAA19364* (no control file)

praliases명령은 현재 메일 시스템의 Aliases상태를 보여줍니다.

# praliases

Sendmail Reference

Sendmail FAQ – http://www.sendmail.org/faq

Compiling Sendmail – http://www.sendmail.org/compiling.html

Anti-Spam Configuration Control – http://www.sendmail.org/m4/anti-spam.html

장우현님의 Sendmail 이야기 –

http://kldp.org/KoreanDoc/html/Sendmail-KLDP/Sendmail-KLDP.html

이상로님의 On Sendmail – http://trade.chonbuk.ac.kr/~leesl/mail/

김정균님의 Sendmail – http://www.oops.org/?t=lecture&s=sendmail

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.