티스토리 뷰

메일 서버

 

실습

서로 메일을 주고 받는것을 보기 위해 중간에 네임서버를 두고 두개의 메일 서버가 서로 통신 하는 것을 확인하려합니다. mail.ray.commail.ghost.com 두가지 메일 서버를 client가 주고 받게 해보겠습니다.

 

 

mail.ray.com mail.ghost.com에 아래의 작업을 공통적으로 진행합니다.

netplan을 이용하여 고정아이피로 만든후 실습합니다.

/etc/netplan/<~>.yaml

mail server의 호스트이름을 다음과 같이 변경합니다.

/etc/hostname

/etc/hosts 파일에 mail.ray.com을 추가합니다.

/etc/hosts

다음으로 /etc/mail/local-host-names에도 mail.ray.com을 추가합니다.

/etc/mail/local-host-names

변경한 사항들이 반영될 수 있게 reboot합니다.

 


DNS server한곳에 ray.com과 ghost.com 마스터 네임 서버를 만들고 동작시킵니다.

/etc/bind/named.conf.local

각 존에 메일 서버를 넣습니다.

/etc/bind/db.ray.com
/etc/bind/db.ghost.com

설정이 문법에 맞는지 확인한후 bind를 재시작합니다. 그 후에 정상적으로 DNS 서버가 작동하는지 확인하여 보았습니다.

여기 까지 네트워크를 구성하였습니다. 다음으로 ray.com 메일서버를 구축합니다.

 


 

메일 서버를 구현하는 필수 패키지는 보내는 기능의 sendmail, 받는 기능의 devecot-pop3d 2가지입니다. sendmail과 dovecot패키지를 설치합니다. 앞서 두 mail server에 공통적으로 설치합니다.

 

/etc/mail/sendmail.cf 파일은 sendmail 서버의 설정파일입니다.

다음의 설정을 변경합니다. CwlocalhostCwray.com으로 변경합니다.Cw도메인네임으로 변경하여 메일 서버로 사용하겠다는 의미입니다.

/etc/mail/sendmail.cf

, Addr=127.0.0.1을 삭제합니다. 이부분이 있으면 자기 자신만 메일을 보낼 수있다는 의미입니다. 하지만 외부에서도 메일을 보낼 수 있도록 이 부분을 삭제합니다.

/etc/mail/sendmail.cf

 

외부 네트워크 또는 호스트가 메일을 보낼 수 있게 허가해줍니다. /etc/mail/access 파일을 열어서 제일 아래에 다음 내용을 추가합니다. 다음과 같이 RELAY를 허용합니다. 메일 릴레이(Mail Relay)란 다른 네트워크 또는 호스트에서 자신의 메일 서버를 경유해서 메일을 전송하는 것입니다. 이 기능을 악용해서 스팸 메일이나 바이러스 메일 등 대량 메일을 발송하는 경우가 종종 발생되어서 사회적인 문제를 야기하곤합니다. 그래서 sendmail에서 제공하는 메일 릴레이 기능은 기본적으로 자기 자신의 IP주소(127.0.0.1)외에는 아무도 메일을 발송할 수 없도록 설정된 것입니다. 이 파일이 /etc/mail/access입니다. 하지만 모든 사용자가 메일 서버 컴퓨터 앞에 앉아서 메일을 보낼 수 없으므로, 신뢰할 수 있는 도메인이나 호스트 또는 네트워크에는 메일을 릴레이 할 수 있도록 허용합니다. 보통 /etc/mail/access 파일의 릴레이 허용은 RELAY로 거부는 REJECT 또는 DISCARD를 사용합니다.

/etc/mial/access

 

/etc/mail/access 파일을 수정한 후에는 makemap hash /etc/mail/access < /etc/mail/access 명령을 이용해 적용해야합니다.

 

 

 

사용자에게 메일 박스의 내용을 보내주는 devecot 서비서의 설정파일은 /etc/dovecot/dovecot.conf 입니다. 다음을 수정합니다.

*은 IPv4를, ::은 IPv6 프로토콜을 의미합니다. 또한 disable_plaintext_auth=no 부분이 틀리면 외부에서 접속이 불가능합니다.

위 부분의 주석 2개를 해제합니다.

 

다음으로 /etc/dovecot/conf.d/10-mail.conf 를 열고 수정합니다.

121행 주석제거 후 변경
166행 주석제거

 

 

adduser dog명령으로 ray.com의 메일 계정 사용자인 dog를 생성한다. dog의 메일 계정은 dog@ray.com이 될것입니다.

adduser 명령어

 

이제 변경된 설정을 반영하기 위해 재시작합니다.

ray.comghost.com에 위 변경사항을 공통적으로 적용합니다.

 


 

메일 서버가 잘 작동하는지 웹 메일을 만들어 테스트합니다. 웹메일을 만들기 위해선 설치해야할 것들이 있는데, 설치할 웹 메일은 라운드 큐브(Round Cube)라고 불리는 우분투에서 제공하는 메일 프로그램입니다. 라운드 큐브는 PHP로 만들어 졌으며, sendmail과 IMAP 서버(dovecot)를 기반으로 둔 웹 메일 프로그램입니다. 또한, 아파치 웹서버(apache2), PHP, MySQL이 설치 되어 있어야합니다. Linux, Apache,PHP,MySQL은 웹 서비스를 제공해주는 필수 소프트웨어인데, 줄여서 LAMP Server라고 불립니다.

설치할때 아래와 같은 화면이 뜨는데 실습이므로 비밀번호를 쉬운것으로 저장해도 무방하다.

 

이제 외부에서 접속 가능하도록 몇가지 설정을 변경합니다. /etc/apache2/conf-enabled/roundcube.conf 파일을 열고 다음과 같이 변경하여 저장합니다. 3행은 수정하고 5행에 addType을 추가하여줍니다.

/etc/apache2/conf-enabled/roundcube.conf

 

/etc/roundcube/config.inc.php 파일을 열고 35행을 수정합니다.

/etc/roundcube/config.inc.php

 

apache서버를 재시작하여 변경된 사항들을 적용합니다. 마지막으로 DNS서버에 메일 서버의 이름을 mail.ray.com 외에 www.ray.com으로도 접근할 수 있도록 설정합니다. 

/etc/bind/db.ray.com

변경후 재시작 합니다.

 


 

 

이제 접속이 원활한지 확인합니다. 웹 브라우저를 열고 http://www.ray.com/webmail에 접속합니다. 초기화면이 나오면 username에는 기존 사용자인 dog를 입력하고 로그인 합니다.

 

 

반응형