SendMail 설정 파일
SendMail에 사용되는 명령 정보
C w 클래스에 값을 지정. 여러 명령을 복수 사용 가능
F 클래스로 저으이한 파일을 불러 읽음
D 내부 매크로 변수 j에 특정한 값을 정의함
O 옵션을 지정함
T 신뢰 가능한 사용자 지정
P 메시지 우선 순위
M SMTP 메일러 지정
H 헤더(Header) 포맷
R 규칙 재쓰기
S 룰셋 정의 |
sendmail.cf 구성 내용
V9/Berkely |
- 레벨 9 설정 파일 포맷을 정의하는 행 |
Cwlocalhost |
- C 설정 명령어로 localhost를 w 클래스로 정의하는 행 |
Fw/etc/mail/local-host-names |
- F 설정 명령어로 /etc/mail/local-host-names 파일을 w클래 스로 정의한 행 |
Kvirtuser hash -o /etc/mail/virtusertable |
- 가상 유저 테이블을 작성하는 파일을 정의 |
Kaccess hash -o /etc/mail/access |
- 특정 호스트나 도메인이 Sendmail로 접근하는 것을 제어하는 파일을 정의 |
FR -o /etc/mail/relay-domains |
- 정의된 relay-domains 파일은 릴레이를 허락할 도메인을 설정 |
DnMAILER_DAEMON |
- Sendmail 시스템 에러 메시지를 보낼 사람의 이름을 설정 |
O SevenBitlnput |
- 설정 값이 True이면 7비트로 받아들임 |
O EightBitMode |
- 8비트 데이터로 처리 |
O AliasFile |
- 메일 별칭 파일 이름을 지정 |
O MaxMessageSize |
- MaxMessageSize - 메일 메시지의 최대 크기 용량 - 단위는 Byte이며, 1,000,000Byte보다 큰 메시지는 처리되지 않는다. - 주석 처리하면 메시지 크기의 제한이 없다. 메일사용 공간과 별개의 설정이다. |
O DeliveryMode |
- Sendmail을 background로 실행시키는 설정 (기본값 사용 권장) |
O LogLevel |
- O LogLevel=9 - 기본 로그 레벨 설정(기본값 사용 권장) - Level 설정 값 1 : 최소 정보만 기록 2 : 심각한 에러 또는 보안 정보 기록 3 : 네트워크 에러 또는 접근 실패 기록 4 : 잘못된 주소, forward 에러, 시간경과에 따른 접속 실패 기록 5 : TCP 랩퍼에 의해 거부된 접속 기록 6 : Vrft 명령에 의한 사용자 정보 파악 시도 기록 7 : 메일 수신 실패 기록 8 : 메일 수신 성공 기록 9 : 시스템 자원 부족에 의한 수신 실패 기록 10 : 데이터베이스에서 탐색되는 키 값 기록 11 : NIS 에러 및 프로세스 종료 기록 12 : SMTP 접속 기록 13 : 비 사용자 쉘 및 디렉토리 퍼미션 설정 기록 14 : 접속 거부에 대한 기록 15 : 모든 SMTP 접속 기록 |
O ForwardPath |
- 시스템 각 사용자가 자신에게 들어오는 메일을 다른 곳으로 포워딩할 수 있도록 Sendmail이 이 설정 파일을 찾게 지정 |
O Timeout.queuereturn |
- 메일이 최종적으로 보내는 사람에게 반송되기까지의 시간을 설정 |
O Timeout.queuewarn |
- 어떤 이유로 인해서 메일이 아직 배달되지 않을 경우 메일을 보낸 사람에게 경고 메일을 보내는 시간을 설정 |
→ O DefaultUser=8:12
mailer의 기본 사용자와 유저이다. 즉 UID:GID 값이다.
→ O MinQueueAge=30m
최소한 30분 동안 대기열에 있다가 처리한다.
→ O sitpGreetingMessage=$j Sendmail $v/$Z; $b
Sendmail에 접속했을 때 나오는 환영 메시지이다. |
sendmail.cf 파일 규칙
→ 빈 행은 무시한다.
→ #으로 시작하는 행은 주석 처리로 무시한다.
→ C, D, F, G, K, M, O, P, R, S, V로 시작하는 행은 설정 행이며, 이들은 각각 하나의 설정 명령어이다.
→ 하나의 빈 공간 또는 여러 개의 빈 공간으로 시작하는 행은 앞 행의 연장이다. |
SendMail 수신자 설정
SendMail 수신자 설정은 sendmail.cw에서 설정한다.
sendmail.cw 파일은 sendmail.cf에서 클래스 설정 명령어 Ffh 설정한 w 클래스이다.
F 명령어는 file, pipe를 대상으로 클래스를 정의하며, C 명령어로 클래스를 정의할 경우에는 문자열이 그 대상이 된다.
정의된 w 클래스에는 들어오는 메일을 받을 수신자를 설정한다.
'메일을 받을 수신자'라 함은 자신의 메일 서버로 들어오는 메일에 대한 호스트 네임이나 도메인을 의미한다.
네임 서버에 메일 서버 주소에 오직 mail.linuone.co.kr 하나만 등록되어 있는 경우에 다음과 같이 설정한다.
# cat sendmail.cw
mail.linux.co.kr |
SendMail Alias
SendMail Alias는 /etc/alias에서 설정한다.
mail Alias 기능이란 어느 계정으로 메일을 보냈을 때 그 계정으로 메일이 도착하지 않고, Alias 파일에 지정된 다른 계정으로 메일이 전송될 수 있게 하는 기능이다.
: 문자로 왼쪽 필드와 오른쪽 필드를 구분한다.
바뀐 설정대로 mail alias를 사용하기 위해서는 newalias 명령을 이용하여 /etc/aliases를 /etc/aliases.db 파일로 저장해야 한다.
다음과 같이 설정하면 webmaster에게 메일을 보내면 오른쪽에 지정한 linuxonr.linuxtwo 두 계정이 똑같이 받을 수 있다.
webmaster:linuxone,linuxtwo |
가상 유저 테이블 (/etc/mail/virtusertable)
sendmail.cf 파일에서 Kviruser hash -o /etc/mail/virusertable로 설정된 내용이다.
들어오는 메일을 다른 곳(자신의 sendmail의 유저, 또는 완전히 다른 SMTP의 유저)으로 매핑하는 기능이다.
가상 유저를 주 대상으로 하지만 꼭 가상 유저만 해당되는 것은 아니다.
가상의 유저란 /etc/passwd 파일에 존재하지 않는 유저를 말한다.
alias는 ,(콤마)를 사용하여 여러 user를 등록할 수 있지만, 가상 유저 테이블은 일대일 매핑만 가능하다.
SendMail 접근 제어 (/etc/mail/access)
/etc/mail/access 파일은 Sendmail이 특정 호스트나 도메인에 대한 접근을 제어하는 설정 파일이다. 스팸메일을 차단하기 위해 기본으로 설정된 부분이다.
/etc/mail/access 파일은 sendmail.cf 파일에서 Kaccess hash -o /etc/mail/access로 지정된 파일이다.
Third Party Replay
→ SMTP 서버의 사용자가 아닌 사람이 SMTP 서버를 사용하는 것을 Third Party Replay 설정이라 한다.
→ Replay 기능을 이용하여 스패머는 스팸 메일을 불특정 다수에게 보낸다. |
큐잉 서버
큐잉(Queueing) 서버는 큐잉 상태로 동작하는 서버를 말한다.
큐잉(Queueing) 서버는 큐잉 상태로 동작하는 서버를 말한다.
큐잉상태는 SendMail이 작업을 처리하기 위한 대기 행렬 상태를 말한다.
큐잉 서버 만들기 조건
* /etc.mail/access에서 들어오는 메일에 대해서 REPLAY를 허용한다.
* 메일 호스트가 중단되었을 때 큐잉 상태로 동작한다.
* 해당 도메인 네임 서버에 MX 레코드로 지정한다.
* sendmail과 같은 SMTP 서버를 구축해야 한다.
* 메일을 직접 받지 않는다.
IMP를 이용한 웹 메일 구축
준비
* SendMail이나 Qmail을 이용한 메일 서버가 구축되어 있어야 한다. * 웹 서비스가 가능해야 하고, 필요에 따라서는 데이터베이스가 구축되어 있어야 한다.
웹 메일 :
→ 별도의 프로그램 없이 인터넷이 가능하고 웹 브라우저만 있다면 어디서나 메일을 주고 받을 수 있는 프로그램이다.
* Internet Massaging Program
* PHP로 작성되어있으며, IMAP과 POP3 계정을 사용하는 웹메일이다.
* 누구나 사용할 수 있으며, 자유롭게 소스를 수정할 수 있다. |
IMP를 위해서 기본적으로 갖춰져야 할 것
→ imap을 지원하는 php 3.x 상위 버전
→ 아파치와 같은 php를 지원하는 웹 서버
→ imap 서버
→ Horde와 phplib가 설치되어야 함
→ SSL 웹 서버 (아파치 + mod_ssh + OpenSSL)
→ 데이터베이스
→ LDAP (서치엔진 사용에 필요)
* SSL 이란?
Secure Socket Layer의 약자도 두 개의 통신 Application 사이의 privacy와 reliablity를 보장하기 위한 암호화 프로토콜을 말한다. |
Hord 설정
→ hord/phplib/local.inc를 수정해주면 된다.
→ MySQL을 사용하기 위해서 다음 두 클래스의 주석을 없애주고, 데이터베이스를 사용하지 않는다면, 그에 해당하는 부분의 클래스 주석을 없애주면 된다.
Class HordDB extends DB_sql { }
Class HordCT extends CT_sql { } |
IMP 설정
→ secure.sh를 실행하여 test.php3와 setup.php3등의 설정을 위한 것들의 퍼미션을 변경해준다. 이것은 secure.sh에 의해 자동으로 수행할 수 있다.
sh ./secure.sh |
※ 웹 메일 서비스를 제공하는 곳