본문 바로가기

Linux Server 구축/3-1. Mail Server

Mail Server - aliases & virtusertable & .forward & etc


Mail Server 간단 명령어

-------------------------------------------------------------------

1. /etc/aliases 적용

[root@server3 ~]# vi /etc/aliases
96 #root:          marc
97 music:          movie  - music 사용자에게 오는 메일을 movie 사용자에게 보낸다.

[root@server3 ~]# newaliases
/etc/aliases: 77 aliases, longest 10 bytes, 775 bytes total
[root@server3 ~]# service sendmail restart
sm-client을 종료 중:                                       [  OK  ]
sendmail를 종료 중:                                        [  OK  ]
sendmail (을)를 시작 중:                                   [  OK  ]
sm-client를 시작 중:                                       [  OK  ]

-------------------------------------------------------------------

1-1. 메일 보내기

[root@server3 ~]# mail music@server3.co.kr
Subject: test

music mail

hi~~
.
Cc:
[root@server3 mqueue]# mailq
/var/spool/mqueue is empty
                Total requests: 0
[root@server3 mqueue]#

-------------------------------------------------------------------

1-2. 메일 확인

- music 사용자
[root@server3 ~]# su - music
[music@server3 ~]$ mail
No mail for music
[music@server3 ~]$


- movie 사용자
[root@server3 ~]# su - movie
[movie@server3 ~]$ mail
Mail version 8.1 6/6/93.  Type ? for help.
"/var/spool/mail/movie": 2 messages 1 new
    1 MAILER-DAEMON@server  Fri Dec 19 16:35  13/546   "DON'T DELETE THIS MES"
>N  2 root@server3.co.kr    Mon Dec 22 09:29  18/590   "test"
& 2
Message 2:
From root@server3.co.kr  Mon Dec 22 09:29:42 2008
Date: Mon, 22 Dec 2008 09:29:41 +0900
From: root <root@server3.co.kr>
To: music@server3.co.kr
Subject: test

music mail

hi~~

& q
Saved 1 message in mbox
Held 1 message in /var/spool/mail/movie
[movie@server3 ~]$

-------------------------------------------------------------------

2. /etc/mail/virtusertable

[root@server3 ~]# vi /etc/mail/virtusertable
webmaster@server3.co.kr         guest@server3.co.kr

[root@server3 ~]# makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable  
or [root@server3 ~]# makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable

[root@server3 ~]# mail webmaster@server3.co.kr
Subject: test
webmaster mail
.
Cc:
[root@server3 mqueue]# mailq
/var/spool/mqueue is empty
                Total requests: 0
[root@server3 mqueue]#

-------------------------------------------------------------------

2-1. 메일 확인

[root@server3 ~]# su - guest
[guest@server3 ~]$ mail
Mail version 8.1 6/6/93.  Type ? for help.
"/var/spool/mail/guest": 1 message 1 new
>N  1 root@server3.co.kr    Mon Dec 22 09:34  16/600   "test"
& 1
Message 1:
From root@server3.co.kr  Mon Dec 22 09:34:53 2008
Date: Mon, 22 Dec 2008 09:34:53 +0900
From: root <root@server3.co.kr>
To: webmaster@server3.co.kr
Subject: test

webmaster mail

& q
Saved 1 message in mbox
[root@server3 mqueue]#

-------------------------------------------------------------------

3. /etc/mail/sendmail.cf의 옵션 적용 - # Forward file search path

[root@server3 guest]# vi /etc/mail/sendmail.cf

233 # Forward file search path
234 #O ForwardPath=$z/.forward.$w:$z/.forward
235 O ForwardPath=/home/guest/.forward.$w:$z/.forward

[root@server3 guest]# vi .forward
movie

[root@server3 guest]# ls -la
-rw-r--r-- 1 root  root     6 12월 22 09:49 .forward

[root@server3 guest]# chown guest.guest .forward
[root@server3 guest]# chmod 644 .forward  - .forward의 퍼미션을 변경해 준다. 자세한 내용은 아래 "참고"를 참고한다.
[root@server3 guest]# ls -la
-rw-r--r-- 1 guest guest    6 12월 22 09:49 .forward

