
iRedMail은 모든 오픈 소스 소프트웨어를 통합하여, 하나의 메일 서버를 손쉽게 구축할 수 있도록 구성된 통합 솔루션입니다. 주요 장점은 다음과 같습니다.
- 개인 또는 기업 서버에 직접 메일 데이터를 저장하므로, 개인 정보 보호 측면에서 유리
- 신뢰할 수 있는 오픈 소스 구성 요소 사용
- 기본적으로 최신 TLS 기반 보안 설정 적용 (POP3/IMAP/SMTP/HTTPS), 단 인증서는 별도로 적용 필요
- 웹 메일과 웹 관리자 페이지 제공 (Roundcube, iRedAdmin 등)
- 실시간 시스템 및 애플리케이션 모니터링 오픈 소스 제공 (Netdata)
- 사용자 계정 생성에 라이선스 제약 없음 (무제한 생성 가능)
- 주요 리눅스 및 BSD 계열 OS에서 설치 가능
- 선호하는 백엔드 데이터베이스 선택 가능 (OpenLDAP, MariaDB, PostgreSQL 등)
- 스팸 필터 및 바이러스 백신 통합 적용 (SpamAssassin, ClamAV 등)
메일 서버를 구축할 경우, 사용자는 도메인 주소(구입)에 다음 레코드 「A, MX, TXT, SPF, DKIM」들만 등록해 주면 됩니다. 이번 포스팅에서는 설치 과정과 간단한 작동 테스트 위주로 진행하겠습니다. 문제가 없다면, 이후 인증서 적용 및 다양한 활용 방법에 대해서도 별도로 포스팅할 예정입니다.
◈ 오픈소스 솔루션 소개
| iRedMail [공식 홈페이지] | 메일 서버 구축용 오픈 소스 통합 프로젝트 팀 |
| Rocky Linux [공식 홈페이지] | CentOS 창립자인 Gregory Kurtzer에 의해 별도의 커뮤니티 중심, 엔터프라이즈급 운영체제 100% 목표로 버그 별 호환될 수 있도록 하는 Linux로 개발된 OS 입니다. |
| Postfix [공식 홈페이지] | IBM 보안 전문가가 만든 무료 오픈 소스 MTA(메일 전송 에이전트)로 인터넷을 통해 다른 서버로 전자 메일을 라우팅하고 SMTP 프로토콜을 이용해 전달하는 역할을 합니다. |
| Dovecot [공식 홈페이지] | 보안 위주로 제공하고 있는 Linux/Unix계열 시스템 용 오픈 소스 IMAP/POP3 서비스입니다. |
| MariaDB [공식 홈페이지] | 이제는 누구나 알고 있는 관계형 데이터베이스(DB) 관리 시스템 오픈 소스 입니다. 여기서는 RoundCube(웹메일) 및 사용자(로그인 정보)계정을 보관하기 위해 사용됩니다. |
| RoundCube [공식 홈페이지] | 메일을 읽고 쓰고 발송할 수 있는 인터페이스를 제공하는 오픈 소스용 웹메일 입니다. 상용 메일 솔루션만큼은 아니지만 기본적인 MIME지원, 주소록, 폴더 조작, 메시지 검색 및 맞춤법 검사를 포함한 이메일 클라이언트와 비슷하게 기능을 제공 하고 있습니다. |
| Mlmmj [공식 홈페이지] | 메일링 리스트 관리자. iRedMail-0.9.8 이상 릴리스에 제공됩니다. |
| Amavisd-new [공식 홈페이지] | Postfix와 SpamAssassin, ClamAV 간의 고성능 및 안정적인 인터페이스 |
| SpamAssassin [공식 홈페이지] | Apache SpamAssassin은 시스템 관리자에게 이메일을 분류하고 스팸(요청하지 않은 대량 이메일)을 차단할 수 있는 필터를 제공, Apache Software Foundation(ASF)의 프로젝트 |
| ClamAV [공식 홈페이지] | 트로이 목마, 바이러스, 맬웨어 및 기타 악성 위협을 탐지하는 백신 엔진 |
| SOGo Groupware [공식 홈페이지] | 기업 및 커뮤니티를 위한 오픈 소스 웹메일, 캘린더(CalDAV), 연락처(CardDAV), 작업 및 ActiveSync 서비스가 포함되어 있음, 해당 포스팅에서는 제외(적용 테스트 필요) |
| Fail2ban [공식 홈페이지] | 로그 파일을 검사하고 악성 징후가 나타나는 비정상적인 IP를 차단합니다. |
| iRedAPD [공식 홈페이지] | iRedMail 팀이 개발한 간단한 Postfix 정책 서버로, SRS(Sender Rewrite Scheme)를 지원합니다. 하위 프로젝트로 iRedMail에 기본적으로 설치 및 활성화되어 있습니다. |
◈ [설치환경 및 준비물]
릴리즈 설치 테스트 : 2025-07-04
※ 실제 클라우드(CLOUD)에 공인 IP를 할당하여 메일 서버를 구축했습니다.
| 서버준비 | Naver CLOUD, Rocky Linux 9.x 설치 서버 [포스팅 참고] ※ VMware Workstation에서 테스트 후 실서버에 적용해보았습니다. |
| 서버 스펙 | CPU(2코어), Memory(4GB), 스토리지(20GB) ※ 메모리는 최소 4GB 이상 |
| OS Version | Rocky Linux release 9.6 (Blue Onyx) ※ Update 이후 |
| 커널(Kernel) | 5.14.0-570.18.1.el9_6.x86_64 ※ Update 이후 |
설치 문서 : https://docs.iredmail.org/install.iredmail.on.rhel.html
사용된 오픈 소스 구성 요소(메일 흐름도 참고) : https://docs.iredmail.org/used.components.html
iRedMail에서 사용하는 네트워크 포트 : https://docs.iredmail.org/network.ports.html
◈ STEP① Rocky Linux 9.x 설치 후 준비 과정
ⓐ 전체 패키지 업데이트 하기
※ 오픈 소스는 한 번 도입하면 이후 보안 패치나 기능 수정 시 어려움이 발생하는 경우가 많습니다. 특히 메일 서버처럼 외부에 노출되기 쉬운 서비스는 스패머(spammer) 들의 주요 타깃이 되기 때문에, 보안을 위해 관련 패키지와 의존성 모듈을 항상 최신 버전으로 유지하는 것이 매우 중요합니다.
[root@localhost]# dnf update

