도커를 이용하여 메일서버를 구축하기

안녕하세요 모종의 이유로 블로그가 초기화된 후 처음으로 쓰는 글 입니다.

 

오늘은 도커에 메일 서버를 구축하고 사용하는법을 알아보도록 하겠습니다.

 

메일서버가 가볍고 저사양에서도 사용이 가능한것은 맞으나 부가적으로 사용하는것들이 있기 때문에

최소한 램 1GiB 이상을 권장합니다.

물론 요즘은 이정도 사양이 안되는것을 찾아보기가 더 힘들지요

 

mailserver/docker-mailserver 이미지를 사용할것입니다.

제작의도가 간단한 설치, 쉬운 설정이므로 말그대로 안성맞춤이지요.

 

*주의*

SSL을 필수로 사용하기 때문에 인증서가 없는경우 진행이 불가능 합니다.

해당 이미지는 윈도우상에서는 사용이 불가능하며 맥은 공식 지원은 하지 않지만 사용 가능합니다.

저는 리눅스를 사용하며 리눅스를 추천드립니다

 

wget https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master/setup.sh
wget https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master/docker-compose.yml
chmod a+x ./setup.sh

메일폴더를 만든후 코드를 사용하여 필요한 파일들을 다운받고 권한을 설정해 줍니다.
폴더 이름에 따라 도커 네트워크 이름과 스택 이름이 정해집니다.

 

원래는 변수 설정을 해야해서 필요한 파일이 두개가 더 있지만,

직접 도커 컴포즈 파일에 변수를 추가할 예정이므로 제가 서술하는 글에서는 패스하도록 하겠습니다.

 

해당 파일이 원본 파일입니다.

 

수정된 파일 입니다.

hostname: psvhost – 도커 호스트이름 아무 이름 넣어도 영향 x
domainname: mailtest.psvhost.kr – 메일서버로 사용할 도메인 주소
container_name: mailtest – 컨테이너 이름 지정

 

env_file: mailserver.env 변수를 직접 지정하므로 구문 삭제

 

 environment:
- ENABLE_SPAMASSASSIN=1  - 스팸처리
- SPAMASSASSIN_SPAM_TO_INBOX=1  - 스팸메일은 스팸메일함으로
- ENABLE_CLAMAV=1  - 백신
- ENABLE_FAIL2BAN=1  - 로그인 실패시 아이피 차단 활성화시 컴포즈의 cap_add에 NET_ADMIN 추가 필수
- ONE_DIR=1  - 메일을 /var/mail-state 에 저장하여 도커 리빌드시에도 지속적으로 메일 유지 가능
- SSL_TYPE=manual  - ssl인증서를 직접 지정할경우 수동
- SSL_CERT_PATH=/tmp/ssl/fullchain1.pem  - fullchain파일 위치
- SSL_KEY_PATH_=/tmp/ssl/privkey1.pem  - privkey파일 위치

 

volumes:
– /인증서폴더/:/tmp/ssl:ro  – 인증서가 있는 폴더를 도커의/tmp/ssl에 읽기전용으로 마운트
– /etc/localtime:/etc/localtime:ro
– /etc/timezone:/etc/timezone:ro  – 타임존과 시간을 현재 리눅스의 파일로 대체. 꼭 해야할 필요는 없음.

 

인증서가 없는경우 SSL_TYPE을 letsencrypt나 self-signed로 설정하면 될 가능성이 있지만 테스트해보지 않았습니다.

 

docker-compose up -d 를 사용하여 현재 폴더에 있는 컴포즈 파일을 빌드합니다.

 

로그를 보면 postfix-accounts.cf 파일이 없다는 말과 함께 LDAP를 사용하지 않으면 최소한 하나 이상의 계정이 필요하다는 로그가 나옵니다.

 

다운받아 놓은 setup스크립트를 사용하여 설정을 마무리 할 수 있습니다.

./setup.sh -h 명령으로 사용할 수 있는 명령어를 확인할 수 있습니다.

 

./setup.sh email add 이름@도메인
./setup.sh config dkim

이메일을 추가하고 dkim만 생성하면 기본 설치는 끝입니다.

*주의*

메일 이름은 대문자 없이 입력하셔야 합니다.

 

생성한 폴더안에 생긴 config폴더를 보면 opendkim/도메인/mail.txt 에 dkim키가 적혀있고
postfix-accounts.cf파일도 생긴것을 확인할 수 있습니다.

 

ready for work.가 떴다면 메일서버 구축 끝입니다. 축하드립니다.

 

 

 

관련 글

답글 남기기

이메일 주소를 발행하지 않을 것입니다.