BBUWOO'S [ LIKE UNIX ] WORLD Home > Lecture > Sendmail > Sendmail-1  

HOME
WHAT's BBUWOO?
LInux AnNyung
Open Source
    GitHUB
    GitHUB (for PHP)
LECTURE
MINI LECTURE
QnA BOARD
ENGLISH POEM


WARNNING

강좌의 모든 권리는 본인 김정균에게 있으며 이 강좌를 상업적 목적 으로 이용
하거나 다른 곳으로 옮길시에는 본인의 허락이 있어야 한다. 이글의 가장 최신글은
http://oops.org 에서 확인할수 있다.




이 강좌는 Sendmail 8.9.x 와 8.10.x 이상 버젼의 변화를 다루며 웹호스팅 시에 사용이 되는 Multi Queing 부분과 SMTP auth, Virtusertable 기능에 대해서 알아 보도록 한다. compile 방법에 대해서는 너무 복잡해서 여기다 쓰기가 싫다. 궁금한 사람들은 를 받아서 살펴 보기 바라며, 이 문제로 내게 메일을 주지 않았으면 한다. 일단 여기서는 내가 packaging을 이용하는 방법으로 설명을 하겠다.

Source 설치법은 아래의 link를 참조하도록 한다.
- 계정 user name과 password로 인증을 하여 메일 발송
- 도메인 별로 메일을 수신
- 다중 queing을 통한 메일 발송 적체 해소

REDHAT 사용자들은 본인이 packaging해 놓은 RPM package 를 ftp://mirror.oops.org 에서 다운 받아서 설치를 하면 될것이다.

이 강좌는 RedHat 사용자를 중심으로 진행을 함을 명시한다.

1. 8.9.x 와의 변화

sendmail은 8.10.0 버젼에서 약 150여가지의 변화가 있다. 이중 주목할 만한 것은 이 강좌에서 다룰 SMTP auth 기능과 Multiple Queues의 기능이다. 이 밖에도 LDAP와 IPv6지원 여부는 획기적인 변화라고 할수 있다.

먼저 Multiple Queues에 대해서 알아 보도록 한다. sendmail은 8.10 대 버젼에서는 대용량 메일의 강화를 촛점으로 맞춘듯 싶다. 아니 이젠 대세라고 해야 할것이다. Multiple Queues는 기존의 Queue가 /var/spool/mqueue directory에 보낼 메일을 쌓아두었다가 mail 전송이 성공한 후에 지우는 방식을 취하고 있었으나 대용량 메일 서버에서는 한곳에서 발송이 되다 보니 메일발송이 지연되는 결과를 가져 오고 그 결과 서버에 상당한 부하를 주는 꼴이 되었었다. 하지만 이 기능을 지원함으로서 여러개의 queue directory를 분산하여 한번에 지정한 queue directory수 만큼 발송이 가능하게 되었다.

아래는 이만용씨 site에서 "센드메일 8.10.0과 대용량 메일 솔루션 해결 방안 (1)" 이라는 글의 내용중 Multiple Queues의 장점에 대한 글을 인용한 부분이다.

[ 멀티 큐의 장점 ]

멀티 큐의 장점은 다음과 같다.

  • 고성능
  • 병렬 큐 처리
  • 파일 시스템 결점 보완

우선 여러 개의 큐 디렉토리에 서로 다른 하드디스크 파티션을 마운트한다든지 하면, 단일 디스크 파티션을 사용했을 때 발생하는 병목 현상을 줄일 수 있다. SCSI 하드디스크인 경우, 각 디스크의 병렬 작업을 SCSI 장치가 보장해 주므로 성능은 극대화된다. 이 점이 바로 고성능의 논점이다.

두번째, 센드메일은 일정 시간(대부분 1 시간)마다 "큐 러너(queue runner)"라는 프로세스를 시작하여, 어떤 이유에서든 아직 보내지 못한 메일을 다시 전송하려고 시도한다. 큐가 하나였을 때에는 하나의 큐 러너가 순차적으로 보낼 수 밖에 없다. 멀티 큐 방식에서는 큐의 갯수만큼 큐 러너가 다중으로 실행되어 미해결 메일을 처리해 준다. 물론 병렬 작업을 통해 네트웍 자원이 훨씬 더 많이 찰 것이다. 그러나 대형 포탈의 경우, 메일이 늦게(심지어는 몇 시간 뒤!) 도착하는 것보다는 대역폭을 충분히 활용하면서 신속하게 보내는 것이 좋다.

세번째, 일반적인 유닉스 파일 시스템은 한 디렉토리에 많은 파일(예를 들어, 3000 개 이상)이 있으면, 디렉토리 읽기 기능이 저하된다. 되도록이면 여러 개의 큐 디렉토리를 만들어 파일 이름 읽기 속도를 개선하는 것이 좋다. 물론 데이터베이스 방식으로 저장하는 Reiserfs나 차세대 ext3 파일 시스템에는 해당되지 않는 문제이다. 그러나 아직은 대부분, 블럭 저장 방식의 ext2 파일 시스템을 사용하고 있다.

다음은 SMTP 인증에 대해서 알아 보도록 하겠다. sendmail 8.9 버젼대에서 와서 Anti SPAM 운동의 일환으로 relay 허용이 default로 막히게 되었다. 하지만 smtp relay를 설정하는 것이 ip address또는 domain name으로 이루어지게 되어 있어서 동적 ip에 대해 relay허용 문제가 논란이 되곤했다. 이 문제를 해결하기 위하여 8.10 버젼에서 smtp auth 기능이 추가가 되었다.

하지만 이 기능은 기본적으로 들어 있지는 않으며, 인증을 위해서는 cyrus-sasl library(libsasl이라는 이름으로 패키징 되어 있기도 하다)가 필요하며 cyrus-sasl library는 또한 openssl package를 필요로 하게 된다.

SMTP auth 기능은 평문과 암호화를 둘다 지원을 하며, account name과 account password를 이용하여 지원을 한다.

새로운 기능에 대해서는 이까지만 한다. 더이상은 나도 모른다. 아니 관심이 없어서 알아 보지도 않았다. 오로지 나의 관심사는 이 두개 뿐이었다.

일단 ftp 에 있는 sendmail version은 위의 2가지 기능을 지원을 한다. 그러므로 openssl package를 설치하고 libsasl package를 설치한 다음 sendmail을 설치를 해야 한다는 것을 명심하라.

그럼 위의 2가지 기능에 대한 간단한 소개는 다음장으로 넘어가겠다.

[설정 파일의 위치및 파일이름 변경 ]

sendmail 8.10.x 에 와서 기존의 파일들의 위치와 이름이 변경된 것이 있다. 그중 특이한 몇개만 말한다면 일단 sendmail의 모든 설정 파일들은 /etc/mail 로 옮겨 졌다. 즉 /etc 에 위치하던 sendmail.cf 가 /etc/mail/sendmail.cf 로 이동을 했다는 의미이다. 또한 /etc/sendmail.cw 가 /etc/mail/local-host-name 으로 변경 되었다는 것을 유의하자.



>> 다음 : Installation & Multiple Queues



    



 Home > Lecture > Sendmail > Sendmail-1

Copyright 1997-2021 JoungKyun Kim 
LAST MODIFIED: 2017/01/18