티스토리 뷰

회사에서 메일서버가 필요한 상황이 되었다.

아 물론 기존에 회사이름으로 대표하는 DNS는 이미 메일서버가 연결되어 있었고,

사내 서비스이름의 메일서버가 추가로 필요했다.


흔히 쓰는 다음이나 네이버의 MobileWorks 같은 서비스들이 있지만,

필요에 의해 자체적으로 구축된 메일 서버가 필요하다는 의견을 받아서

사내에서 빌드 및 프로젝트 버전관리 레포지토리로 쓰고 있는 macOS Server 를 사용해 메일 서버를 설정해 보기로 하였다.


사내에 또 다른 Debian 서버가 있긴 하지만, 리눅스에서 수발신이 완벽하게 동작하는 메일 서버를 셋업하려면 postfix부터 시작해서 TLS인증서를 설정까지 짧은 토막시간에 후다닥 셋업해야 하는 상황이였기에 macOS Server를 선택했다.






서버 앱을 실행한다. 이 작업은 원격지에 있는 서버에 접속하여 진행하였다.

서버 로컬에서 서버 앱을 실행 하여도 동일한 인터페이스로 작업을 진행할 수 있다.

일단 메일 서버간에 전송시 서로의 호스트네임을 확인하기 때문에 외부에서도 식별 가능한 호스트이름을 설정해야한다.

위의 씬의 상단에 있는 호스트 이름 항목의 "호스트 이름 편집..."을 클릭한다.




접근 방법으로 "인터넷"을 선택한다.

로컬 네트워크 또는 VPN과 같은 항목은 사내 인트라넷 망 내부에서 사용하기 위해 설정하는 것이 보통이고, 외부에서는 식별할 수 없기 때문에 위 두 항목을 설정하는 것은 이 작업에 있어서는 무의미 하다.




"다음" 을 눌러 "호스트 이름"에 서버를 식별할 DNS를 기입한다.

본인의 경우 mail.xxxx.com 이란 A레코드에 서버의 IPv4주소를 등록하였고,

xxxx.com의 MX레코드에 mail.xxxx.com 을 등록해 주었다.

여기서 사용한 mail.xxxx.com을 위 항목에 기입하였다.




서버 앱에서 메일 서버를 선택하고 우측 상단의 토글을 활성화 해준다.

조금 기다리면 상태가 "mail.xxx.com 에서 인터넷을 통해 연결 가능" 으로 바뀌는 것을 확인할 수 있다.

접근 권한과 인증 방식을 각자의 경우에 맞게 잘 선택해 준다.

본인의 경우에는 사원들의 계정을 macOS Server에서 사용자 계정으로 등록하고 있고, 별도의 Active인증 서버가 없으므로 로컬 사용자 인증으로 선택했다.

그리고 도메인 항목에 메일 수신에 사용할 DNS를 기입한다. 여기서 중요한 것은 MX레코드를 가지는 도메인 이여야 한다. mail.xxxx.com이라는 A레코드가 아니라, 이 것을 MX레코드에 등록하고 있는 xxxx.com이여야 한다는 의미이다.

따라서 메일 수신시 username@xxxx.com 과 같은 주소를 사용할 수 있게 된다.

(도메인에서 MX레코드를 찾아 A레코드에 등록된 IPv4를 검색하고 해당 메일 서버에 접속하여 메일을 교환하는 일련의 모든 행위는 모두 메일서버가 알아서 하게 된다.)





추가한 도메인이 정상적으로 메일 수발신이 가능한 상태라고 판단되면 위 이미지 처럼 "이 도메인은 메일을 수신할 수 있습니다." 라는 문구가 표시된다.

해당 도메인을 통해 메일을 수발신 할 수 있는 사용자를 추가하려면 하단의 "+" 버튼을 클릭하여 서버에 등록된 사용자를 추가해 주면 된다.

메일 서버가 정상적으로 설정된 상태라면 앞으로 서버에 새로운 사용자를 추가할 때 자동으로 사용자 메일주소가 서버에 설정된 메일 도메인을 사용해 user-id@xxxx.com 으로 기입된다.





macOS의 기본 메일앱에 위에서 설정한 메일 서버를 추가해 본다.

보통 user-id@xxxx.com라는 메일주소와, 패스워드만 입력하고 진행하면 자동으로 MX레코드를 검색하여 수발신 메일 서버로 인식해 주지만, DNS설정에 따라 자동으로 인식하지 못하는 경우가 있을 수 있는데, 그런 경우 위 처럼 수발신 메일 서버를 수동으로 기입하는 창이 열린다.

정확한 값을 기입하고 "로그인" 을 클릭한다.




메일 서버가 정상적으로 연결된다면 정상적으로 수발신이 되는지 테스트 해본다.

본인의 경우 아주 잘 동작하는 것을 확인 하였다.




다음으로 SPF 레코드를 설정한다. 보통 DNS관리 서비스를 받고 있다면 TXT레코드 항목으로 진입하여 설정하면 된다.

v=spf1 ip4:x.x.x.x ip4: y.y.y.y ~all

과 같은 형태로 기입한다. ip4는 IPv4를 의미하고 IPv6의 경우 ip6로 기입하면 된다.

2개 이상의 메일 서버를 사용하는 경우 위 처럼 나열하면 된다.

마지막의 ~all 에서 ~ 부호는 각 메일서버에 따라 정크메일 처리 규칙을 알아서 적용하라는 의미이다.

이 SPF에 대한 자세한 정보는 구글의 수많은 검색결과로 더 많은 정보를 쉽게 찾아볼 수 있다.




그리고 https://www.kisarbl.or.kr/ 에서 화이트리스트 등록 신청을 한다.

등록 후 심사가 제법 시간이 소요되는 듯 하다. 본인은 현재 여기서 심사를 대기중인 상태이다.




그리고 마지막으로 서비스중인 ISP업체에 rDNS (Revers DNS) 등록을 요청해야한다.

이 것은 특정 IP주소로 DNS를 찾는 역방향 DNS조회를 사용하기 위해서 필요하다.

해외의 메일 서비스 (구글, MSN, 야후 등) 에서는 보통 상대 메일 서버의 신뢰성의 기준으로 rDNS 등록 여부가 포함되어 있기 때문이다.

이 절차가 생략되면 해외 메일 서비스로 전송된 메일은 대부분 정크로 분류되거나 반송될 수 있다.

댓글
댓글쓰기 폼