반응형

1. ucspi-tcp 설치

: UNIX Client-Server Program Interface 로써 tcpserver와 tcpclient 전송제어를 하며 프로토콜(TCP client-server)을 구축하는데 좀더 편리하게 사용할 수 있도록 제작된 command-line 툴이다.

 

ucspi-tcp 를 다운

 

 

tar를 이용하여 압축 해제

 

gcc 버전이 3이상으로 업그레이드가 되었으므로 소스를 그대로 설치하면 에러가 발생으로 패치파일로 패치

 

conf-home 파일 수정

 

설치

 

2. daemontools 설치

daemontools 이란 ?

데몬과 그 로그를 관리하는 툴 집합 이며 sendmail같이 단일 프로세스가 아닌 qmail은 여러 작은 프로세스가 수행되는데 이를 효율적으로 관리해주기 위해 사용한다.

 

 

daemontools 다운로드

 

압축 풀기

 

make 를 읽기 전에 디렉토리를 src로 변경 후 make

 

쉘 스크립트 적용

 

conf 파일에 initctl 로 서비스를 start/stop 할 수 있게 위와 같이 설정(실행 파일 만듦)

 

서비스 시작 확인

※ Centos7 은 daemontools 에서 initctl 이 없으므로 다른 방법으로 설정 필요

 

 

 

● mysql 권한 부여 및 vpopmail 과 연동

사용자 그룹 생성

 

사용자 그룹 생성 및 확인

 

-r 옵션을 사용하여 uid 500 미만으로 만듦

/sbin/nologin 으로 쉘을 설정하여 로그인이 되지 않도록 설정

 

 

 

생성 확인

 

vpopmail 사용할 데이터 베이스 생성

 

vpopmail 사용자 생성

 

생성 확인

 

 

3. vpopmail 설치

● vpopmail 이란 ?

: sendmail대신 qamil을 사용하는 이유중에 하나가 qmail에서는 vpopmail과 연동하여 가상 도메인 사용자를 등록 관리할 수 있다는 점과 관리를 mysql같은 database로 할수 있다는 점이 있다.

 

vpopmail과 qmail은 설치하기 위해 서로가 필요하여 둘 중에 하나를 설치한 것 처럼 가짜로 파일을 만든다. (가짜 파일 3개 만듦)

 

wget으로 vpopmail-5.4.30.tar.gz 다운

 

압축 풀기

 

컴파일 설정

 

make 진행

 

설치

 

vpopmail과 mysql 을 연동하기 위한 설정

 

vpopmail 설치 완료 하였으므로 가짜 qmail 파일 삭제

 

 

4. libdomainkeys 설치

knetqmail컴파일시 libdomainkeys를 참조하기 때문에 libdomainkeys를 먼저 컴파일 한 후 설치가 진행된다.

 

libdomainkey 다운로드

 

압축 풀기

 

설치할 key 디렉토리 변경설치할 key 디렉토리 변경

 

설치

 

 

 

5. qmail 설치

knetqmail 파일 윈도우로 다운받아서 FTP 로 서버에 업로드 함

 

qmail 설치에 필요한 패치 파일 다운로드

 

압축 풀기(압축 푼 결과)

 

오류 발생하지 않게 패치파일 적용

 

ssl에 대한 설정

 

설치 및 확인

 

 

설정 파일 복사 및 권한 설정

 

 

▶ 큐메일 데몬을 위한 디렉토리 생성

 
 

▶ 설정 파일 생성 후 설정

 

 

▶ qmail 데몬을 위한 스크립트 생성

 

 

▶ 설정파일 권한 및 소유권 설정

 

 

▶ tcp.smtp 설정

qmail 로그 디렉토리 생성

 

qmail 구동 스크립트 생성

 

qmail 데몬 권한 설정 및 재시작 시 자동 구동 설정

 

qmail 데몬 구동

 

앞에서 tcp.smtp 수정하였으므로 적용

 

telnet 으로 smtp 접속 확인

 

