강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

[SULINUX 강좌#10] FTP서버 운영하기 (vsftpd)

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

[SULINUX 강좌#10] 메일서버 운영하기 (Postfix, Dovecot) 




Mail서버(Postfix, Dovecot)

 

메일서버는 전자 우편을 교환하기 위한 프로토콜인 SMTP, 메일 박스에 보관되어 있는 메일을 가져가기 위한 프로토콜 POP3, IMAP을 사용할 수 있게 제공해 주는 서버입니다.

SULinuxSMTP서버는 postfix를 제공하며, POP3, IMAP을 제공하기 위한 서버는 dovecot을 제공합니다.

 

 

메일 서버 동작 구조

 

8981409a36269487e41dd29ffd6a290d_1644980628_4255.png
 

일반적인 우편을 생각해봅시다. 먼저 편지를 보낼 사람이 편지지에 펜으로 편지를 쓴 다음 봉투에 넣고 그 봉투에 받는 사람과 보내는 사람을 적고 우표를 붙인 다음, 우체통에 넣습니다. 그러면 우체국에서 정해진 시간에 우체통에 들어있는 편지를 수거해 갑니다. 그런 다음 우체국에서 다른 지역으로 우편물을 발송하고 이 우편물을 받는 우체국은 집배원에 의해서 각 가정의 우편함으로 배달합니다. 받는 사람은 우편함에 있는 편지를 가져가게 됩니다. 이 과정이 편지를 보내는 사람과 받는 사람의 사이에서 일어나는 과정입니다.

 

위 과정을 요약하면 다음과 같습니다.

 

1. 보내는 사람 : 메일 작성 및 받는 사람주소, 보내는 사람 주소 작성 후 우체통에 넣음

2. 우체부 : 우체통에서 편지를 수거하여 우체국으로 가져감

3. 우체국1 : 받는 사람의 주소를 확인하여 다른 우체국으로 보내줌. (같은 우체국이면 배달)

4. 우체국2 : 타 우체국으로부터 편지를 받아 각 우편함으로 배달

5. 우편함 : 우체국에서 온 편지를 보관하고 있다가 받는 사람이 와서 편지를 가져감

 

전자 우편의 경우도 위와 매우 유사하게 동작합니다.

8981409a36269487e41dd29ffd6a290d_1644980644_7075.png
 

전자 우편을 이용하는 방법도 실제로 우편을 사용하는 방식과 매우 유사합니다. 보내는 사람은 종이에 편지를 쓰고, 편지봉투에 보내는 사람 주소, 받는 사람 주소를 쓰게 됩니다. 보내는 사람 주소를 쓰는 이유는 편지를 받지 못할 때 반송될 주소를 쓰기 위함입니다. 이것과 같이 전자우편은 아웃룩, 썬더버드, 웹메일 등의 메일클라이언트를 이용하여 메일 본문을 작성하고, 받는 사람 메일 주소를 입력합니다. 보내는 사람 메일 주소는 대부분 자동으로 입력됩니다. 이렇게 작성된 전자 우편은 메일서버로 전송합니다. 편지를 우체국에 직접 가져다 준 것과 같습니다. 전자 우편을 전송하기 위해서는 SMTP 프로토콜을 사용하며 이는 TCP 25번 포트를 사용합니다. 사용자로부터 수신한 전자 메일은 메일 큐(QUEUE)에 저장되고 메일 서버는 저장된 큐를 확인하여 전자메일을 받는 사람의 주소지가 있는 서버로 메일을 전송(relay)합니다. 이 때 상대 메일 서버에 장애가 발생 했거나 네트워크가 불안전해서 보내지 못하더라도 특정 시간(기본 7)동안 다시 발송하려고 합니다. 이는 우체국간의 배달과 비슷합니다. 타 메일서버로부터 메일을 받은 서버는 전자 메일을 사용자의 메일함에 저장합니다. 우체국의 사서함과 비슷한 기능입니다. 메일함에 저장된 메일은 받는 사람이 메일서버에 접속하여 자신의 메일박스를 확인하고 메일이 수신되었으면 아웃룩, 썬더버드, 웹메일등의 클라이언트로 가져가서 확인하게 됩니다.

 

일반우편과 비교하여 전자메일은 다음과 같은 유사점을 가진다.

 

1. 편지, 연필, 종이 = MUA(Mail User Agents) : 아웃룩, 썬더버드, 웹메일 등

2. 우체부 = MDA(Mail Delivery Agent) : 아웃룩, 썬더버드, 웹메일 등

3. 우체국 사이의 전달 = MTA(Mail Transfer Agents) : postfix, sendmail, qmail

 

다른 점은 다음과 같습니다.

 

1. 전자메일은 일반 우편보다 빠릅니다.

2. 전자메일은 소리, 사진등을 쉽게 보낼 수 있습니다.

3. 전자메일은 편지함을 장소와 상관없이 열어 볼 수 있습니다.

4. 일반 우편은 쓴 사람의 감정을 느낄 수 있습니다.

 

 

참 고

 

 

메일서버 운영을 위한 필수 용어

 

1. MTA(Mail Traansfer Agent) : 원어를 번역하면 메일을 전송해주는 대리인(컴퓨터)이라고 보면 됩니다. 예를 들면 PC에서 메일을 보낸다고 생각해봅시다. 간단한 메일을 A라는 컴퓨터에서 B라는 컴퓨터로 보낸다면 B라는 컴퓨터가 켜져 있어야 하고 켜져 있지 않다면 매시간 켜져 있는지 확인해서 켜져 있을 때 메일을 보내고 안 켜져 있다면 켜질 때 까지 메일의 전송시도를 할 것입니다. 이일을 사람이 한다면, 정말 힘들고 지루한 일입니다. MTA는 이 일을 대신해 주는 프로그램입니다. 사용자로부터 메일을 받아서 다른 메일서버 혹은 사용자에게 전달하기 위해서 메일을 큐에 가지고 있고, 가능하다면 송신하고 그렇지 않으면 일정 기간 동안 재시도 할 것입니다. 대표적인 리눅스의 MTAPostfix, SendmailQmail이 있습니다. Windows 계열에는 Exchange Server가 있습니다. 기타 많은MTA 프로그램이 있지만 많이 사용되지는 않습니다. 또한 메일 엔진을 java의 클래스 파일로 제공하기도 합니다. MTA는 일반우편에 비교하자면 우체국 역할을 합니다.

 

2. MDA(Mail Delivery Agent) : 메일을 배달하는 대리인(컴퓨터) 일반 우편에서의 우체부와 같은 역할을 합니다. 우체통에서 메일을 꺼내고 우체국으로 가져간 다음 우체국에 있는 메일을 각 가정에 배달하는 일을 담담하게 됩니다.

 

3. MUA(Mail User Agent) : 메일 사용자의 일을 대신해 주는 프로그램입니다. 가장 대표적인 프로그램이 MS사의 outlook이 대표적이고 가장 많이 사용됩니다. 마치 웹브라우져로 MS Explorer를 사용하듯 windows환경에서 많이 사용됩니다. 요즘은 썬더버드(thunderbird)MUA로 파이어폭스(firefox)를 웹브라우저로 사용하는 추세입니다. 유닉스 계열에서는 pine, elm, mutt등의 CUI 유틸리티들이 많이 사용됩니다. 리눅스 GUI 환경에서는 썬더버드(thunderbird) 및 에볼루션(evolution)MUA로 많이 사용됩니다. 물론 Web메일도 MUA에 포함됩니다. 스마트폰 환경에서는 수많은 앱들이 존재합니다. 일반 우편으로 비교하면 종이와 펜과 봉투 정도로 보면 됩니다.

 

 

 

4. SMTP(Simple Mail Transfer Protocol) : 번역하면 간단한 메일 전송 규약입니다.. 전자메일(e-mail) 전송을 위해 만든 프로토콜입니다. 편지로 비교하면 규격봉투 정도로 비유할 수 있습니다. 서버와 서버 대 통신을 할 때 이 프로토콜에 정의된 형식대로 접속하고 또 메일을 전송합니다. 또한 사용자가 메일서버로 보낼 때도 SMTP를 사용합니다. 대부분 TCP 프로토콜의 25번 포트를 사용합니다.

 

5. POP(Post Office Protocol) : 우리말로 표현하면 우체국 규약이 됩니다. 사용자가 메일서버에서 편지를 가져올 때 사용자 인증 및 일정한 규칙이 필요하기 때문에 이런 규약이 필요한 것입니다. 메일클라이언트 MUA가 메일 서버에서 메일을 가져 올 때 사용되는 프로토콜입니다.

 

6. IMAP(internet messaging access protocol) : 인터넷의 메일들을 접근하는 프로토콜입니다. 이 의미는 서버에 메일을 저장해 두고 필요하면 가져와서볼 때 사용하는 프로토콜입니다. POP3와 함께 많이 사용되고 있습니다.

7. POP3IMAP의 비교

 

POP3

IMAP

포트

110

143

메시지

확인

모든 내용을 클라이언트로 가져와서 확인, 서버에는 메일을 남길 수도 있고 남기지 않을 수도 있습니다.

서버접속 후 메일의 헤더부분만 읽은 후 클라이언트로 가져와 리스트만 보여줍니다. 중요한 메일부터 먼저 읽을 수 있습니다.

접속

메일을 받을 때만 접속해서 받아오기 때문에 접속이 적습니다.

메일을 읽을 때 마다 접속하기 때문에 접속이 많습니다.

서버의

메일박스

메일을 받아오는 동시에 삭제가 가능하기 때문에 효율적으로 메일 박스를 활용할 수 있습니다.

서버에 메일을 두고 확인하기 때문에 메일박스의 공간을 많이 차지합니다.

주 사용처

메일 클라이언트 프로그램

(아웃룩, 썬더버드 등)

웹 메일

특징

메일을 모두 다운 받는데 시간이 오래 걸립니다.

폴더 공유가 가능합니다.

 

메일서버 접속 및 확인

 

메일서버에 접속하는 방법은 다양합니다. 우리가 흔히 말하는 메일서버 접속은 POP3 IMAP을 사용하여 메일박스에 접근한다는 의미입니다.

 

 

(1) 메일클라이언트 프로그램을 이용한 메일서버 접속 (GUI)

 

메일서버에 접속하기 위한 프로그램은 아주 많은 종류가 있습니다. 윈도우 및 리눅스 환경에서도 여러 가지 프로그램이 있습니다. 다음 그림은 메일클라이언트 프로그램을 이용하여 메일서버에 접속한 화면입니다.

 

8981409a36269487e41dd29ffd6a290d_1644980667_0422.png    8981409a36269487e41dd29ffd6a290d_1644980681_1581.png 

 

GUI 환경의 메일클라이언트 프로그램입니다. 좌측은 Windows에서 사용하는 아웃룩 익스프레스이며, 우측은 Linux Windows 환경에서 많이 사용하는 썬더버드를 사용하여 SULinux에 접속한 화면입니다.

메일 클라이언트 프로그램을 이용하여 메일을 발송하고, 수신할 수 있습니다. 위 프로그램은 POP3 IMAP을 모두 지원합니다.

 

 

 

참 고

 

SMTP인증

 

SULinux의 메일서버(Postfix)는 기본적으로 메일 발송 시 SMTP인증을 하게 됩니다. GUI 환경의 메일 클라이언트 프로그램에는 다음과 같은 설정이 필요합니다.

 

 

 

1. 아웃룩 익스프레스(Outlook express)

도구 -> 계정 -> 메일 -> [ 설정된 계정 선택 ] -> 속성 -> 서버() -> 인증필요( 설정표시) -> 확인

8981409a36269487e41dd29ffd6a290d_1644980703_1868.png
 

 

2. 아웃룩 (Outlook)

도구 -> 전자메일 계정 -> 기존의 전자 메일 계정 보기 또는 변경 -> [설정된 계정 선택] -> 변경 -> 기타설정 -> 보내는 메일 서버() -> 보내는 메일 서버(SMTP) 인증필요 -> 확인 -> 다음 -> 마침

8981409a36269487e41dd29ffd6a290d_1644980718_6312.png
 

 

 

 

 

 

 

3. 썬더버드(Thunderbird)

도구 -> 계정 설정 -> "보내는 서버(SMTP)" -> "편집" -> "이름과 암호 사용" : 체크 -> “확인” -> “확인

 

8981409a36269487e41dd29ffd6a290d_1644980739_9252.png
 

 

 

 

 

 

 

(2) 명령어를 통한 메일 박스 접근

 

원격으로 SULinux에 접속하고 명령어를 이용하여 메일 박스를 확인 할 수 있습니다.

 

[root@sulinux conf]# mutt

 

위 명령어를 사용하면 로그인 한 사용자의 메일을 읽거나, 답장을 쓰거나, 메일을 저장 할 수 있습니다.

8981409a36269487e41dd29ffd6a290d_1644980766_6745.png
 

 

위 그림은 리눅스의 명령어 mutt를 사용하여 root의 메일박스를 확인한 화면입니다. 메일 리스트를 확인 할 수 있고, 원하는 메시지를 선택하고 <Enter>키를 누르면 메일의 내용을 확인 할 수 있습니다.

 

[root@sulinux conf]# mutt -f /var/spool/mail/사용자ID

 

위 명령어는 mutt명령어를 이용하여 다른 사용자의 메일을 볼 수 있는 명령어입니다. 메일박스 파일을 직접 열어 확인 하는 것 보다 알아보기 쉽고 잘 정리되어 있습니다. 메일 서버의 운영에 꼭 필요한 프로그램입니다.

 

 

 

(3) 메일 서버 정상 여부 확인

 

메일 서버의 정상작동을 확인하기 위해서는 다음과 같은 사항을 점검해야 합니다.

 

. 열린 포트 확인

서버의 열린 포트를 확인하여 메일 서버 작동여부를 확인 할 수 있습니다. 다음 명령어는 서버의 열린 포트 다시 말해 리슨(LISTEN) 하고 있는 포트와 프로그램을 확인 한 내역입니다.

[root@sulinux ~]# netstat -anp | grep LISTEN -w

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3005/mysqld

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1226/sshd

tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 7763/dovecot

tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 18664/master

tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 7763/dovecot

tcp 0 0 :::80 :::* LISTEN 21854/httpd

 

위 내역에서 음영 처리된 부분이 메일 서버에서 사용하는 포트입니다. POP3(110포트), IMAP(143포트), SMTP(25번포트) 모두 정상적이며 메일을 받을 준비 및 보낼 준비가 되어 있고, 메일 박스에 접속할 수 있는 2개의 방법(POP3, IMAP)을 모두 제공하고 있습니다.

위와 같이 정상 작동 하지 않으면 관련 서비스 postfix, devocot을 확인하시기 바랍니다. 위와 같이 정상 작동 하는데 메일 접속에 장애가 발생한다면, 방화벽등을 확인하시기 바랍니다.

 

. 메일 로그 확인

메일 서버와 관련된 로그를 확인하여 메일서버 정상 작동 여부를 확인 할 수 있으며, 장애 발생 시 로그를 근거로 장애를 처리 할 수 있습니다. 메일 로그는 다양한 정보를 제공합니다.

 

[root@sulinux ~]# tail -10 /var/log/maillog

Nov 20 22:36:22 sulinux postfix/postfix-script[18591]: stopping the Postfix mail system

Nov 20 22:36:22 sulinux postfix/master[14353]: terminating on signal 15

Nov 20 22:36:22 sulinux postfix/postfix-script[18663]: starting the Postfix mail system

Nov 20 22:36:22 sulinux postfix/master[18664]: daemon started -- version 2.6.6, configuration /etc/postfix

Nov 20 22:57:11 sulinux dovecot: pop3-login: Login: user=<doly>, method=PLAIN, rip=212.122.322.22, lip=21.24.22.15, mpid=21809

Nov 20 22:57:11 sulinux dovecot: pop3(doly): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0

 

위 내용은 메일로그 파일(/var/log/maillog)의 일부입니다. 메일로그를 확인하면 거의 모든 내용을 볼 수 있습니다.

 

메일서버 시작 및 종료

 

메일서버는 다음과 같이 크게 2가지 서버가 필요합니다. SMTP서버인 PostfixPOP3, IMAP서버인 dovecot서버가 있습니다. 예전 버전의 SULinuxSMTP인증시 saslauthd서버를 이용하였으나, postfix의 설정으로 devocat을 이용하여 SMTP인증을 하기 때문에 필요하지 않습니다.

 

 

 

(1) Postfix 시작 및 종료

 

Postfix Server는 항상 실행하고 있는 서버 프로그램입니다. SULinuxservice 명령어를 통하여 postfix를 다음과 같이 관리할 수 있습니다.

 

8981409a36269487e41dd29ffd6a290d_1644980783_8314.png
 

 

위 그림은 service 명령어를 사용하여 postfix를 시작, 재시작, 종료 한 결과입니다. 위와 같은 방법으로 postfix 서버를 제어 할 수 있습니다.

 

 

(2) Dovecot(POP3 IMAP 서버) 시작 및 종료

 

SULinuxPOP3 IMAP서버는 Dovecot을 사용합니다. 콘솔 접속하여 dovecot을 시작, 종료, 재시작 할 수 있습니다.

 

8981409a36269487e41dd29ffd6a290d_1644980797_4076.png
 

위 그림은 service 명령어를 사용하여 dovecot을 시작, 재시작, 종료 한 결과입니다. 위와 같은 방법으로 dovecot 서버를 제어 할 수 있습니다.

메일 서버의 설정 및 운영

 

(1) 메일 수신 도메인 설정

 

Postfix를 사용하는 서버에서 특정 도메인에 대한 메일을 수신하기 위해서는 다음 설정이 필요합니다. 만약 설정되어 있지 않으면 메일을 받지 못하거나 다른 서버로 릴레이(Relay) 해 버립니다. Postfix의 기본 설정은 /etc/postfix/main.cf 파일에서 “mydestination = 도메인1, 도메인2”와 같이 “," 구분하여 입력해 주어야 합니다. 하지만, SULinux에서는 Sendmail에 익숙한 사용자를 위해 /etc/postfix/local-host-names 파일을 제공하며, Sendmail과 똑같이 한 줄에 하나의 도메인을 입력하면 도메인을 추가할 수 있습니다. 서버에 새로운 도메인을 추가하기 위해서는 다음 설정이 필요합니다.

 

1) /etc/postfix/local-host-names 파일에 수신할 메일 도메인 설정

2) Postfix 재시작

 

 

