Presentation is loading. Please wait.

Presentation is loading. Please wait.

메일 서버(sendmail).

Similar presentations


Presentation on theme: "메일 서버(sendmail)."— Presentation transcript:

1 메일 서버(sendmail)

2 목차 Sendmail이란 메일 송수신 과정 Sendmail,Pop3와 imap 데몬 설치 Sendmail 설정

3 Sendmail이란? 인터넷 전자 메일의 표준 규약인 SMTP 프로토콜을 통해서 메일 서비스 기능을 수행
전형적인 MTA 데몬으로 1970년대 후반 버클리 유닉스로 유명한 Eric Allman에 의해서 만들어짐

4 Sendmail(용어) SMTP (Simple mail Transfer Protocol) 메일을 보낼때 사용되는 프로토콜
POP3(Post Office Protocal) 메일 서버에 도착한 메일을 전송받을때 사용하는 프로토콜 IMAP(Internet Mail Access Protocol) MTA(Mail Transmit Agent) 메시지를 전달받아 이를 외부로 전달해 주는 프로그램 MUA(Mail Transmit Agent) 이용자가 메일을 보내기 위하여 사용하는 프로그램

5 메일 송수신 과정

6 메일 송수신 과정 사용자가 E-mail 프로그램(MUA)로 작성 MTA(Sendmail)에의해 외부 메일 서버로 메일 전달
메일을 받는 대상 메일서버에서는 MTA에 의해 전송받음 /var/spool/mail 디렉토리라는 우편함에 계정 이름으로 저장

7 POP3 Post Office Protocol : 서버에 설치하는 데몬
사용자가 고정적인 위치에서 메일을 받는 경우에 유리

8 IMAP 데몬 IMAP 데몬 역시 메일 서버에 설치하는 서버 데몬
Internet Message Access Protocol : 143번포트 사용, IMPA3는 :220번 메일을 해당 사용자에게 보내는 역할은 pop3와 같지만 메일을 보내는 방법 차이 IMAP로 접속하여 메일을 읽으면 메일 서버에는 메일이 계속 존재(메일 헤더만 보고 읽을 수 있으며, 읽은 메일은 읽지 않은 메일과 구분되어 표시) 장점 : 메일을 읽은 위치가 불규칙한 사용자에게 편리 단점 : 메일 서버에 항상 메일이 존재하여 자원낭비 구현이 힘듬

9 POP3와 IMAP 비교 공통점 메일을 클라이언트에게 보내는 역할 서버에 설치하는 서버 데몬
Off-line을 지원하고 어떠한 플랫폼에서도 접근이 가능,다양한 운영체제에서 메일을 받아볼수있다 인터넷에 연결된공이면 어디서든 접근이 가능 SMTP와 별개의 개념으로 중계역활은 하지않음 (메일을 클라이언트에게 보내는 기능만함)

10 POP3와 IMAP 비교 차이점 메일서버에서의 존재 유무 메일 확인의 위치에 따른 장단점 구현의 차이 클라이언트 프로그램
포트번호

11 Sendmail 설치 Sendmail, POP3, IMAP 데몬 설치 Sendmail
ftp://ftp.sendmail.org/pub/sendmail/RELEASE_NOTES 확인 :Rpm –qa | grep sendmail 설치 : rpm –Uvh sendmail 설치된 정보 확인 Rpm –qi sendmail IMAP,POP3도 위와 같은 과정

12 Sendmail 설치 소스로 풀기(IMAP) ftp://ftp.cac.washington.edu/imap
Imap-xxx.tar.Z 압축 풀기 Uncompress imap-xxx.tar.Z Tar xvf imap-xxx.tar 컴파일하기 cd 폴더 Make slx 컴파일 후 imapd 확인하기 컴파일이 완료되면 imapd 디렉토리에 imapd 생성 ls ipopd 실행 파일 복사하기 Cp imapd /usr/sbin 접속하기 : telnet localhost 110(pop3)

13 Sendmail 설정파일 Sendmail 설정과 관련 파일 정보 Sendmail Sendmail 데몬 실행파일
/usr/sbin Sendmail.cf Sendmail 주설정 파일 /etc Sendmail.cw 메일처리할 도메인 기록 파일 Sendmail.mc Sendmail 매크로 설정파일 Access Sendmail 중계 기능 설정 파일 /etc/mail Access.db Sendmail 중계 기능 설정 DB Mailertable Sendmail 특정 도메인 메일러 라우팅 설정 파일 Mailertable.db Sendmail mailer DB 파일 Domaintable Sendmail domain mapping 설정 파일 Domaintable.db Sendmail domain mapping 설정 db파일 Virtusertable Sendmail 가상메일 설정 파일 Virtusertable.db Sendmail 가상메일 설정 db파일 Aliases Sendmail 알리어스 파일