telnet 으로 pop3 접속 확인

 

 

 

반응형
반응형

 

(1) 이메일 발송,수신 구조

● 용어 설명

- MUA(Mail User Agent) : 메일을 작성하여 보내는 프로그램

- MTA(Mail Transfer Agent) : 이용자로부터 메일을 받아서, 외부로 전달하는 프로그램

- MDA(Mail Delivery Agent) : 전송받은 메일을 해당 사용자에게 전달

- SMTP : Simple Mail Transfer Protocol) : 메일을 보낼 때 사용되는 프로토콜

- POP3(Post Office Protocol) : 메일을 전송받을 때 사용되는 프로토콜

- IMAP(Internet Mail Access Protocol) : 메일을 전송받을 때 사용되는 프로토콜

 

 

● ※ mail deamon이란 일종의 프로세스로서, 송신자의 메일과 정보를 메일 서버가 해석 가능하도록 재가공 함반대의 경우 또한 같은 방법으로 수신자의 정확한 메시지 수신과 릴레이를 지원mail 전송의 원리

- 사용자는 mail client (outlook 또는 eudora)와 같은 프로그램을 통해서 mail을 작성한 후, SMTP를 사용하여 mail deamon으로 메시지를 전송

 

- 메일 데몬은 종단간 client의 주소를 분석하고 가장 가까운 mail server(송신자 소속의 메일서버)로 메시지와 정보를 보냄

 

- 송신자가 보낸 편지가 일단 송신자 측의 전자우편을 관리하는 Mail Server에 전달되면,Mail Server는 수신자의 전자우편 주소를 분석해서 최단 경로를 찾아 근접한 Mail Server에 편지를 전달

 

- 최종 수신자측의 Mail Server에 도착하기까지 연속적으로 전달하는 중계작업이 계속 됨, 서로 근접한 Mail Server들 간에 전자우편을 계속해서 중계해 나가는 방법을 통해 메일을 저장 후 전송 (Store-and-forward)하는 서비스를 함

 

- 이러한 작업이 계속적으로 이루어 진 후, 송수신자는 정확하게 메일 교환을 할 수 있음

 mail deamon이란 일종의 프로세스로서, 송신자의 메일과 정보를 메일 서버가 해석 가능하도록 재가공 함반대의 경우 또한 같은 방법으로 수신자의 정확한 메시지 수신과 릴레이를 지원

 

 

(2) 프로토콜 (SMTP, POP3, IMAP )

● SMTP (Simple Mail Transfer Protocol)

: 인터넷에서 메일 주고 받기 위해 이용되는 프로토콜

TCP포트번호 : 25번 사용

 

- 메일 서버간 송수신 뿐만 아니라 메일 클라이언트에서 메일 서버로 메일을 보낼때에도 사용

- 메일을 보낼때 바로 상대편의 컴퓨터로 메일을 송신하는것이 아니라, 중간에 메일서버라는 곳을 몇군데 거치게 되는데, 메일서버에 - 메일이 보관되고 그것을 다시 다른 메일서버에 보내면서 결국 보내고자하는 end-user 에게 전해 짐

- 일반적으로 메일서버 간 메일을 주고받을때는 SMTP(simple mail transfer protocol)를 사용

 

 

● POP3 (Post Office Protocol)

: 받는메일이라고 불리는 POP 서버(version3) 이메일을 받아오는 표준 프로토콜

TCP포트번호 : 110번 사용

 

-메일 서버에서 이메일을 로컬 PC로 수신받을 수 있는 client / server 프로토콜

-pop3는 서버에서 메일을 받아오는 즉시 삭제되도록 만들어 졌지만 서버저장 설정은 가능(스토리지용량에 제한있는 경우 유리)

 

 

● IMAP (Internet Message Access Protocol)

: POP와 같이 메일 서버 종류 중 하나

TCP포트번호 : 143번 사용

 

- POP와는 달리 중앙 서버에서 동기화가 이뤄지기 때문에 모든 장치에서 동일한 이메일 폴더를 확인할 수 있음

