토이 프로젝트/서버갖고 놀기 for DevOps

메일 서버 구축하기 dovecot, postfix - (1) 용어 정리

TerianP 2021. 5. 22.
728x90

정말 오랜만에 글을 쓰는것 같네요ㅠㅠ살짝 변명 아닌 변명을 해보자면, 요즘 일이 너무 많아져서 집에오면 그냥 바로 쓰러지느라...이제야 메일 서버 구축에 대한 글을 쓰게 되었습니다ㅠ

 

잡설은 여기까지하고 이번에 제가 해볼 것은 dovecot , postfix 를 사용하여 라즈베리파이에 메일 서버를 구축하는 것입니다. 내용이 좀 있어서 3~4개 정도의 글로 정리될 예정이며, 오늘은 먼저 메일 서버에 대한 기본적인 프로토콜, SSL/TLS 보안 인증에 대한 이야기와 앞으로 구축할 전반적인 내용에 대해 이야기하도록 하겠습니다. 

 

아래의 '1. 각종 용어 정리' 부분은 기본적으로 아시는 부분들이라면 넘어가도 무방하지만 제 글을 그대로 따라가시면서 구축하실 분들이라면 '2. 메일 서버 구축 순서' 부분은 꼭 확인해주시기 바랍니다.

 

1. 각종 용어 정리 : 프로토콜 , DNS , SSL/TLS , dovecot, postfix

 

먼저 메일 서버 프로토콜에 대한 설명입니다. 메일 서버를 통해 수신/발신하기 위한 대표적인 프로토콜은 pop3 와 imap이 있습니다.

IMAP은 기본 143번 포트를 사용하고 중앙 서버에서 동기화가 이뤄지기 때문에 모든 장치에서 동일한 이메일 폴더를 확인 할 수 있습니다. 즉 스마트폰 , PC 모두에서 받은 편지함, 보낸 편지함, 지운 편지함 등등을 동일하게 확인이 가능합니다. SSL/TLS 보안 설정을 적용한 IMAP은 IMAPS라고 하며 993번 포트를 사용합니다.

반면 POP3 는 110번 포트를 사용하고 이메일 공급업체 서버(제게는 라즈베리파이 메일서버겠네요)에서 로컬 장치로 이메일을 내려받도록 설정됩니다. 이에 서버에서 동기화가 이뤄지지 않으며, 메일 서버의 메일을 로컬 장치로 다운로드에서 확인하는 방식을 취합니다. SSL/TLS 보안 설정을 적용한 POP3는 POP3S 라고 하며 995번 포트를 사용합니다.

저는 POP3S와 SMTPS 을 사용해 수신, 발신을 설정할 예정입니다.

 

다음으로 DNS에 대한 설명입니다. 

DNS란 domain name service 로 아이피 주소를 대신해서 특정한 '이름'을 사용하여 해당 아이피에 접속 하기 쉽도록 하는 서비스입니다. 쉽게 말하자면 복잡한 아이피들을 대신해서 인터넷 상에서 사용되는 '이름'이라고 생각하시면 됩니다.

예를들어 www.naver.com, www.google.com 등이 있습니다. 네이버는 125.209.222.141 를 아이피로 갖고 있고, 구글은 172.217.27.78가 해당 아이피입니다. 그런데 외우기 어마어마하게 귀찮잖아요? 그래서 DNS 서비를 이용해서 naver.com , google.com 등으로 접근하기 쉽게 만든다고 생각하시면 됩니다.

보통 이런 DNS 는 회사처럼 큰 곳에서 직접 구축하는게 아니면 해당 서비스를 전문적으로 해주는 웹 호스팅 업체에 맞겨야합니다. 보통은 집에서는 웬만해선 구축하기 힘들거든요. 다만 요즘에는 개인이 웹 서비스를 구축하는 경우에 많다보니 무료 DNS 사이트들도 많이 있고, 보통 iptime 의 공유기에는 이러한 DNS기능을 제공해주는 DDNS 라는 기능이 있더군요(어디까지나 보통일뿐 아닌 공유기들도 있습니다). 저는 웹 호스팅 업체나 어떤 사이트를 사용하기보다는 iptime의 ddns 를 사용했습니다.

DNS는 단순히 메일 서버를 위한 개념이 아니라 네트워크 전반에 걸쳐 사용되는 개념입니다. 앞으로 네트워크 공부를 할 예정이면, 이 부분에 대해서는 따로 검색하시거나 공부하시면서 확실히 짚고 넘어가시는게 좋을 것이라고 생각합니다.

 

