메일 서버 구축후 점검해봐야 할 체크리스

메일 서버 프로덕션 레벨 체크리스트

1. 기본 구성 확인

서버 설정

  •  호스트명이 FQDN으로 올바르게 설정됨 (hostname -f)
  •  시스템 시간이 정확하고 NTP로 동기화됨 (timedatectl status)
  •  모든 필수 서비스가 실행 중 (systemctl status postfix dovecot rspamd redis-server apache2)
  •  필수 포트 개방 확인 (netstat -tulpn | grep -E ":(25|465|587|993|80|443)")

DNS 레코드

  •  MX 레코드가 올바르게 설정됨 (dig MX example.com)
  •  A/AAAA 레코드가 메일 서버를 가리킴 (dig A mail.example.com)
  •  PTR(역방향 DNS) 레코드가 메일 서버 IP에 대해 설정됨 (dig -x 서버IP)
  •  SPF 레코드가 올바르게 설정됨 (dig TXT example.com)
  •  DKIM 레코드가 올바르게 설정됨 (dig TXT [selector]._domainkey.example.com)
  •  DMARC 레코드가 올바르게 설정됨 (dig TXT _dmarc.example.com)

2. SMTP 구성 확인 (Postfix)

기본 설정

  •  SMTP 바인딩 주소 및 포트 확인 (postconf -n | grep inet_interfaces)
  •  허용된 네트워크 확인 (postconf -n | grep mynetworks)
  •  릴레이 도메인 설정 확인 (postconf -n | grep relay)
  •  메일박스 유형 및 위치 확인 (postconf -n | grep virtual_mailbox)

보안 설정

  •  SMTP 인증 활성화됨 (postconf -n | grep smtpd_sasl_auth)
  •  TLS 암호화 활성화됨 (postconf -n | grep tls)
  •  최소 TLS 프로토콜 버전 확인 (TLSv1.2 이상) (postconf -n | grep tls_protocols)
  •  안전한 암호화 스위트 사용 (postconf -n | grep tls_ciphers)
  •  SMTP 클라이언트 제한 설정 확인 (postconf -n | grep smtpd_client_restrictions)
  •  SMTP 발신자 제한 설정 확인 (postconf -n | grep smtpd_sender_restrictions)
  •  SMTP 수신자 제한 설정 확인 (postconf -n | grep smtpd_recipient_restrictions)
  •  속도 제한 설정 확인 (postconf -n | grep rate_limit)

실제 연결 테스트

  •  표준 SMTP 연결 테스트 (telnet mail.example.com 25)
  •  제출 포트(Submission) 연결 테스트 (openssl s_client -connect mail.example.com:587 -starttls smtp)
  •  SMTPS 연결 테스트 (openssl s_client -connect mail.example.com:465)
  •  인증 없이 릴레이 거부 테스트 (swaks --to external@gmail.com --server mail.example.com)
  •  인증 후 릴레이 허용 테스트 (swaks --to external@gmail.com --server mail.example.com --auth --auth-user=user@example.com --auth-password=password)

3. IMAP 구성 확인 (Dovecot)

기본 설정

  •  IMAP 바인딩 주소 및 포트 확인 (doveconf -n | grep 'imap.*listen')
  •  메일박스 형식 및 위치 확인 (doveconf -n | grep mail_location)
  •  인증 메커니즘 확인 (doveconf -n | grep auth_mechanisms)

보안 설정

  •  TLS 암호화 활성화됨 (doveconf -n | grep ssl)
  •  최소 TLS 프로토콜 버전 확인 (TLSv1.2 이상) (doveconf -n | grep ssl_min_protocol)
  •  안전한 암호화 스위트 사용 (doveconf -n | grep ssl_cipher_list)
  •  평문 인증 비활성화 확인 (SSL/TLS 필수) (doveconf -n | grep disable_plaintext_auth)
  •  권한 설정 확인 (uid/gid) (doveconf -n | grep -E 'mail_uid|mail_gid')

실제 연결 테스트

  •  IMAPS 연결 테스트 (openssl s_client -connect mail.example.com:993)
  •  인증 테스트 (curl -v 'imaps://mail.example.com' --user 'user@example.com:password')

4. 스팸 필터링 확인 (Rspamd)

기본 설정

  •  Rspamd 서비스 실행 중 (systemctl status rspamd)
  •  Rspamd-Postfix 연결 설정 확인 (postconf -n | grep milter)
  •  Redis 설정 확인 (cat /etc/rspamd/local.d/redis.conf)
  •  로깅 설정 확인 (cat /etc/rspamd/local.d/logging.inc)

모듈 확인

  •  DKIM 서명 모듈 활성화 및 설정 확인 (cat /etc/rspamd/local.d/dkim_signing.conf)
  •  SPF 확인 모듈 활성화 및 설정 확인 (cat /etc/rspamd/local.d/spf.conf)
  •  DMARC 확인 모듈 활성화 및 설정 확인 (cat /etc/rspamd/local.d/dmarc.conf)
  •  안티바이러스 모듈 활성화 및 설정 확인 (cat /etc/rspamd/local.d/antivirus.conf)
  •  그레이리스팅 설정 확인 (cat /etc/rspamd/local.d/greylist.conf)