(2) 메일 복사본 저장 후 포워딩

 

메일 포워딩 설정을 하게 되면, 복사본을 남기지 않고 포워딩 하게 됩니다. 하지만, 복사본을 남겨야 할 경우가 있고 다음과 같이 설정하면 복사본 저장이 가능합니다.

 

방법 : 사용자의 홈디렉토리에 .forward 파일을 생성합니다. 그런 다음 메일 주소 또는 사용자 명을 입력합니다. 그리고 “\사용자를 입력합니다.

)/home/sulinux/.forward

sulinux@linux.co.kr

\sulinux

위 설정은 sulinux@linux.co.kr 으로 메일을 포워딩 하고, sulinux 메일박스에도 저장됩니다.

 

(3) 가상 메일 유저 설정 (/etc/postfix/virtual)

 

Postfix는 기본적으로 시스템(OS)의 계정을 사용하기 때문에, 한 서버에 여러 도메인이 물려있는 경우는 곤란할 때가 있습니다. 예를 들면 webmaster라는 메일 계정은 도메인별로 다 생성해 줘야할 필요가 있습니다. qmail의 경우 도메인과 사용자계정을 이용해서 인증하기 때문에 도메인만 다르면 계정이 같아도 상관없지만, Postfix는 시스템 계정을 사용하기 때문에 곤란합니다. 이러한 경우 virtual파일을 이용합니다. Sendmailvirtusertable파일과 비슷한 용도입니다. 다음 예를 보도록 하겠습니다.

 