- 스마트폰, 태블릿, PC모두 동일한 받은메일/보낸메일/기타폴더 등 모든 이메일 메시지를 볼 수 있음

- 서버에 이메일이 남겨진 상태로 사용자에게 이메일을 보여주기 때문에 사용자는 언제 어디서나 원하는 메일을 열람할 수 있음

- 메일이 서버에 저장되어있기 때문에 로컬pc에 문제가 생겨도 이메일에는 아무 영향을 미치지 않음

 

 

 

(3) QMAIL

● qmail 이란?

Unix/Linux 기반의 메일 전송 에이전트(MTA)이다.

Sendmail은 프로그램이 단일화 되어 보안에 상당히 취약하며 사용함에 있어서도 불편한점이 많고 또 많은 전문지식을 필요로 한다.

qmail은 모듈방식을 채택하여 사용하기 편리하고 Sendmail에 비해 더 안전한 소프트웨어이며 기능 또한 매우 다양하다.

 

 

● qmail 장점

▶ 안전성

mail을 통해 시스템에 침입할 수 없다.

 

 

▶ 신뢰성

qmail은 메세지를 절대 잃어버리는 일이 없다.

Maildir 형태는 qmail에서 처음으로 사용하기 시작한 메일함 형식으로 배달이 이루어 지고 있는 동안에

시스템이 다운되더라도 파일 시스템에 문제가 생기지 않는 유일한 메일함이며 NFS 파일 시스템상에서

동시에 여러개의 메일이 배달되고 있는 동안에도 사용자가 메일을 읽을 수 있는 안전한 메일함 이다.

 

▶ 속도

qmail은 메세지를 Sendmail보다 빠르게 처리하면서 안정성을 잃지 않는다.

수 많은 메일을 동시에 배달해야 하는 메일링 리스트의 경우 가장 빠른 성능을 보이게 된다.

 

▶ 간단함

qmail은 다른 어떠한 MTA 보다도 작다.

포워딩, 알리아싱, 메일링 리스트 메카니즘을 독립적으로 가지고 있는 다른 MTA들과는 다르게 qmail은 한가지의 간단한 포워딩 메카니즘을 사용해 모든 기능을 구현하였다.

 

▶ 능률

qmail은 오래된 486 16M 시스템에서 하루에 70,000통 이상의 메일을 처리하는데

무리가 없을 정도로 그 성능과 능률이 뛰어나다.

 

▶ 메일링 리스트

qmail은 일반유저가 메일링 리스트를 제어할 수 있기 때문에 관리자의 업무가 줄어드는데 도움을 준다.

 

▶가상 호스트 구축

가상 호스트 구축이 쉽다.

 

▶직관적인 관리

qmail은 최소한의 작업으로 관리가 쉽다.

 

▶유연한 배달 프로그램

qmail은 외부 메일 프로세서를 위한 강력한 인터페이스를 제공한다.

 

▶다양한 OS 지원

qmail은 동일한 소스로 포팅이 필요 없이 대부분의 UNIX 시스템을 지원한다.

AIX, BSD/OS, FreeBSD, HP/UX, Irix, Linux, NetBSD, OpenBSD, OSF/1, SunOS, Solaris, 

 

반응형
반응형

 

1. /var/qmail/control/ 설정 파일

- qmail은 하나의 전체 설정 파일을 사용하지 않고 /var/qmail/control/ 안에 다음과 같이 분리되고 각각의 기능을 하는 설정파일들을 사용

- bounce : 어떤 이유로든 메일이 되돌아 올 때 (from: 헤더가 있는 경우)

- double bounce : bounce 한 메일이 다시 되돌아 오는 경우