ⓑ iptables 방화벽 변경 및 웹(Web) 접근을 위한 기본 포트 허용 「선택 사항」
※ 기본 설치 방화벽은 Firewall이며, 앞단 별도의 웹 방화벽이 있다면 중지하거나 변경
[root@localhost]# systemctl stop firewalld (firewalld 중지)
[root@localhost]# systemctl mask firewalld (firewalld 자동시작 중지)
[root@localhost]# dnf install -y iptables-services (iptables 서비스 관련 패키지 설치)
[root@localhost]# systemctl enable iptables (iptables 자동 시작)
[root@localhost]# systemctl start iptables (iptables 시작)
[root@localhost]# iptables -nL (적용 확인)
[root@localhost]# /etc/sysconfig/iptables (설정 기본경로)
※ 수신 SMTP(25 Port), 웹 접속 HTTP(80 Port), HTTPS(443 Port)을 위해 임시 허용

ⓒ SELinux 비활성화 (시스템 재부팅 필요, 영구 적용)
[root@localhost]# sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config (비활성화)
[root@localhost]# cat /etc/selinux/config | grep disabled (변경 확인)
# disabled - No SELinux policy is loaded.
SELINUX=disabled

ⓓ 호스트 등록 및 로컬 시간 설정
※ 본인이 가지고 있는 도메인을 호스트로 등록합니다. 아래는 제가 실제 구입한 도메인입니다. 외부에서 메일을 수신받기 위한 서버 이름이라고 생각하시면 됩니다.
[root@localhost]# hostnamectl set-hostname mail.foxydog.co.kr (호스트 변경)
[root@localhost]# timedatectl set-timezone Asia/Seoul (타임존 변경)
[root@localhost]# hostname (호스트 확인)
mail.foxydog.co.kr

ⓔ 추가 저장소 설치 및 활성화
※ 다양한 오픈 소스를 설치하므로 기존 저장소에는 없는 버전이나 의존성 라이브러리를 설치하기 위해 추가 저장소를 활성화합니다.
[root@localhost]# dnf install epel-release -y (EPEL 저장소 추가)
[root@localhost]# dnf config-manage --set-enabled crb (crb 저장소 활성화)

◇ EPEL (Extra Packages for Enterprise Linux) 저장소, Fedora 프로젝트에서 제공하는 RHEL 호환용 추가 패키지 저장소
◇ crb (CodeReady Builder) 저장소, RHEL 호환 계열에서 개발(라이브러리)/빌드 도구 패키지 포함
ⓕ 패키지 업데이트 및 SELinux 적용을 위해 서버 재시작
[root@localhost]# reboot
◈ STEP② iRedMail 오픈 소스 다운로드 및 설치
ⓐ 오픈 소스 다운로드 및 압축 해제
※ 공식 다운로드 사이트 : https://www.iredmail.org/download.html