(주의!!) 왼쪽과 오른쪽 사이에는 꼭 TAB키로 띄어야 합니다.

[root@sulinux postfix]# cat /etc/postfix/virtual

webmaster@sulinux.co.kr sulinux

webmaster@linux.co.kr linux

 

위와 같이 설정하게 되면, webmaster@sulinux.co.kr 으로 들어오는 메일은 sulinux의 메일박스에 저장되고, webmaster@linux.co.kr 으로 들어오는 메일은 linux의 메일박스에 저장됩니다. 왼쪽은 메일주소가 오게 되고, 오른쪽은 사용자의 계정이 오게 됩니다. 오른쪽 계정은 외부 메일주소가 되어도 상관없습니다.

이 파일을 변경한 후에 db를 만들어 주어야 합니다.

[root@sulinux postfix]# postmap /etc/postfix/virtual

 

 

 

(4) 메일 유저 별명 설정 및 소규모 메일링 리스트 운영(/etc/aliases)

 

Postfix는 가상 메일 사용자를 생성하여 포워딩 하거나, 특정 메일 주소로 들어오는 메일을 소속된 사용자에게 모두 보내주는 메일링 리스트로도 사용할 수 있는 기능이 있습니다. /etc/aliases 파일을 이용하여 가능합니다.

다음 내용은 기본적으로 SULinux에 설정된 내용입니다.

 