14 Sendmail 설정파일 (/etc/sendmail.cf)
메일 호스트 지정(Cw, Fw) ############# ## local info ## Cwlocalhost Sendmail을 설정하는데 있어서 가장 중요한 포인트, 로컬 호스트에 관하여 메일을 처지하도록 지정 Cw 명령은 w라는 클래스에 갑을 하나씩 대입하라는 명령, w 뒤에 메일 서버로 만들고자 하는 도메인을 지정(복수 지정이 가능-가상호스트에대한 이메일 서비스) Ex Cwnwork.chungbuk.ac.kr Cwwww.testnara.chungbuk.ac.kr Cwcomputer.ac.kr Fw :위와같이 많은 도메인을 기입하기 불편 Fw/etc/mail/local-host-names(8.10)

15 Sendmail 설정파일 (/etc/sendmail.cf)
명령 설 명 C w 클래스에 값을 지정함. 여러 개의 명령을 복수로 사용할 수 있음 F 클래스로 정의한 파일을 불러 읽음 D 내부 매크로 변수 j 에특정한 값(도메인)을 정의함 O 옵션을 지정함 T 신뢰 가능한 사용자 지정 P 메시지 우선 순위 M SMTP 메일러 지정 H 헤더(header)포맷 R 규칙 재쓰기 S 룰셋 정의

16 메일 호스트 강제 지정(Dj) #Dj$ww.Foo.Com
Dj 명령은 내부 매크로 변수 j뒤에 특정 값을 지정하게 되면 특정 값을 강제로 메일이 처리할 수 있도록 함 j 뒤에 도메인을 지정하면 Sendmail이 자신의 호스트 명을 알아내지 못하는 실수가 있을때 그 도메인 으로 메일이 작동 될 수있게 해줌 일반적으로는 주석처리 되어있음 Ex Djnwork.chungbuk.ac.kr Djwww.testnara.chungbuk.ac.kr Djwww.computer.com

17 메일 발신지 바꾸기(DM) DM 명령은 메일을 전송할 때 메일 전송자의 주소를 메일 호스트와 다르게 표시하여 전달해 주는 기능
#who | masquarade as(null for no masquerading)(see also $=M) DM DM 명령은 메일을 전송할 때 메일 전송자의 주소를 메일 호스트와 다르게 표시하여 전달해 주는 기능 메일 호스트 이름은 nwork.chungbuk.ac.kr이지만 DM뒤에 testnara.chungbuk.ac.kr 답장을 받을때는 nwork.chungbuk.ac.kr으로 받겠다는 의미 여러대의 호스트를 운영할때 하나의 주소로 모든 메일에 대한 답자을 받고자 할때 유용 Ex #who | masquerade as (null for no masquerading)(see also $=m) DMtestnara.chungbuk.ac.kr

18 메일 포워딩(forwarding) Sendmail.cf 파일 내용에 옵션지정 #Forward file research path
ForwardPath=$z/.forward.$w:$z/.forward 사용자 계정 디렉토리 안에 ./forward라는 파일이 존재하게되면 메일 서버로 오는 메일들을 이 파일 안에 기록된 메일 주소로 전달해 주는 기능 Ex Nwork.chungbuk.ac.kr 라는 메일 서버의 sykim 계정에 ./forward파일을 만듬 모든 메일을 도착하게 됨 주소가 여러 개 존재할때 하나의 주소로 모든 을 받고자 할때 유용

19 가상 유저 사용 Kvirtuser hash –o /etc/mail/virtusertable
하나의 메일 서버에서 여러 개의 버추얼 호스트를 운영하는 경우에 여러 버추얼 호스트에 대해 똑같은 계정을 필요 Sykim이라는 계정이 존재할때 nwork.chungbuk.ac.kr호스트와 testnarac.chungbuk.ac.kr,sunyoung.com 호스트들이 똑같은 계정을 필요 하나의 동일한 계정을 여러 버추얼 호스트들이 이메일 주소로 동시에 사용할 수있게해주는것이 virtusertable임 /etc/mail/virtusertable Makemap hash /etc/mail/virtusertable </etc/mail/virtusertable =>/etc/mail/virtusertable.db데이터베이스 파일에 dB화 해주어야만됨

20 메일 릴레이 기능 (Access list database)
자신의 네트워크가 아닌 다른 네트ㅝ크상의 호스트에서 자신의 메일 서버를 이용하여 메일을 전송하고자 할 경우 Kaccess hash –o /etc/mail/access 스팸메일을 차단하기 위하여 디폴트로 설정된 값으로 /etc/mail/access로 모든 네트워크에 대해 메일 릴레이 기능을 선택적으로 제공 할수 있음 오직 /etc/mail/access파일 안에 지정되어 있는 네트워크 주소에 대해서만 메일을 전송할 수 있다 /etc/mail/access Nwork.chungbuk.ac.kr RELAY Testnara.chungbuk.ac.kr RELAY Sunyoung.com RELAY RELAY sunyoung.ac.kr REJECT Makemap hash /etc/mail/access </etc/mail/access 테스트 mail-abuse.org