[root@server3 guest]# service sendmail restart
sm-client을 종료 중:                                       [  OK  ]
sendmail를 종료 중:                                        [  OK  ]
sendmail (을)를 시작 중:                                   [  OK  ]
sm-client를 시작 중:                                       [  OK  ]

[root@server3 guest]# mail guest@server3.co.kr

Subject: test guest
guest -> movie

Hi~~
.
Cc:
[root@server3 mqueue]# mailq
/var/spool/mqueue is empty
                Total requests: 0
[root@server3 mqueue]#

-------------------------------------------------------------------

- 참고 : .forward 파일의 퍼미션 적용 전
.forward파일 생성시 중요한 사항으로 보안성 강화를 위하여 .forward파일의 퍼미션과  .froward파일을 포함하는 디렉토리(사용자 계정 디렉토리)에 group의 퍼미션에 쓰기 권한이 없어야 sendmail 데몬이 .forward파일을 읽어서 포워딩 기능을 정상적으로 진행한다.
CentOS의 기본적인 유저생성시 생성되는 디렉토리 퍼미션은 700 이지만, 기본 파일 생성 퍼미션이 664로 생성되어 그룹 퍼미션에 쓰기 권한이 있기 때문에 .forward파일만 생성하였다고 해서 포워딩이 정상적으로 진행되지 않는다. 이럴때는 644로 .froward 파일의 퍼미션을 변경해 준다.

터미널 창 1
[guest@server3 ~]$ chmod 664 .forward
[guest@server3 ~]$ ls -la
-rw-rw-r-- 1 guest guest    6 12월 22 09:56 .forward

[root@server3 ~]# mail guest@server3.co.kr
Subject: test
guest -> movie
.
Cc:
[root@server3 ~]# mailq
/var/spool/mqueue is empty
                Total requests: 0
[root@server3 ~]#


터미널 창 2
[root@server3 mqueue]# tail -f /var/log/maillog

Dec 22 10:20:54 server3 sendmail[7689]: mBM1KsY6007688: forward /home/guest/.forward: Group writable file
- /home/guest/.forward : group writable file라 해서 그룹 퍼미션과 관련된 설정때문에 메일이 제대로 전달되지 않는다.


메일 확인
[guest@server3 ~]$ mail  - movie로 포워딩 되지 않고 guest 사용자에게 메일이 전달되었다.
Mail version 8.1 6/6/93.  Type ? for help.
"/var/spool/mail/guest": 1 message 1 new
>N  1 root@server3.co.kr    Mon Dec 22 10:20  16/588   "test"
& 1
Message 1:
From root@server3.co.kr  Mon Dec 22 10:20:54 2008
Date: Mon, 22 Dec 2008 10:20:54 +0900
From: root <root@server3.co.kr>
To: guest@server3.co.kr
Subject: test

guest -> movie

& q
Saved 1 message in mbox
[guest@server3 ~]$

-------------------------------------------------------------------

3-1. 메일 확인

- guest 사용자
[guest@server3 ~]$ mail
No mail for guest
[guest@server3 ~]$

- movie 사용자
[movie@server3 ~]$ mail
Mail version 8.1 6/6/93.  Type ? for help.
"/var/spool/mail/movie": 1 message 1 new
>N  1 root@server3.co.kr    Mon Dec 22 09:54  18/600   "test guest"
& 1
Message 1:
From root@server3.co.kr  Mon Dec 22 09:54:10 2008
Date: Mon, 22 Dec 2008 09:54:10 +0900
From: root <root@server3.co.kr>
To: guest@server3.co.kr
Subject: test guest

guest -> movie

Hi~~

& q
Saved 1 message in mbox
[movie@server3 ~]$

-------------------------------------------------------------------

4. telnet으로 메일 보내기