[root@sulinux postfix]# cat /etc/aliases

#

# Aliases in this file will NOT be expanded in the header from

# Mail, but WILL be visible over networks or from /bin/mail.

#

# >>>>>>>>>> The program "newaliases" must be run after

# >> NOTE >> this file is updated for any changes to

# >>>>>>>>>> show through to sendmail.

#

 

# Basic system aliases -- these MUST be present.

mailer-daemon: postmaster

postmaster: root

 

# General redirections for pseudo accounts.

bin: root

daemon: root

adm: root

lp: root

sync: root

shutdown: root

halt: root

mail: root

news: root

uucp: root

operator: root

games: root

gopher: root

ftp: root

nobody: root

radiusd: root

nut: root

dbus: root

vcsa: root

canna: root

wnn: root

rpm: root

nscd: root

pcap: root

apache: root

webalizer: root

dovecot: root

fax: root

quagga: root

radvd: root

pvm: root

amanda: root

privoxy: root

ident: root

named: root

xfs: root

gdm: root

mailnull: root

postgres: root

sshd: root

smmsp: root

postfix: root

netdump: root

ldap: root

squid: root

ntp: root

mysql: root

desktop: root

rpcuser: root

rpc: root

nfsnobody: root

 

ingres: root

# system: root

toor: root