다음으로는 SSL/TLS 보안 인증에 관한 용어 정리입니다.

  1. SSL (Secure Socket Layer): Netscape에서 개발하여 SSLv3까지 개발되고 이후로는 TLS로 계승된다.
  2. TLS (Transport Layer Security): SSL3.0의 업그레이드 버전으로 시작. 현재 TLS1.2가 최신이고 TLS1.3이 개발 중이다.
  3. HTTPS (HTTP + Secure)
  4. CSR (Certificate Signing Request): 인증 서명 요청. 인증서명요청 파일의 확장자로 쓰인다.
  5. CRT : Certificate (인증서)의 약자. 보통 인증서 파일의 확장자로 쓰인다.
  6. CA (Certificate Authority): 공인인증기관.
  7. PKI (Public Key Infrastructure) : 공개키 기반구조
  8. PKCS (Public Key Cryptography Standards) : 공개키 암호화 표준
  9. PKCS #12 : 암호화 관련 파일 포맷 정의. 인증서와 개인키가 함께 들어있다.
  10. X.509 : 공개키 기반 인증서 형식 표준
  11. PEM (Privacy-enhanced Electronic Mail) : 인증서 형식의 하나 (Base64 Encoded DER certificate). 해당 형식 인증서의 확장자로 쓰인다.
  12. PFX (Personal inFormation eXchange) : PKCS#12 형식의 인증서 확장자로 쓰임
  13. P12 : PKCS#12 형식의 인증서 확장자로 쓰임

여기서 중요하게 기억해두어야 할 것은 SSL 과 TLS 입니다. SSL는 보안을 위해 사용하는 키카드 정도로 생각하시면 됩니다. 보통 공인 인증된 기관에서 해당 파일을 발급해주고 이를 사이트나 각 서버들에 적용하면 해당 패킷들이 암호화되어 쉽게 알아볼 수 없는 상태가 됩니다. TLS 는 이런 SSL의 업그레이드로 하는 역할은 서로 동일합니다. 또 crs, crt 는 인증서 서명에 관련에 파일(아래 좀 더 다룰 예정입니다)이고 ca는 이런 crt crs 등을 발급해서는 공인인증기관이라고 생각하시면 편할 것 같습니다.

 

참고로 SSL 에 대한 부분은 제가 작성한 아래 글을 보셨던 분이라면 FTPS 를 설정하시면서 분명 한번 SSL 인증서를 만들어보셨을 것이라고 생각합니다. 그때는 개념을 제대로 짚고 넘어가지 않았지만 이번에는 최소한 SSL과 TLS, CSR과 CRT, X.509 정도의 개념은 익히고 넘어가주시기 바랍니다.

2021.04.04 - [토이 프로젝트 - 라즈베리파이로 이것저것] - FTP 설치 및 보안을 위한 Jail & FTPS 설정 - (2)

 

FTP 설치 및 보안을 위한 Jail & FTPS 설정 - (2)

2021.04.04 - [토이 프로젝트 - 라즈베리파이로 이것저것] - FTP 설치 및 보안을 위한 Jail & FTPS 설정 - (1) 지난 글에서는 FTP 설치 및 PASSIVE FTP 로 전환하는 내용을 썼는데요 이번에는 보안을 위한 FTP Jai.

terianp.tistory.com

 

마지막으로 dovecot 과 postfix 에 대해서 간단히 설명하겠습니다.

먼저 dovecot 은 Linux/Unix 계열 시스템용 IMAP 과 POP3 를 사용하는 전자메일 서버 입니다. 주로 목적은 메일 저장, 즉 메일 수신이며 해당 패키지를 설치한 후 Outlook 등의 메일 프로그램을 사용하여 연동하면 보다 쉽게 사용할 수 있습니다.

다음으로 postfix 는 이름에도 알 수 있듯 메일을 송신하기 위한 패키지 입니다. SMTP, SMTPS 프로토콜을 사용 합니다.

 

2. 메일 서버 구축 순서

1. SSL 인증서 생성

2. postfix 설치 및 설정 : 각종 파일 설정 , SSL 인증서 설정 

3. dovecot 설치 및 설정  : 각종 파일 설정 , SSL 인증서 설정

4. 유저별 메일 박스 설정 : 유저별 메일 박스 생성 및 설정 파일 확인

5. Outlook 프로그램 연동

댓글