[root@server3 ~]# telnet localhost 25   - telnet 을 이용해 25번 포트로 접속한다.
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 server3.co.kr ESMTP Sendmail 8.13.8/8.13.8; Mon, 22 Dec 2008 10:25:49 +0900
HELP  - telnet으로 사용가능한 명령어 목록을 보여준다. 각 명령어들의 도움말은 HELP <Topic> 라고 입력한다.
214-2.0.0 This is sendmail
214-2.0.0 Topics:
214-2.0.0       HELO    EHLO    MAIL    RCPT    DATA
214-2.0.0       RSET    NOOP    QUIT    HELP    VRFY
214-2.0.0       EXPN    VERB    ETRN    DSN     AUTH
214-2.0.0       STARTTLS
214-2.0.0 For more info use "HELP <topic>".
214-2.0.0 To report bugs in the implementation see
214-2.0.0       http://www.sendmail.org/email-addresses.html
214-2.0.0 For local information send email to Postmaster at your site.
214 2.0.0 End of HELP info
MAIL FROM : guest@server3.co.kr        - 메일 발송자 입력        
250 2.1.0 guest@server3.co.kr... Sender ok
RCPT TO : movie@server3.co.kr            - 메일 수신자 입력
250 2.1.5 movie@server3.co.kr... Recipient ok
DATA                              - 메세지 작성
354 Enter mail, end with "." on a line by itself
Hi guest
How are you?
.                                       - 메세지 종료
250 2.0.0 mBM1PnBc007716 Message accepted for delivery
QUIT                                 - 나가기
221 2.0.0 server3.co.kr closing connection
Connection closed by foreign host.
[root@server3 ~]#

-------------------------------------------------------------------

4-1. 메일 확인

movie 사용자
[movie@server3 ~]$ mail
Mail version 8.1 6/6/93.  Type ? for help.
"/var/spool/mail/movie": 1 message 1 new
>N  1 guest@server3.co.kr   Mon Dec 22 10:28  13/481 
& 1
Message 1:
From guest@server3.co.kr  Mon Dec 22 10:28:55 2008
Date: Mon, 22 Dec 2008 10:25:49 +0900
From: guest@server3.co.kr
X-Authentication-Warning: server3.co.kr: server3 [127.0.0.1] didn't use HELO protocol

Hi guest
How are you?

& q
Saved 1 message in mbox
[movie@server3 ~]$

-------------------------------------------------------------------

5. mutt

- mail 명령어와 비슷한 메일을 확인하는 프로그램이다.

[root@server3 ~]# mutt





-------------------------------------------------------------------

6. 센드메일의 smtp 메일 발송 인증 제한하기

- CentOS에서는 사용자의 smtp 인증방식에 있어서 saslauthd를 사용한다.
스팸메일을 방지하고 서버관리자가 정식으로 인정한 사용자들만 메일을 보낼 수 있게 해야만 한다.
그래서
메일 발송을 위한 인증을 사용하기 위하여 CentOS 에서는 접속-기반 프로토콜에 대한 인증지원을 제공하는 cyrus-sasl 패키지를 이용하고 있다.
이 패키지의 경우 연계된 패키지가 많기 때문에 대부분 CentOS 인스톨시 자동으로 설치된다.


[root@server3 ~]# rpm -qa | grep cyrus-sasl
cyrus-sasl-plain-2.1.22-4
cyrus-sasl-2.1.22-4
cyrus-sasl-devel-2.1.22-4
cyrus-sasl-lib-2.1.22-4
[root@server3 ~]# rpm -qi cyrus-sasl
Name        : cyrus-sasl                   Relocations: (not relocatable)
Version     : 2.1.22                            Vendor: CentOS
Release     : 4                             Build Date:
Install Date:       Build Host: builder1.centos.org
Group       : System Environment/Libraries   Source RPM: cyrus-sasl-2.1.22-4.src.rpm
Size        : 4835816                          License: Freely Distributable
Signature   : DSA/SHA1, 2007년 04월 04일 (수) 오전 09시 20분 45초, Key ID a8a447dce8562897
URL         : http://asg.web.cmu.edu/sasl/sasl-library.html
Summary     : Cyrus SASL 라이브러리.
Description :
cyrus-sasl 패키지는 SASL의 Cyrus 구현을 포함합니다. SASL는
Simple Authentication and Security Layer의 줄임말로서 접속-기반 프로토콜에
인증 지원을 제공하는 방식입니다.
[root@server3 ~]#

'Linux Server 구축 > 3-1. Mail Server' 카테고리의 다른 글

Webmail - Squirrelmail  (0) 2008.12.19
dovecot  (0) 2008.12.19
사설 IP 내에서 메일 전송  (0) 2008.12.19
Mail Server  (0) 2008.12.19