21 센드메일의 RELAY

22 동적 릴레이 기능 앞에서 본 메일 릴레이기능은 스팸메일을 방지하는 데 뛰어난 기능을 제공함
/etc/mail/access 데이터베이스에 기록되지 않은 네트워크상의 호스트들은 메일을 보낼수 없게됨 동적 네트워크 주소를 사용하는 경우에 시스템 관리자가 일일이 사용자의 아이피 주소를 access 데이터베이스에 갱신은 어려운 사항 해결책 서버의 네트워크 주소와 클라이언트의 네트워크 주소를 비교하여 메일 릴레이 기능 부여 Pop3 서버와 같이 사용자의 인증을 통하여 서비스

23 메일 알리어스(Mail Alias) AliasFile=/etc/aliases
어느 계정으로 메일을 보냈을 때 그 계정으로 메일이 도착하지 않고 알리어스 파일에 지정된 다른 계정으로 메일이 전송될 수 있게 하는 기능 사용 형식 Name: name1, name2, name3…… Name에게 메일을 보내면 오늘쪽에 지정한 name1,name2,name3.. 에게 같은 메일이 전달 Sykim: …. 알리어스 기능을 활용하여 메일링 리스트로 많이 사용

24 센드메일 로그 설정(Log Level) 센드 메일이 작동하게 되면 /var/maillog 파일에 메일 전송에 대한 로그를 기록
Loglevel로 지정 ( LogLevel=9) 레벨 설 명 센드메일 작돋에 관하여 최소 정보만 기록 1 네트워크 에러 또는 접근 실패들을 기록 2 3 잘못된 주소, forward 에러, 시간 경과에 따른 접속 실속 실패 등 기록 4 Tcp 랩퍼에 의해 거부된 접속 기로 5 수신 메일의 레코드를 기록 6 Vrfy 명령에 의한 사용자 정보 파악 시도 기록 7 메일 수신 실패 기록 8 메일 수신 성공 기록 9 시스템 자원 부족에 의한 수신 실패 기록 10 데이터베이스에서 탐색되는 키 값 기록 11 NIS 에러, 프로세스 종료 기록 12 SMTP 접속기록 13 비사용자 쉘, 디렉토리 퍼미션 설정 등 기록 14 접속 거부에 대한 기록 15 모든 SMTP 접속 기록

25 메일 용량 제한하기 레 벨 설 명 MaxMessageSize=1000000(1메가) 전달모드 Interactively
메일전송시 메일 텍스트 내용과 첨부 파일을 포함한 메일 전체 크키를 제한하는것임 전달모드 DeliveryMode=baground 레 벨 설 명 Interactively Mqueue에 있는 메일들을 동기화 모드로 작동시켜 메일을 전송함 Background Mqueue에 있는 메일들을 비동기화 모드로 작동시켜 전송함 Queue 메일을 수신하여 Queue에 저장하도록 함 Defer 메일을 수신하여 최대한 빨리 Queue에 저장함

26 메일 저장 큐 디렉토리 QueueDirectory=/var/spool/mqueue
메일을 전송할 때 임시로 저장되는 디레토리 지정 외부로 메일 전송될때 사용자가 보낸 메일이 /var/spool/mqueue 디렉토리에 저장 메일 전송이 완료되면 삭제 메일 저장 큐 값 설정 QeueLA=8 #메일 프로세스 평균로드가 8개이상시 큐에 저장 RefuseLA=12 #메일 프로세스 평균로드가 12개이상이면 메일 발송 중단 MaxDaemonChildren=12 #하나의 데몬에 대한 자식 데몬 수를 지정 MinQueueAge=30m # 메일 발송 처리가 실패하는 경우 큐에 저장된후 시간후 재전송 MaxQueueRunSize=10000 #큐에서 처리할 수 있는 작업의 수를 지정

27 센드메일의 시작과 종료 /etc/rc.d/init.d/sendmail start
/etc/rc.d/init.d/sendmail restart 부팅할때마다 sendmail 데몬이 자동으로 실행되도록 하기위해서는 ? Setup or ntsysv Sendmail 작동 여부 점검 telnet nwork.chungbuk.ac.kr 25

28 참고 사이트 www.sendmail.org www.kldp.org www.wowlinux.co.kr


Download ppt "메일 서버(sendmail)."

Similar presentations


Ads by Google