※ URL 주소는 동일하며, 버전 숫자만 최신 버전 나올 시 수정하시면 됩니다.
[root@localhost]# wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.7.4.tar.gz (다운로드)
[root@localhost]# ls
1.7.4.tar.gz (소스 다운로드 확인)
[root@localhost]# tar -xvf 1.7.4.tar.gz (압축 해제)


ⓑ 자동 설치 시작
[root@localhost]# cd iRedMail-1.7.4/ (경로 이동)
[root@localhost]# chmod a+x iRedMail.sh (실행 권한 부여)
[root@localhost]# ./iRedMail.sh (설치 스크립트 실행)

ⓒ 설치 화면(스크린샷 순서 참고)












[root@localhost]# reboot (시스템 재시작)
◈ STEP③ 네임서버 (DNS) 레코드 설정「중요」
※ 서버 호스트 네임을 IP로 설정해도 메일 발송은 가능합니다. 하지만 메일 수신의 경우, 내부 도메인 간에는 주고받을 수 있어도 외부에서 메일을 수신받기 위해서는 반드시 도메인의 네임서버(DNS)에 MX 레코드를 등록해야 합니다. 아래는 A, MX 레코드 등록 예시입니다. 도메인을 판매하는 업체 대부분 사용자가 직접 관리할 수 있는 DNS 페이지가 제공됩니다.

ⓐ DNS 적용 확인 방법 (nslookup, dig 명령어도 있으나 제외)
※ 네임서버 적용 시 바로 반영되지 않고, 전파 시간(DNS Propagation Time)이라는 개념이 존재합니다. 이때 관여하는 게 TTL(Time To Live)이며 DNS 레코드가 캐시 서버에 저장되는 유효 시간을 의미합니다. 초 단위로 설정되며, 예를 들어 TTL이 600초(10분)로 설정되어 있다면, 해당 정보는 캐시 서버에 10분 동안 유지되며 다시 조회(전파)됩니다. 값이나 위치가 자주 바뀌지 않는 환경이라면 TTL 값을 길게 설정하는 것이 좋고, 반대로 값이 자주 변경되는 경우에는 짧게 설정하는 것이 유리합니다. 단, TTL을 너무 짧게 설정하면 잦은 DNS 질의로 네임서버에 부담을 줄 수 있으니 주의가 필요합니다. 특히 도메인 정보가 많은 경우에는 더욱 그렇습니다.
[root@localhost]# nslookup -type=mx foxydog.co.kr (MX 레코드)
Non-authoritative answer: foxydog.co.kr mail exchanger = 10 mail.foxydog.co.kr. (정상 응답)
[root@localhost]# nslookup -type=a mail.foxydog.co.kr (A/AAAA 레코드)
Non-authoritative answer: Name: mail.foxydog.co.kr / Address: 공인IP (정상 응답)
[root@localhost]# nslookup -type=txt foxydog.co.kr (TXT 레코드)
Non-authoritative answer: foxydog.co.kr text = "v=spf1 ip4:공인IP ~all" (정상 응답)


◈ STEP④ 웹 메일, 웹 관리자, 모니터링 사이트 접속 테스트
ⓐ iRedAdmin (웹 관리자) 접속
URL : http(s)://mydomainhost/iredadmin/





ⓑ RoundCube (웹 메일) 접속
URL : http(s)://mydomainhost/mail/
※ 「2025-06-10」 KISA에서 Roundcube 제품의 보안 취약점 관련 공지가 게시되었습니다.(관련 링크 참고)
해당 시스템에는 이미 취약점이 해결된 Roundcube 1.6.11 버전「2025-06-01 배포」이 설치되어 있어, 별도의 추가 조치는 필요하지 않습니다.


ⓒ Netdata (웹 모니터링) 접속 「설치 옵션 선택 시」
URL : http(s)://mydomainhost/netdata/
※ Netdata 웹 모니터링은 가볍고 실시간으로 다양한 시스템 및 애플리케이션의 성능을 모니터링할 수 있는 우수한 오픈 소스 도구입니다. 단, 단일 서버에서 리소스 자원이 한정적인 환경이라면, 메일 서버의 안정성을 위해 iRedMail 설치 시 Netdata 항목을 제외하는 것도 고려해 볼 수 있습니다. 필수 설치 항목은 아니며, 트래픽 확인이 주요 목적이라면 MRTG와 같은 네트워크 트래픽 전용 모니터링 도구를 별도로 설치하는 것을 추천합니다.


◈ STEP⑤ 발송, 수신, POP3, IMAP, SMTP 테스트
ⓐ 발송