- me  FQDN으로 명기한 도메인 명이 적혀있는 me 라는 파일을 의미

 

 
Control
기본값
사용
설명
rcpthosts
X
qmail-smtpd
메일을 받아들일 도메인
badmailfrom
X
qmail-smtpd
이 메일주소로 부터 오는 메일은 553 sorry, your envelope sender is in my badmailfrom list 라는 메세지와 함께 무조건 User unknown으로 bounce
bouncefrom
MAILER-DAEMON
qmail-smtpd
bounce 할때 메일의 from: 헤더에 들어갈 유저 이름
bouncehost
me
qmail-send
bounce 할때 메일의 from: 헤더에 들어갈 호스트 이름
concurrencylocal
10
qmail-send
로컬 메일 배달시 qmail-send의 동시 최대 프로세스의 수를 조절
concurrencyremote
20
qmail-send
리모트 메일 배달시의 qmail-send 동시 최대 프로세스 수를 조절
databytes
0
qmail-smtpd
메일의 최대 크기(byte, 0 = 무제한)
doublebouncehost
me
qmail-send
double bounce 된 메일을 수신할 호스트
doublebounceto
porstmaster
qmail-send
double bounce 된 메일을 받을 유저
envnoathost
me
qmail-send
메일주소에 @ 가 명시되지 않았을 경우의 디폴트 도메인 이름
helohost
me
qmail-remote
SMTP HELO 명령에 표시될 호스트 이름
localiphost
me
qmail-smtpd
로컬 IP 주소가 대체될 이름
locals
me
qmail-send
로컬로 인식하며 배달할 도메인
me
시스템의 FQDN
.
다른 콘트롤 파일을 위해 쓰임
morercpthosts
X
qmail-smtpd
두번째 rcpthosts 파일
percenthack
X
qmail-send
"%"-형식의 릴레이를 사용 할 수 있는 도메인
plusdomain
me
qmail-inject
domain substituted for trailing "+"
qmqpservers
X
qmail-qmqpc
QMQP 서버의 IP 주소
queuelifetime
604800
qmail-send
메세지가 메일 큐안에 머물 수 있는 시간 (초단위)
smtpgreeting
me
qmail-smtpd
SMTP greeting message
smtproutes
X
qmail-remote
artificial SMTP routes
timeoutconnect
60
qmail-remote
SMTP 연결 대기 시간()
timeoutremote
1200
qmail-remote
리모트 서버 연결 대기 시간()
timeoutsmtpd
1200
qmail-smtpd
SMTP client 대기 시간 ()
virtualdomains
X
qmail-send
가상 도메인들과 유저들
defaultdomain
me
qmail-inject
기본 도메인 이름
defaulthost
me
qmail-inject
기본 호스트 이름
idhost
me
qmail-inject
Message-ID에 사용될 호스트 이름

 

 

2. /etc/tcp.smtp 파일

/etc/tcp.smtp설정 파일은 등록하는 아이피에 대해서 smtp 접속 허용, 불허, rcpthosts 참고 등을 결정

 

IP:deny =>해당 IP로부터 smpt 접속을 거부

: smtp 접속 자체가 거부 되므로 아무것도 못함

 

IP:allow,RELAYCLIYENT =>해당 IP로부터 smpt 접속과 모든 릴레이를 허용

: 지정된 IP smtp로 접속하여 아무런 제약없이 메일을 보낼 수 있음

 

:allow => 그외 모든 IP로 부터는 smtp접속은 허용하지만 릴레이는 rcpthosts에 등록된 서버에 대해서만 허용

 

 설정 파일 수정 후 적용시키기 위해서는 반드시 DB를 업데이트 해야함

tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

qmail cdb

1행과 5행은 메일 서버 내부의 릴레이를 열어준 것

tcpserver ip 192.168.1.100 로 부터의 접속을 허용 하고 해당 ip접속이 있을 경우 RELAYCLIENT 환경 변수를 설정한 후

 

qmail-smtpd를 실행하게 되고 릴레이를 허용

 

9행은 다른 ip에서의 접속을 허용만 하고 릴레이는 허용 안함(환경변수 설정x)

 

 

▶ 특정 주소로 부터 메일을 막아야 하는 경우(스팸 메일)