# manager: root

dumper: root

abuse: root

 

newsadm: news

newsadmin: news

usenet: news

ftpadm: ftp

ftpadmin: ftp

ftp-adm: ftp

ftp-admin: ftp

www: webmaster

# webmaster: root

noc: root

security: root

hostmaster: root

# info: postmaster

marketing: postmaster

sales: postmaster

# support: postmaster

 

 

# trap decode to catch security attacks

decode: root

 

# Person who should get root's mail

#root: marc

 

시스템의 기본 계정은 모두 root가 메일을 수신하며, ftp관련 계정은 ftp계정에서 기타 여러 설정이 되어 있습니다. 위 파일의 왼쪽의 계정을 사용하여 메일을 수신하여야 한다면, 위 설정파일에서 제거하고 사용하여야 합니다. 그렇지 않으면 메일을 수신할 수 없습니다.

위에서 왼쪽에 있는 계정의 별칭은 오른쪽의 계정이 됩니다. 이 의미는 왼쪽에 있는 계정으로 들어오는 메일은 오른쪽의 계정이 수신하게 됩니다. 이 파일에서는 주석(#) 및 빈 줄은 무시됩니다. /소문자는 구분하지 않습니다.

 

/etc/aliases 파일을 이용하여 다음과 같은 작업을 할 수 있습니다.

 

. 공백 및 “.” 이 들어가는 메일 계정으로 메일을 수신할 수 있습니다.

Jung.woo young: wooyoung

위와 같이 하면 “Jung.woo young”으로 메일을 수신하고 wooyoung으로 변경해서 전달합니다. 그렇기 때문에 wooyoung 계정이 메일을 수신하게 됩니다.

 

. 메일링 리스트 운영

mailing: sulinux,linux,doly,woo0

오른쪽에 여러개의 id를 적기위해서는 콤마(,)로 구분할 수 있습니다. 위와 같이 설정하면, mailing으로 수신되는 메일은 sulinux, linux, doly, woo0에게 모두 보내게 됩니다.

 

mailing: :include: /etc/mailing

위 방법은 새로운 파일을 include하는 방법입니다. 위 방법을 사용하게 되면 메일링 리스트를 하나의 파일에서 관리 할 수 있고, 메일링 리스트 변경 시 newalias명령어를 사용하여 db를 갱신 할 필요가 없습니다.

이렇게 간단하게 메일링 리스트를 운영할 수 있지만, 사용자가 가입 및 탈퇴 할 때마다 /etc/mailing 파일을 갱신해 주어야 하기 때문에 메일링 리스트가 커지면, 전문 메일링 프로그램을 사용하는 것이 좋습니다.

 

. 특정 주소로 들어오는 메일 삭제

nobody: /dev/null

위 예는 “nobody"계정으로 들어오는 메일을 삭제하는 설정입니다.

 

. 메일을 다른 프로그램으로 전달

mailpass: |/usr/bin/mailpass

위 설정은 “mailpass"로 들어오는 메일을 /usr/bin/mailpass 프로그램을 실행시켜 표준 입력으로 보냅니다. 파이프(|)로 다른 프로그램에게 전달할 수 있습니다.

 

/etc/aliases파일을 변경했다면, db를 생성해야 합니다. SULinuxSendmail 재시작시 /etc/aliases파일이 db파일(/etc/aliases.db)파일의 갱신일 보다 최근이라면, 자동으로 db를 생성합니다. 그렇지만, 파일 설정 후 newaliases 명령어로 db 생성하고, 설정이 잘못 되었는지 확인 하는 것이 좋습니다.

 

[root@sulinux etc]# newaliases

/etc/aliases: 72 aliases, longest 22 bytes, 729 bytes total

 

(8) telnet 을 통한 메일 발송

 

메일 서버 발송 테스트를 하기 위해 특별한 메일 클라이언트가 없다면, telnet을 사용하여 메일서버에 접속하고 메일을 발송 할 수 있습니다. 다음은 telnet 으로 25번 포트에 접속하여 메일을 발송하는 예제입니다.

 

C:\Documents and Settings\Administrator>telnet 192.168.0.202 25

220 sulinux.net ESMTP Postfix

mail from:<doly@sulinux.net>

250 2.1.0 Ok

rcpt to:<doly@sulinux.net>

250 2.1.5 Ok

data

354 End data with <CR><LF>.<CR><LF>

From : doly@sulinux.net

To : doly@sulinux.net

subject : Hello!

 

Hello! SULinux!

.

250 2.0.0 Ok: queued as D569022A059

quit

221 2.0.0 Bye

 

 

호스트에 대한 연결을 잃었습니다.

 

C:\Documents and Settings\Administrator>

 

위 예에서 사용된 명령어는 다음과 같습니다.

 

. telnet 192.168.0.202 25 : 이 명령어는 telnet 으로 192.168.0.202 라는 서버에 25번 포트로 접속하라는 의미입니다. 뒤에 붙는 포트 번호는 기본 telnet 포트는 23번입니다. 그래서 포트를 명시해 주지 않으면 23번으로 접속시도 합니다. 25번 포트는 smtp 포트입니다.

. mail from:<메일주소> : 이 부분은 발신자 주소입니다. 명시해 주는 이유는 답장을 받기위해서 이며 이 부분이 빠지면, 받는 서버측에서 스팸으로 처리하여 거부 할 경우도 있습니다.

. rcpt to:<메일주소> : 받는 사람의 메일주소입니다. 수신자 메일주소를 적어주면 됩니다.

. data : 지금부터 데이터라는 의미입니다. data 입력 후 다음라인 부터는 데이터를 입력하는데, from, to, subjecthead로 간주되어서 처리됩니다. 본문 입력을 마쳤다면, “.”을 입력해야 합니다. “.”은 데이터의 끝이란 의미입니다.

. quit : 마지막으로 접속을 끊기 위해 입력합니다.

(9) telnet 을 통한 메일 수신 (pop3)

 

메일박스의 메일을 확인하기 위하여 별도의 메일클라이언트가 없다면, telnet 명령어로도 가능합니다. 다음 예는 telnet으로 110포트에 접속하여 메일을 읽는 예제를 보여줍니다.

 

C:\Documents and Settings\Administrator>telnet 192.168.0.202 110

+OK Dovecot ready.

user doly

+OK

pass 111111

+OK Logged in.

list

+OK 1 messages:

1 504

.

retr 1

+OK 504 octets

Return-Path: <doly@sulinux.net>

X-Original-To: doly@sulinux.net

Delivered-To: doly@sulinux.net

Received: from localhost (localhost [127.0.0.1])

by sulinux.net (Postfix) with SMTP id D569022A059

for <doly@sulinux.net>; Thu, 21 Nov 2013 15:44:03 +0900 (KST)

X-Mailbox-Line: From : doly@sulinux.net

To: doly@sulinux.net

subject: Hello!

Message-Id: <20131121064420.D569022A059@sulinux.net>

Date: Thu, 21 Nov 2013 15:44:03 +0900 (KST)

From: doly@sulinux.net

 

Hello! SULinux!

.

quit

+OK Logging out.

 

 

호스트에 대한 연결을 잃었습니다.

 

C:\Documents and Settings\Administrator>

 

위 예제는 telnet을 이용하여 192.168.0.202번 서버의 110(pop3)포트에 접속하였고, user를 사용하여 사용자를 명시하고, pass를 이용하여 비밀번호를 입력하였습니다. 로그인 후 1개의 메일이 있다는 것을 확인하고, “retr 메시지번호로 메일 내용을 확인 합니다. 모든 작업이 끝났다면 “quit"명령어로 POP3접속을 종료 합니다.

 

(10) telnet 을 통한 메일 수신 (imap)

 

메일박스의 메일을 확인하기 위하여 별도의 메일클라이언트가 없다면, telnet 명령어로도 가능합니다. 다음 예는 telnet으로 imap(143)포트에 접속하여 메일을 읽는 예제를 보여줍니다.

 

C:\Documents and Settings\Administrator>telnet 192.168.0.202 143

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot ready.

a LOGIN doly 111111

a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in

a SELECT INBOX

* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)

* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.

* 1 EXISTS

* 0 RECENT

* OK [UIDVALIDITY 1384950038] UIDs valid

* OK [UIDNEXT 10] Predicted next UID

* OK [NOMODSEQ] No permanent modsequences

a OK [READ-WRITE] Select completed.

a UID FETCH 1 BODY.PEEK[]

Return-Path: <doly@sulinux.net>

X-Original-To: doly@sulinux.net

Delivered-To: doly@sulinux.net

Received: from localhost (localhost [127.0.0.1])

by sulinux.net (Postfix) with SMTP id D569022A059

for <doly@sulinux.net>; Thu, 21 Nov 2013 15:44:03 +0900 (KST)

X-Mailbox-Line: From : doly@sulinux.net

To: doly@sulinux.net

subject: Hello!

Message-Id: <20131121064420.D569022A059@sulinux.net>

Date: Thu, 21 Nov 2013 15:44:03 +0900 (KST)

From: doly@sulinux.net

 

Hello! SULinux!

.

a OK Fetch completed.

a LOGOUT

* BYE Logging out

a OK Logout completed.

 

호스트에 대한 연결을 잃었습니다.

 

C:\Documents and Settings\Administrator>

 

위 예제는 telnet을 사용하여 192.168.0.202번 서버의 imap(143)포트롤 접속하였고, "a LOGIN doly 111111" 명령어를 사용하여 로그인을 합니다. “a SELECT INBOX"명령어로 수신함을 선택합니다. 수신함에는 1개의 메일이 있다는 것을 확인 할 수 있습니다. ”a UID FETCH 메일번호 BODY.PEEK[]“를 사용하여 메일을 읽습니다. 모든 작업이 끝나면 ”a LOGOUT"명령어로 IMAP접속을 해제 합니다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,074 명
  • 현재 강좌수 :  35,995 개
  • 현재 접속자 :  534 명