본문 바로가기

공부/리눅스

메일서비스(sendmail)

반응형
sendmail 주설정 파일

sendmail.cf : sendmail 설정파일
sendmail.mc : sendmail.cf 를 생성하기위한 m4 매크로파일

access : sendmail server access 제한 설정

access : sendmail server access 제한 설정
[root@centos1 mail]# cat access
# by default we allow relaying from localhost...
Connect:localhost.localdomain          RELAY
Connect:localhost                      RELAY
Connect:127.0.0.1                      RELAY

tag:ip또는 도메인     policy

tag
Connect: 주소 또는 도메인
From : 송신자 주소
To : 수신자 주소

ex)
Connect:localhost.localdomain          RELAY
Connect:192.168.0.1                    RELAY
Connect:192.168.10            RELAY
Connect:localhost                      RELAY
From: user1@myunix.co.kr OK
From: spam.com REJECT
To:root@ OK
TO:minki.co.kr                          REJECT

OK : 메일수신허용 RELAY는 불가
RELAY : 수신 및  RELAY 허용
REJECT : 수신거부



centos 5.x 버전에 설치되어 있는 sendmail 서버버전은 8.13.x 이며 과거버전에 비해서
설정문법이 조금 바뀌었다.

redhat9 버전에 설치되어 있는 sendmail 8.12.x 버전의 경우는 설정이 아래와 같다.
[root@mylinux root]# cd /etc/mail
[root@mylinux mail]# cat access
# by default we allow relaying from localhost...
localhost.localdomain          RELAY
localhost                      RELAY
127.0.0.1                      RELAY

[root@mylinux mail]#

수정하였을경우
# makemap hash /etc/mail/access.db < /etc/mail/access 로 갱신

local-host-names : sendmail 서버가 사용하는 메일서버도메인주소
virtusertable : 다른 이메일 도메인 주소를 갖는 같은 계정을 처리하는데
사용된다.
가상의 메일계정 시스템계정

수정하였을 경우
# makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable
 로 db 파일을 갱신해야 한다.


/etc/aliases : 메일 계정에 대한 alias 파일
- 이파일을 이용하여 메일링리스트를 구현할 수 있다.
대표계정 :  수신계정, 수신계정, ...

수정하였을경우
# newaliases 로 갱신한다.

[root@centos1 /etc/sysconfig]# cat sendmail
DAEMON=yes
QUEUE=1h        => 메일큐에 남아있는 메일을 한시간 단위로 처리한다.

*. sendmail 설정파일

Cwlocalhost
메일서버호스트명을 localhost 로 지정.
ex)
Cwmyunix.co.kr
Cwlee.pe.kr
- 여러개의 도메인을 사용하는것도 가능하다.

Fw/etc/mail/local-host-names
Cw 명령어로 메일호스트를 등록하는대신 호스트명을 Fw 뒤에 적혀있는
파일로 설정.

Dj$w.Foo.COM
- sendmail 호스트명을 지정

FR-o /etc/mail/relay-domains
- 릴레이를 허용할 호스트명 설정
- 이부분을 주석처리하게 되면 모든 주소에 대해 relay 허용.

Kvirtuser hash -o /etc/mail/virtusertable.db
- virtusertable 설정

Kaccess hash -T<TMPF> -o /etc/mail/access.db
- access 설정

O AliasFile=/etc/aliases
- aliases 설정

O MaxMessageSize=0
- 최대 메일 크기 결정(첨부파일포함이며 byte 단위로 설정)

O DamonPortOptions=Port=smtp,Addr=127.0.0.1,Name=MTA
- relay를 제한하기 위해 로컬호스트에서 전송한 메일만 수신

local 호스트 이외의 곳에서도 relay 허용하려면 아래처럼 변경.
O DamonPortOptions=Port=smtp,Addr=0.0.0.0,Name=MTA

O QueueDirectory=/var/spool/mqueue

O Timeout.queuereturn=5d
여기에 설정된 시간동안 큐에 남아 있는 메일을 처리하지 못하게 되면
발송자에게 메일을 리턴한다.

O Timeout.queuewarn=4h
어떤 문제로 목적지 호스트로 지정한 시간동안 메일을 발송할 수 없는경우
발송자에게 경고메시지 보낸다.


POP3 및 IMAP 설정

dovecot 패키지가 설치되어 있어야 한다.
[root@centos1 /etc/sysconfig]# rpm -q dovecot
dovecot-1.0.7-7.el5
[root@centos1 /etc/sysconfig]#
설치되어 있지 않으면 yum 으로 설치할 수 있다.
ex) yum install dovecot

메일서비스 테스트

[root@centos1 mail]# mail user1@lee.pe.kr
Subject: hello                                             
test again
hahahah
lee.pe.kr
.
Cc: [root@centos1 mail]#
[root@centos1 mail]#
[root@centos1 mail]# mail user1@lee.pe.kr
Subject: 안녕하세요?
반갑습니다.
잘 지내시나요?
시간나면 한번 만납시다.
이만...
.
Cc:
[root@centos1 mail]#

[root@centos1 mail]# cat /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
lee.pe.kr
minki.co.kr
[root@centos1 mail]#

읽지 않은 메일은 이곳에 수신 계정명으로 저장되어 있다.
[root@centos1 /var/spool/mail]# ls
cuser1  mysql  p2  root  samuser1  samuser3  suser1  sysuser1  sysuser3  sysuser5  u10  u12  u2    user10
lee    p1    p3  rpc  samuser2  smuser1  suser2  sysuser2  sysuser4  u1        u11  u13  user1  user2
[root@centos1 /var/spool/mail]#
여기 있는 메일은 보안상 수신자만 볼수 있게 퍼미션 설정이 되어 있다. 편집기등으로 볼수 있다.

user1 계정이 로그인 하게 되면
You have new mail in /var/spool/mail/user1
[user1@centos1 ~]$
새로운 메일이 있다는 메시지를 출력해준다.

[user1@centos1 ~]$ mail
Mail version 8.1 6/6/93.  Type ? for help.
"/var/spool/mail/user1": 1 message 1 unread
>U  1 root@localhost.local  Sun Jul  4 23:54  20/710  "hello"
&

& 1
Message 1:
From root@localhost.localdomain  Sun Jul  4 23:54:46 2010
Date: Sun, 4 Jul 2010 23:54:46 +0900
From: root <root@localhost.localdomain>
To: user1@lee.pe.kr
Subject:hello

반갑습니다.
잘 지내시나요?
한번 만납시다.
이만...

& help <= 이곳에서 사용할수 있는 명령어를 보여준다.

& quit
Saved 1 message in mbox <= 읽은 메일은 $HOME/mbox 파일로 저장된다.
[user1@centos1 ~]$

메일이 전송되지 못한경우 clientmqueue 나 mqueue 디렉토리에 남으며
한개의 메일이 헤더와 본문으로 두개의 파일로 나뉘어 저장된다.
*. 목적지주소를 알 수없는 경우는 송신자한테 바로 돌아온다.

[root@centos1 spool]# cd mqueue/
[root@centos1 mqueue]# ls
dfo64EiQ5G023647  qfo64EiQ5G023647

반응형