Zimbra 소개
공식 홈페이지 : https://www.zimbra.com/
Zimbra는 이메일 서버와 웹 클라이언트를 포함하는 협업 소프트웨어입니다. Zimbra는 Zimbra, Inc. 에서 개발되었으며, 2005년에 처음으로 Zimbra Collaboration Suite (ZCS) 릴리스 되었습니다. 하지만 이후 여러 회사를 거처 인수(매각)가 됩니다. [2007] 「야후(Yahoo)」 ▷ [2010] 「VMware」 ▷ [2013] 「텔리전트(Telligent Systems)」 ▶ [2015~2022(현재)] 「시나코(Synacor)」 회사에 최종 인수되어 지금까지 계속 개발을 해오고 있습니다. Zimbra는 여러 버전이 있으며 상업용으로 사용되는 Network Edition과 캘린더 및 연락처 동기화를 한 Outlook 연동 버전 Connector for Outlook 그리고 포스팅에서 설치해야 할 무료 공개 버전인 「Zimbra Collaboration Open Source 」 입니다.
설치환경 및 준비물
마지막 릴리즈 테스트 : [2022-09-21]
Zimbra Collaboration Open Source 버전 : 8.8.15
□ VMware Workstation 가상화에서 Rocky Linux 8.6 OS 준비 [포스팅 참고]
※ 최소 스펙으로 4 코어(CPU) / 4GB 메모리(RAM) 이상 세팅이 필요합니다. 그 이하는 테스트해보니 설치하다가 Out of memory로 행이 걸릴 확률이 높습니다!
□ [root@localhost ~]# dnf update [※ OS 설치 후 기본 패키지 최신 업데이트]
□ [root@localhost ~]# cat /etc/selinux/config | grep SELINUX [보안 설정]
SELINUX=disabled [빠른 테스트를 위해 비활성화, 서버 재시작 필요]
※ Zimbra는 설치 스크립트를 제공을 합니다. 소프트웨어에 필요한 모든 오픈 소스들을 자동으로 설치합니다. 다만, 설치 과정 중 DNS 네임서버를 체크하는 부분이 있는데 도메인이 없거나 네임서버의 A/MX 레코드 값이 세팅이 되어 있지 않다면 설치 도중 중단합니다. 때문에 Bind를 설치하여 내부의 가상 도메인을 인식할 수 있도록 세팅을 진행할 겁니다. 자세한 내용은 설치 과정에서 보여 드리겠습니다.
STEP01 → 호스트 파일 및 로컬 DNS 자동 구성
① 스크립트 다운「git」
자동으로 Bind를 설치하여 DNS를 구성할 수 있도록 Jmutai 개발자 분께서 스크립트를 배포 하고 있습니다.
[root@localhost ~]# git clone https://github.com/jmutai/scripts.git
[root@localhost ~]# cd scripts/zimbra/ [경로 이동]
② 첫 번째 스크립트 실행「prereqs」
[root@localhost zimbra]# ./zimbra_install_prereqs_rhel.sh
Internet connectivity is required for packages installation...
Press Enter key to continue: [Enter]
... Zimbra에 필요한 종속성 패키지 자동 설치 진행
Input Zimbra Base Domain. E.g example.com : eztest.com [본인 사용 도메인 입력]
Input Zimbra Mail Server hostname (first part of FQDN). E.g mail : mail [해당 값은 고정]
Please insert your IP Address : 192.168.150.153 [서버 IP 입력]
...
Input your timezone value, example Africa/Nairobi: Aaia/Seoul [시간 설정]
③ 두 번째 스크립트 실행「Bind」
[root@localhost zimbra]# ./zimbra_bind_setup_rhel.sh
Internet connectivity is required for packages installation...
Press key enter to continue [Enter]
... Bind 설치 및 존파일 생성 진행
※ 본인이 세팅한 도메인 정보와 동일하게 입력해야 합니다.
Input Zimbra Base Domain. E.g example.com : eztest.com [본인 사용 도메인 입력]
Input Zimbra Mail Server hostname (first part of FQDN). E.g mail: mail [해당 값은 고정]
Input Zimbra Server IP Address : 192.168.150.153 [서버 IP 입력]
④ 레코드 질의 테스트
[root@localhost zimbra]# dig eztest.com mx
... 응답 질의가 아래와 같이 나와야 정상입니다.
;; ANSWER SECTION:
eztest.com. 86400 IN MX 0 mail.eztest.com. [정상 패턴]
;; ADDITIONAL SECTION:
mail.eztest.com. 86400 IN A 192.168.150.153 [정상 패턴]
ns1.eztest.com. 86400 IN A 192.168.150.153
STEP02 → Zimbra 오픈 소스 다운
① 진행하기 전 방화벽 일시적 다운 및 추가 필요한 도구 툴 설치
[root@zmail ~]# systemctl stop firewalld
[root@zmail ~]# dnf install wget tar perl net-tools nmap-ncat -y
② Zimbra [공식 다운로드 사이트] 접속 및 정보 입력
③ Zimbra 다운로드 및 압축 해제
[root@localhost zimbra]# wget [링크 주소 복사]
[root@localhost zimbra]# tar zxvf zcs-8.8.15_GA_4362.RHEL8_64.20220721104405.tgz [압축 해제]
[root@localhost zimbra]# mv zcs-8.8.15_GA_4362.RHEL8_64.20220721104405 zcs [폴더 이름 변경]
[root@zmail ~]# cd zcs [경로 이동]
STEP03 → Zimbra 설치
① 설치 스크립트 실행
[root@zmail zcs]# ./install.sh
② Zimbra 설치 진행
Do you agree with the terms of the software license agreement? [N] Y [라이선스 동의]
Use Zimbra's package repository [Y] [Enter] [Zimbra 저장소 패키지 사용]
※ 원하는 패키지만 설치할 수 있지만 필자는 그냥 다 설치하겠습니다.
Select the packages to install [패키지 설치 선택]
Install zimbra-ldap [Y] [Enter]
Install zimbra-logger [Y] [Enter]
Install zimbra-mta [Y] [Enter]
Install zimbra-dnscache [Y] [Enter]
Install zimbra-snmp [Y] [Enter]
Install zimbra-store [Y] [Enter]
Install zimbra-apache [Y] [Enter]
Install zimbra-spell [Y] [Enter]
Install zimbra-memcached [Y] [Enter]
Install zimbra-proxy [Y] [Enter]
Install zimbra-drive [Y] [Enter]
Install zimbra-imapd (BETA - for evaluation only) [N] [Enter]
Install zimbra-chat [Y] [Enter]
Installing:
zimbra-core
zimbra-ldap
zimbra-logger
zimbra-mta
zimbra-dnscache
zimbra-snmp
zimbra-store
zimbra-apache
zimbra-spell
zimbra-memcached
zimbra-proxy
zimbra-drive
zimbra-patch
zimbra-mta-patch
zimbra-proxy-patch
zimbra-chat
The system will be modified. Continue? [N] Y [설치를 계속 진행]
※ 예상외 에러 메시지
Installing repo packages (11):
zimbra-core-components
zimbra-ldap-components
zimbra-mta-components
zimbra-dnscache-components
zimbra-snmp-components
zimbra-jetty-distribution
zimbra-store-components
zimbra-apache-components
zimbra-spell-components
zimbra-memcached
zimbra-proxy-components
...
ERROR: Unable to install required packages
Fix the issues with remote package installation and rerun the installer
추측 : 설치 스크립트가 Zimbra 저장소(Repo)를 찾지 못해 설치 도중 중단, Rocky Linux에서만 발생하는 버그로 보입니다. 다행히 공식 커뮤니티 사이트에 동일한 증상으로 문의한 내용이 있어 다음과 같이 해결 방법을 안내
※ 조치 방법
패키지 설치 초기화 후 Zimbra Repo 패키지만 직접 수동 설치
[root@localhost zcs]# dnf clean packages
196 파일이 삭제되었습니다
[root@localhost zcs]# dnf -y install zimbra-core-components zimbra-ldap-components zimbra-mta-components zimbra-dnscache-components zimbra-snmp-components zimbra-jetty-distribution zimbra-store-components zimbra-apache-components zimbra-spell-components zimbra-memcached zimbra-proxy-components [전체 한 줄]
[root@localhost zcs]# ./install.sh [다시 설치 스크립트 실행]
위 ②번 순서를 다시 진행, 아래와 같이 나온다면 이전 설치 시 생성된 /opt/zimbra 폴더를 삭제할 것인지에 물어보는데 삭제하지 않고 그냥 [엔터] 진행하시면 됩니다.
The Zimbra Collaboration Server does not appear to be installed,
yet there appears to be a ZCS directory structure in /opt/zimbra.
Would you like to delete /opt/zimbra before installing? [N] [Enter]
③ 에러가 없었을 경우 계속 진행
Running Post Installation Configuration:
Operations logged to /tmp/zmsetup.20220921-072118.log
Installing LDAP configuration database...done.
Setting defaults...
DNS ERROR resolving MX for mail.eztest.com
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes] Y [도메인 이름 변경]
Create domain: [mail.eztest.com] eztest.com [도메인 생성]
※ Zimbra 도메인 생성으로 앞에 서브도메인이 붙지 말아야 합니다.
Port conflicts detected! - Press Enter/Return key to continue [Enter]
※ 관리자 패스워드 설정 필요
Address unconfigured (**) items (? - help) 7
Select, or 'r' for previous menu [r] 4
Password for admin@eztest.com (min 6 characters): [WBpbbOdu] Mail123 [패스워드 입력]
Select, or 'r' for previous menu [r] r [마무리]
*** CONFIGURATION COMPLETE - press 'a' to apply
Select from menu, or press 'a' to apply config (? - help) a [설정 적용]
Save configuration data to a file? [Yes] Y [설정 파일 저장]
Save config in file: [/opt/zimbra/config.77881] [Enter]
Saving config in /opt/zimbra/config.77881...done.
The system will be modified - continue? [No] Y [시스템 수정, 설치 진행]
Setting local config values...done.
Initializing core config...Setting up CA...done.
Moving /tmp/zmsetup.20220921-072118.log to /opt/zimbra/log [세팅 로그]
Configuration complete - press return to exit [Enter] [최종 완료]
④ Zimbra 정상 구동 상태 확인
[root@localhost zcs]# su - zimbra [권한 변경]
[zimbra@mail ~]$ zmcontrol status [상태 확인]
[zimbra@mail ~]$ zmcontrol -v [설치 버전 확인]
Release 8.8.15_GA_4362.RHEL8_64_20220721104405 RHEL8_64 FOSS edition, Patch 8.8.15_P33
[zimbra@mail ~]$ zmcontrol stop [전체 서비스 중지]
[zimbra@mail ~]$ zmcontrol start [전체 서비스 시작]
STEP04 → 방화벽 재 시작 및 허용 포트 확인
「Zimbra Collaboration 에서 사용되는 포트 참고」
로컬 자체에서 처리하는 포트를 제외하고 외부 클라이언트에서 접근하기 위한 기본 포트를 허용해야 합니다.
STEP01 단계에서 스크립트에 의해 Firewall 방화벽에 자동으로 값이 들어가 있습니다.
[root@mail zones]# systemctl start firewalld [방화벽 시작]
[root@mail zones]# firewall-cmd --list-all [전체 등록 확인]
public (active)
target: default
icmp-block-inversion: no
interfaces: ens32
sources:
services: cockpit dhcpv6-client http https imap imaps pop3 pop3s smtp smtps ssh
ports: 7071/tcp 8443/tcp [포트가 오픈되어 있는지 확인]
protocols:
forward: no
포트(Port) | 프로토콜(Protocol) | Zimbra 서비스 | 설명 |
25 | SMTP | MTA | Postfix로 들어오는 메일 |
587 | SMTP(Submission) | MTA | TLS를 통한 메일 발송 |
465 | SMTPs | MTA | TLS를 통해 Postfix로 받는 메일 |
80 | HTTP | Mailbox / Proxy | 웹 메일 클라이언트 (8.0에서는 기본적으로 비활성화) |
443 | HTTPs | Mailbox / Proxy (Web Mail Client) |
TLS를 통한 HTTP 연결 |
8443 | HTTPs | Mailbox | Backend HTTP 연결 (프록시가 동일한 호스트에 구성된 경우) zimbraMailSSLB 바인드 주소 |
7071 | HTTPs | Mailbox | TLS를 통한 HTTP 관리 콘솔 |
110 | POP3 | Mailbox / Proxy | 메일 클라이언트 접속 |
995 | POP3s | Mailbox / Proxy | 메일 클라이언트 접속(TLS) |
143 | IMAP | Mailbox / Proxy | 메일 클라이언트 접속 |
993 | IMAPs | Mailbox / Proxy | 메일 클라이언트 접속(TLS) |
STEP05 → Zimbra 웹 관리자 및 메일 접속 확인
※ 테스트 가상 서버 로컬 사설 IP이므로 본인 PC에서만 접속이 가능합니다.
① 웹 관리자 접속 URL ▷ https://서버IP:7071/zimbraAdmin
② 웹 메일 접속 URL ▷ https://서버IP
마치며
아마도 Zimbra 운영을 해봐야 하는 상황이 올 수가 있어서 어떤 솔루션인지 미리 파악하기 위해 패키지 설치를 먼저 연습을 해보았습니다. 설치 스크립트를 제공하고 있어서 오히려 설치하기는 좀 더 편하네요. 일단 맛만 보았기 때문에 저도 어떤 오픈 소스로 구성되어 실행이 되고 있는지 확인 중입니다. 다음 포스팅은 개인 도메인으로 실제 네임서버에 연결하여 운영 중인 가상 서버에 직접 테스트해 볼 예정입니다.
'◈『Open(Source) Solution』 > 메일서버(Zimbra)' 카테고리의 다른 글
Rocky Linux - 짐브라(Zimbra) 메일서버 인증서 적용「Let's Encrypt」 (4) | 2022.10.05 |
---|---|
Rocky Linux - 짐브라(Zimbra) 메일서버 설치「실서버 구축」 (7) | 2022.09.26 |