예) 23.45.66.XXX 대역으로 부터 오는 메일 deny

※ 주의할 점 : 메일의 주소와 상관없이 해당 주소로 부터의 SMTP접속을 아예 거부하는 것

 

 

메일을 받아 들일 도메인만 설정

 

3. domain 생성 및 삭제

hwleedomain.com  도메인 생성

 

생성한 도메인 확인

 

도메인 삭제

 

 

도메인 삭제 완료

 

 

4. domain alias 설정 (real domain, alias domain)

alias domain : 새로운 도메인을 사용하여 기존에 있던 도메인 쪽으로 연결을 해주는 것

 

▶ 사용법

명령어 : /home/vpopmail/bin/vaddaliasdomain [real_domain] [alias_domain]

alias 도메인 생성(lhwdomain.com)

 

+hwleedomain.com => 기존 real_domain

+lhwdomain.com => 가상 alias_domain

 

 

alias 도메인 삭제(lhwdomain.com)

 

 

 

5. 이메일 계정 추가 및 삭제

 

▶ 계정 추가

hwleedomain.com  도메인에 webmaster 계정 생성

 

 

tree 명령어로 계정 생성 확인

 

mysql 명령어로 계정 생성 확인

 

 

 

▶ 계정 삭제

hwleedomain.com  도메인에 webmaster 계정 삭제

 

tree 명령어로 계정 삭제된 것 확인

 

mysql 명령어로 계정 삭제된 것 확인

 

 

 

6. 이메일 계정 POP3, SMTP 제한 / 해제

● 명령어 사용법 : vmoduser [옵션] [email 주소 or domain]

 

▶ pop 접근 차단 (옵션 -p)

vmoduser 명령어로 pop 접근 차단 /  vuserinfo 명령어로 계정 정보(pop 차단) 확인

 

▶ smtp 접근 차단(옵션 -s)

vmoduser 명령어로 추가적으로 smtp 접근 차단 /  vuserinfo 명령어로 계정 정보(smtp 차단) 확인

 

 

▶ 차단 해제(옵션 -x)

차단 했던 pop, smtp 차단 해제 명령어 실행후 vuserinfo 명령어로 확인

 

 

 

 

7. 생성된 계정으로 아웃룩 셋팅 하여 발신/수신 해보기

 

아웃룩 pc 에서 dns 서버를 테스트 서버(네임서버 구성한) ip로 설정

 

cmd 창에서 nslookup 명령어로 메일서버 확인

 

 

 

 

▶ qmail과 outlook 연동

메일서버에서 만든 가상 도메인과 유저 입력(유저@도메인)

 

pop 설정 선택

 

받는 메일과 보내는 메일 서버 등록 후 포트 선택 (pop : 110, smtp : 587 사용)

 

※ 대체포트 (587번 포트, Submission 포트)

통상의 메일 송신에 이용되는 TCP의 25번 포트 외에 메일 서버가 메일 소프트로부터 메일 송신을 받는 전용 포트로서 RFC2476에 규정되어 이용이 권장되고 있는 TCP의 포트

 

이용자와 메일 서버 간 통신 시 기본 포트(25번) 대신 인증이 가능한 대체포트(587번)를 사용토록 하는 것은 스팸방지를 위한 국제표준

메일서버에서 vadduser 명령어로 계정 만들때 패스워드 입력

 

 

계정 추가 완료

 

 

 

 

▶ 아웃룩에서 메일 발송

아웃룩에서 메일 발신

 

tail -f /var/log/qmail/send/current | tai64nlocal

발신 후 tail 명령어로 로그 확인 (보내기 성공)

 

웹 메일에서 수신 완료

 

 

 

▶ 웹 메일에서 메일 발송

 

tail -f /var/log/qmail/smtp/current | tai64nlocal

발신 후 tail 명령어로 로그 확인 (수신 확인)

 

 

웹 메일로 보낸 메일 아웃룩에서 수신완료

 

 

반응형

+ Recent posts