[root@localhost]# cd /var/log (경로 이동)
[root@localhost]# grep -i status=sent maillog | grep "postfix/smtp" (로그 확인)
※ 250 코드는 정상 응답을 의미합니다. 반면 4xx, 5xx 코드 응답을 받았다면, 수신 측에서 문제를 발생시켰거나 메일을 거부했을 가능성이 높습니다. 또한 메일 서버가 릴레이 구조로 설계되어 있다면, 내부 점검도 함께 필요합니다.
참고로, 대표적인 포털 메일 주소인 네이버(naver.com), 구글(gmail.com), 다음(daum.net)으로 모두 정상 발송이 되었습니다. 이는 발송 서버의 메일 호스트네임과 SPF 정책(IP 일치)만 제대로 설정되어 있다면, 일반적인 수신 메일 서버에서는 비교적 까다롭지 않게 메일을 수신한다는 것을 의미합니다.


ⓑ 답장 회신(수신)

[root@localhost]# cd /var/log (경로 이동)
[root@localhost]# grep -i "Passed CLEAN" maillog | grep "tag" (로그 확인)
※ 아래는 정상적으로 수신된 로그를 확인하는 모습입니다.
Amavis는 메일을 검사하는 일종의 필터 역할을 하며, 문제가 없을 경우 Passed CLEAN이라는 문구와 함께 통과됩니다. 이후, 수신자의 받은 편지함이나 설정된 필터(자동 분류) 기준에 따라 해당 메일이 개인 편지함으로 전달됩니다. 반대로 비정상적인 메일로 인식되는 경우, 메일이 거부되거나 스팸 편지함으로 분류될 수 있습니다.

ⓒ POP3, IMAP, SMTP 클라이언트 연결 (Outlook Classic 예시)
※ 진행 전 외부 클라이언트에서 접근하기 위한 포트 허용 POP3S(995), IMAPS(993), SMTP(587)




[root@localhost]# tail -f /var/log/dovecot/pop3.log (POP3 실시간 로그 확인)
[root@localhost]# tail -f /var/log/dovecot/imap.log (IMAP 실시간 로그 확인)
※ POP3 서비스는 새로 받은 편지함의 메일 정보만 클라이언트로 다운로드하기 때문에 서버에 미치는 영향이 적은 편입니다. 반면, IMAP은 받은 편지함뿐만 아니라 보낸 편지함, 스팸 편지함, 휴지통, 개인 편지함등 모든 편지함을 실시간으로 동기화하기 때문에, 사용자 수와 메일량이 많아질수록 서버 부하가 증가합니다. 실서버에서 운영하는 경우, 서버 사양을 고려하여 IMAP 사용 자체를 제한하는 것도 하나의 방법이 될 수 있습니다.


◈ 마치며
iRedMail은 오픈 소스 소프트웨어의 모든 구성 요소를 통합하여, 사용자가 직접 메일 서버를 구축할 수 있도록 무료로 배포하는 매우 고마운 프로젝트입니다. 필자는 학습 목적을 위해 원클릭 설치 방식이 아닌, 각 구성 요소를 개별적으로 설정하며 진행했지만, 최근에는 이렇게 통합 패키지 형태로 제공하는 사례가 많이 늘었습니다. 이 역시 오픈 소스 커뮤니티의 가장 큰 장점 중 하나라고 생각합니다.
물론 기업 입장에서는 무료 배포가 마케팅 수단의 일환이기도 하며, 사용 중 문제 발생 시 자체 해결이 어렵다면 일정 비용을 지불하고 공식 지원(SUPPORT)을 받을 수도 있습니다. 앞으로도 개인 메일 서버를 구축할 경우 자주 활용할 것 같으며, 새로운 정보가 생긴다면 내용을 추가 수정하거나, 분량이 많은 경우 별도의 포스팅으로 계속 추가해 나갈 예정입니다.
◇ Creative Commons license (크리에이티브 커먼즈 라이선스) 참고
URL : https://creativecommons.org/licenses/by-nd/3.0/us/
요약 내용 : 상업적인 목적을 포함하여 어떠한 매체나 형식으로든 자료를 복사하고 재배포할 수 있습니다. 사용자가 라이선스 조건을 준수하는 한, 라이선스 제공자는 이러한 자유를 철회할 수 없습니다. 단, 저작자 표시, 적절한 출처를 명시(변경 사항이 있는 경우에도 동일) 할 것, 자료를 리믹스, 변경하거나 이를 기반으로 제작하는 경우 수정된 자료를 배포하는 것을 금지
'◈『Open(Source) Solution』 > 메일서버(iRedMail)' 카테고리의 다른 글
| Rocky Linux - iRedMail (PTR, SPF, DKIM, DMARC) DNS 레코드 적용 (0) | 2025.07.11 |
|---|---|
| Rocky Linux - iRedMail (Nginx, Postfix, Dovecot) TLS 인증서 적용 (0) | 2025.07.07 |