기능 테스트

  •  DKIM 서명 테스트 (테스트 메일 발송 후 헤더 확인)
  •  스팸 메일 필터링 테스트 (GTUBE 테스트 패턴 사용)
  •  Rspamd 웹 인터페이스 접속 테스트 (https://mail.example.com/rspamd)
  •  Rspamd 통계 확인 (rspamdadm stat)

5. 웹메일 구성 확인 (Roundcube)

기본 설정

  •  웹서버 실행 중 (systemctl status apache2/nginx)
  •  Roundcube 웹 접속 가능 (https://mail.example.com/)
  •  데이터베이스 연결 확인 (cat /var/www/roundcube/config/config.inc.php | grep db_dsnw)
  •  IMAP/SMTP 설정 확인 (cat /var/www/roundcube/config/config.inc.php | grep -E 'default_host|smtp_server')

보안 설정

  •  HTTPS 활성화 및 리다이렉트 설정
  •  최소 TLS 버전 확인 (TLSv1.2 이상)
  •  안전한 암호화 스위트 사용
  •  HTTP 보안 헤더 설정 (X-XSS-Protection, X-Content-Type-Options, Content-Security-Policy)
  •  PHP 보안 설정 확인 (php -i | grep -E 'expose_php|display_errors|allow_url_fopen')

기능 테스트

  •  로그인 테스트
  •  메일 전송 테스트
  •  메일 수신 테스트
  •  첨부 파일 처리 테스트

6. TLS/SSL 보안 확인

인증서 설정

  •  유효한 SSL 인증서 설치됨 (certbot certificates)
  •  인증서 만료일 확인 (최소 30일 이상 남음)
  •  인증서 체인 완전성 확인 (openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt /etc/letsencrypt/live/mail.example.com/fullchain.pem)
  •  키 길이 확인 (RSA: 2048비트 이상, ECC: 256비트 이상) (openssl x509 -in /etc/letsencrypt/live/mail.example.com/cert.pem -text | grep "Public-Key")

TLS 구성 강도

  •  SMTP TLS 구성 강도 테스트 (testssl.sh --starttls smtp mail.example.com:25)
  •  IMAP TLS 구성 강도 테스트 (testssl.sh mail.example.com:993)
  •  웹 TLS 구성 강도 테스트 (testssl.sh mail.example.com:443)
  •  취약한 프로토콜 비활성화 (SSLv2/v3, TLSv1.0/1.1)
  •  취약한 암호화 스위트 비활성화 (RC4, DES, 3DES, MD5, SHA1)
  •  Perfect Forward Secrecy 지원

7. 인증 및 접근 제어

사용자 인증

  •  안전한 비밀번호 정책 적용
  •  평문 비밀번호 저장 없음 (해시 사용)
  •  인증 실패 제한 설정 (Fail2ban)
  •  IP 기반 접근 제한 설정 확인

권한 설정

  •  파일 및 디렉토리 권한 확인 (find /etc/postfix /etc/dovecot /var/mail -type f -perm /o=w)
  •  설정 파일 소유권 확인 (ls -la /etc/postfix/ /etc/dovecot/)
  •  메일박스 디렉토리 권한 확인 (ls -la /var/mail/vhosts/)
  •  로그 파일 권한 확인 (ls -la /var/log/mail*)

8. 네트워크 보안

방화벽 설정

  •  필수 포트만 개방되어 있음 (ufw status 또는 iptables -L)
  •  미사용 서비스 포트 차단됨
  •  관리 인터페이스(SSH 등)에 접근 제한 설정

네트워크 프로토콜

  •  IPv4 및 IPv6 설정 확인
  •  불필요한 프로토콜 비활성화
  •  TCP 래퍼 설정 확인 (cat /etc/hosts.allow /etc/hosts.deny)

9. 이메일 표준 준수 및 평판 확인

이메일 표준

  •  RFC 5321/5322 준수 (기본 SMTP 프로토콜)
  •  RFC 7208 준수 (SPF)
  •  RFC 6376 준수 (DKIM)
  •  RFC 7489 준수 (DMARC)

외부 테스트 및 평판

  •  Mail-tester.com 검사 결과 (최소 9/10 점수)
  •  Mxtoolbox.com 검사 결과 (경고 및 오류 없음)
  •  DKIM 검증기 테스트 (https://dkimvalidator.com/)
  •  스팸하우스 등 블랙리스트 등록 여부 확인 (dig +short example.com.dnsbl.sorbs.net)
  •  주요 메일 제공자(Gmail, Outlook 등)로 테스트 메일 전송 및 헤더 분석

10. 성능 및 모니터링

시스템 리소스

  •  CPU 사용량 확인 (top 또는 htop)
  •  메모리 사용량 확인 (free -m)
  •  디스크 사용량 확인 (df -h)
  •  디스크 I/O 상태 확인 (iostat)
  •  네트워크 트래픽 확인 (nethogs 또는 iftop)

큐 및 로그 확인

  •  메일 큐 크기 확인 (mailq | wc -l)
  •  오류 로그 확인 (grep -i "error\|warn\|fail" /var/log/mail.log | tail -50)
  •  지연된 메일 확인 (find /var/spool/postfix/deferred -type f | wc -l)
  •  Rspamd 로그 확인 (grep -i "error\|warn" /var/log/rspamd/rspamd.log | tail -50)

모니터링 설정

  •  로그 모니터링 및 알림 설정
  •  서비스 가용성 모니터링 설정 (Nagios, Zabbix, Prometheus 등)
  •  백업 설정 확인 및 테스트
  •  인증서 갱신 모니터링 설정

11. DKIM 세부 확인

DKIM 키 설정

  •  적절한 키 길이 사용 (2048비트 이상) (ls -la /var/lib/rspamd/dkim/)
  •  키 파일 권한 설정 확인 (ls -la /var/lib/rspamd/dkim/)
  •  DKIM 선택기(Selector) 설정 확인 (cat /etc/rspamd/local.d/dkim_signing.conf)

DKIM DNS 레코드

  •  TXT 레코드 형식 확인 (dig TXT [selector]._domainkey.example.com)
  •  TXT 레코드에 v=DKIM1 포함
  •  TXT 레코드에 올바른 p= (공개키) 포함
  •  추가 권장 태그 포함 (t=s, t=y 등)

DKIM 서명 검증

  •  실제 메일 발송 후 DKIM 서명 확인
  •  다양한 외부 서비스로 DKIM 검증 테스트
  •  DKIM 실패 시 로그 확인 (grep -i "dkim" /var/log/rspamd/rspamd.log)

12. SPF 세부 확인

SPF 레코드 설정

  •  SPF 레코드 구문 확인 (dig TXT example.com)
  •  레코드에 모든 송신 서버 포함 (IP, MX, A 등)
  •  적절한 제한 모드 설정 (-all, ~all)
  •  SPF 레코드 길이 제한 확인 (<= 255자, 10개 이하 룩업)

SPF 검증

  •  SPF 확인 메커니즘 작동 확인
  •  SPF 실패 테스트 (비승인 서버에서 발송)
  •  다양한 SPF 검증 도구 사용 테스트
  •  SPF 실패 시 로그 확인 (grep -i "spf" /var/log/rspamd/rspamd.log)

13. DMARC 세부 확인

DMARC 레코드 설정

  •  DMARC 레코드 구문 확인 (dig TXT _dmarc.example.com)
  •  정책 설정 확인 (p=none, p=quarantine, p=reject)
  •  하위 도메인 정책 설정 확인 (sp=)
  •  보고서 설정 확인 (rua=, ruf=)

DMARC 처리

  •  DMARC 정책 적용 확인
  •  DMARC 보고서 수신 및 분석 설정
  •  DMARC 실패 시 로그 확인 (grep -i "dmarc" /var/log/rspamd/rspamd.log)

14. 일일/주간 유지보수 체크리스트

일일 점검

  •  서비스 상태 확인
  •  로그 확인 (오류 및 경고)
  •  메일 큐 확인
  •  디스크 공간 확인
  •  백업 상태 확인

주간 점검

  •  보안 업데이트 설치
  •  SSL 인증서 만료일 확인
  •  스팸 필터 성능 검토
  •  DNS 레코드 확인
  •  방화벽 규칙 검토
  •  인증 실패 로그 검토
  •  DMARC 보고서 분석

15. 재해 복구 및 비상 대응

복구 절차

  •  메일 서버 복구 절차 문서화
  •  백업 복원 절차 테스트
  •  복구 시간 목표(RTO) 설정 및 검증
  •  비상 연락처 목록 작성 및 업데이트

비상 대응 계획

  •  보안 침해 대응 계획 수립
  •  서비스 중단 대응 절차 문서화
  •  스팸/피싱 공격 대응 절차 문서화

16. 규정 준수 확인

데이터 보호

  •  암호화 전송 강제 (TLS)
  •  저장 데이터 보호 (디스크 암호화 등)
  •  접근 제어 정책 구현

로깅 및 감사

  •  필수 로그 수집 및 보존
  •  로그 무결성 보호
  •  로그 분석 및 모니터링 설정

업계별 규정

  •  해당 산업 규정 준수 여부 확인 (GDPR, HIPAA, PCI DSS 등)
  •  개인정보 처리 정책 구현

정기 검사 일정

  1. 일일 검사: 서비스 상태, 로그, 메일 큐, 디스크 공간
  2. 주간 검사: 보안 업데이트, 스팸 필터, 인증 실패 로그
  3. 월간 검사: 전체 보안 설정, DNS 레코드, 방화벽 규칙
  4. 분기 검사: 외부 평판 및 블랙리스트 확인, 재해 복구 테스트
  5. 반기 검사: 전체 시스템 보안 감사, 규정 준수 확인

이 체크리스트를 통해 메일 서버가 프로덕션 환경에서 안정적이고 안전하게 운영될 수 있도록, 주요 구성 요소의 설정과 기능을 철저히 검증할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다