Search
✉️

Modoboa로 사설망 메일서버 구축하기

Last update: @11/17/2023

메일서버 오픈소스와 Modoboa

외부망과 단절된 폐쇄망에서 사설 메일서버를 구축할 때 사용할 수 있는 오픈 소스가 여러가지 있다. 몇 가지 정리해보자면 아래와 같다.
이름
링크
 Github stars
라이센스
데모 버전
비고
Mail-in-a-Box
12.5k
CC0
Modoboa
2.7k
ISC
Mailcow
7.2k
GPL
Mailpile
8.8k
GPL
업데이트 중단됨
Mailu
5k
MIT
이 중 Modoboa가 심플해보여서 설치해보기로 했다.
Modoboa 플랫폼이 있고 여러 확장 프로그램이 있다. 웹메일도 확장 프로그램 중 하나인데, installer를 사용하면 웹메일이 포함된 메일 서버를 간단하게 설치할 수 있다.

링크

깃헙 저장소
플랫폼
modoboa
modoboa
웹메일 extention

Modoboa 설치

시스템 요구사항

OS: Debian based Linux
CPU: 2
RAM: 2GB
Disk: 10GB
Python 3.8+
Postgres 12+ or MariaDB 10.4+ or MySQL 8+ or sqlite3 or LDAP
공식 문서에 따른 Debian 외의 리눅스는 installer가 아니라 수동 설치를 해야한다. 하지만 유튜브 등지를 찾아보면 우분투 등에 설치하는 방법을 소개하는 영상도 있다.
나는 리눅스 컴퓨터가 없어서 윈도우 컴퓨터에 VirtualBox로 리눅스 가상환경을 구성했다. VirtualBox 구성은 주제에서 벗어나기 때문에 자세히는 다루지 않지만, 아래 설정으로 진행했다.
Debian 12.2.0 ISO 이미지를 사용했다(다운로드 페이지).
다운로드 페이지에서 amd64용을 눌러 다운받았다.
설정 → 네트워크 → 어댑터 1 → 어댑터에 브리지로 변경해준다.
Debian은 초기에 sudoers를 등록해줘야 했다.
$ su # 유저를 root로 변경 $ vi /etc/sudoers
Shell
복사
위 명령어로 sudoers 파일을 열어서 아래처럼 추가해주면 된다.
사용자이름 ALL=(ALL:ALL) ALL
Shell
복사
아래 명령어로 사용자로 돌아가 작업을 진행한다
$ su 사용자이름
Shell
복사

git 설치

Debian 이미지에 git이 기본으로 없어서 설치해줘야 했다. 먼저 아래 명령어로 패키지 매니저를 업데이트 해준다
$ sudo apt-get update && sudo apt-get upgrade -y
Shell
복사
아래 명령어로 깃을 설치하고
$ sudo apt install -y git
Shell
복사
잘 설치됐는 지 확인한다
$ git --version
Shell
복사

installer 설치 및 실행

아래 명령어를 순서대로 실행해서 installer를 설치하고 편집해준다.
$ git clone https://github.com/modoboa/modoboa-installer $ sudo python3 run.py --stop-after-configfile-check 도메인이름
Shell
복사
내부 사설망에서 쓸 것이기 때문에 도메인 이름은 아무거나 해도 된다. 여기서는 asd.com으로 하겠다.
아래 명령어로 설정 파일을 연다.
$ sudo vi installer.cfg
Shell
복사
[letsenctypt] email 부분 도메인 이름을 바꿔준다.
email = admin@asd.com
Shell
복사
아래 명령어로 hostname도 바꿔준다
$ sudo hostnamectl set-hostname mail.asd.com
Shell
복사
[database] 부분도 취향껏 바꿔준다. 나는 mysql로 했다. installer가 DB도 자동으로 설치 후 설정한다.
[database] engin = mysql host = 127.0.0.1 install = true
Shell
복사
아래 명령어로 설치를 시작한다.
$ sudo python3 ./run.py --interactive asd.com
Shell
복사
중간에 Y/n 나오면 y 해주고, 꽤 오래 기다리면 설치가 완료된다.

hosts 파일 변경

내부 DNS 서버가 없다면 그냥 간단히 hosts 파일을 변경해준다.
$ sudo vi /etc/hosts
Shell
복사
아래 한 줄 추가해준다
127.0.0.1 asd.com
Shell
복사
Debian에 기본 설치된 firefox로 가서 https://mailasd.com으로 접속해본다.
Advanced → Accept the Rist and Continue 눌러주면 들어가진다. TLS 인증서를 self-sign 했기 때문에 브라우저에서 안전하지 않음으로 뜬다.
아이디는 admin, 패스워드는 password 입력하면 어드민으로 접속할 수 있다.

서버 시간대 변경하기

한국어는 어차피 지원 안 돼서 언어는 변경해도 의미가 없다. 시간대를 변경해주자.
아래 명령어로 들어간다
$ sudo vi /srv/modoboa/instnace/instance/settings.py
Shell
복사
TIME_ZONE 변수를 찾아 Asia/Seoul로 변경해준다
TIME_ZONE = 'Asia/Seoul'
Python
복사
변경 후 uwsgi를 재시작해준다.
$ sudo service uwsgi restart
Shell
복사

다른 컴퓨터에서 메일서버 접속하기

메일 서버가 설치된 Debian에서 아래 명령어로 사설 IP 주소를 확인한다.
$ ip a
Shell
복사
같은 사설망 내부에 있는 컴퓨터의 hosts 파일에 위에 얻은 IP를 아래처럼 추가해준다.
192.168.xxx.xxx mail.asd.com
Shell
복사
install 시 사용했던 도메인 이름 앞에 mail 서브 도메인을 넣어주면 된다.
웹 브라우저로 https://mail.asd.com 접속을 해보면 아래같은 화면이 뜰 수도 있는데,
새로고침을 몇 번 하다보면 경고창이 뜨고, 고급 → 안전하지 않은 페이지로 이동을 누르면 접속할 수 있다.

References