1.2. LDAP 인증을 사용하여 Dovecot 서버 설정
인프라에서 LDAP 서버를 사용하여 계정을 저장하는 경우 Dovecot 사용자를 인증할 수 있습니다. 이 경우 디렉터리에서 계정을 중앙에서 관리하며 사용자는 Dovecot 서버의 파일 시스템에 대한 로컬 액세스 권한이 필요하지 않습니다.
중앙 집중식으로 관리되는 계정은 복제로 여러 Dovecot 서버를 설정하여 high availability를 사용할 수 있도록 하는 경우에도 유용합니다.
1.2.1. Dovecot 설치 링크 복사링크가 클립보드에 복사되었습니다!
dovecot
패키지는 다음을 제공합니다.
-
Dovecot
서비스와 유지 관리를 위한 유틸리티 - Dovecot가 요청 시 시작되는 서비스(예: 인증)
- 서버 측 메일 필터링과 같은 플러그인
-
/etc/dovecot/
디렉터리의 구성 파일 -
/usr/share/doc/dovecot/
디렉터리에 있는 문서
프로세스
dovecot
패키지를 설치합니다.dnf install dovecot
# dnf install dovecot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Dovecot가 이미 설치되어 있고 정리 구성 파일이 필요한 경우
/etc/dovecot/
디렉터리의 이름을 변경하거나 제거하십시오. 그런 다음 패키지를 다시 설치합니다. 구성 파일을 제거하지 않으면dnf reinstall dovecot
명령이/etc/dovecot/
의 구성 파일을 재설정하지 않습니다.
다음 단계
1.2.2. Dovecot 서버에서 TLS 암호화 구성 링크 복사링크가 클립보드에 복사되었습니다!
Dovecot는 안전한 기본 구성을 제공합니다. 예를 들어 네트워크를 통해 암호화된 인증 정보 및 데이터를 전송하도록 TLS가 기본적으로 활성화됩니다. Dovecot 서버에서 TLS를 구성하려면 인증서 및 개인 키 파일에 대한 경로만 설정하면 됩니다. 또한 Diffie-Hellman 매개변수를 생성하고 사용하여 완벽한 PFS(forward secrecy)를 제공하여 TLS 연결의 보안을 강화할 수 있습니다.
사전 요구 사항
- Dovecot가 설치되어 있습니다.
다음 파일이 서버의 나열된 위치에 복사되었습니다.
-
서버 인증서:
/etc/pki/dovecot/certs/server.example.com.crt
-
개인 키:
/etc/pki/dovecot/private/server.example.com.key
-
CA(인증 기관) 인증서:
/etc/pki/dovecot/certs/ca.crt
-
서버 인증서:
-
서버 인증서의
주체 DN
필드의 호스트 이름은 서버의 FQDN(정규화된 도메인 이름)과 일치합니다. - FIPS 모드가 활성화된 경우 클라이언트는 확장 마스터 시크릿(Extended Master Secret) 확장을 지원하거나 TLS 1.3을 사용해야 합니다. TLS 1.2 연결이 없는 경우 실패합니다. 자세한 내용은 Red Hat Knowledgebase 솔루션 TLS 확장 "확장 마스터 시크릿" 적용 을 참조하십시오.
프로세스
개인 키 파일에 대한 보안 권한을 설정합니다.
chown root:root /etc/pki/dovecot/private/server.example.com.key chmod 600 /etc/pki/dovecot/private/server.example.com.key
# chown root:root /etc/pki/dovecot/private/server.example.com.key # chmod 600 /etc/pki/dovecot/private/server.example.com.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Diffie-Hellman 매개변수를 사용하여 파일을 생성합니다.
openssl dhparam -out /etc/dovecot/dh.pem 4096
# openssl dhparam -out /etc/dovecot/dh.pem 4096
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버의 하드웨어 및 엔트로피에 따라 4096비트로 Diffie-Hellman 매개변수를 생성하는 데 몇 분이 걸릴 수 있습니다.
/etc/dovecot/conf.d/10-ssl.conf
파일에서 인증서 및 개인 키 파일의 경로를 설정합니다.ssl_cert
및ssl_key
매개변수를 업데이트하고 서버의 인증서 및 개인 키의 경로를 사용하도록 설정합니다.ssl_cert = </etc/pki/dovecot/certs/server.example.com.crt ssl_key = </etc/pki/dovecot/private/server.example.com.key
ssl_cert = </etc/pki/dovecot/certs/server.example.com.crt ssl_key = </etc/pki/dovecot/private/server.example.com.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ssl_ca
매개변수의 주석을 제거하고 CA 인증서의 경로를 사용하도록 설정합니다.ssl_ca = </etc/pki/dovecot/certs/ca.crt
ssl_ca = </etc/pki/dovecot/certs/ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ssl_dh
매개변수의 주석을 제거하고 Diffie-Hellman 매개변수 파일의 경로를 사용하도록 설정합니다.ssl_dh = </etc/dovecot/dh.pem
ssl_dh = </etc/dovecot/dh.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
중요Dovecot가 파일에서 매개변수 값을 읽도록 하려면 경로는 선행 < 문자로 시작해야 합니다.
다음 단계
1.2.3. 가상 사용자를 사용하도록 Dovecot 준비 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 Dovecot는 서비스를 사용하는 사용자로 파일 시스템에서 많은 작업을 수행합니다. 그러나 이러한 작업을 수행하기 위해 하나의 로컬 사용자를 사용하도록 Dovecot 백엔드를 구성하면 다음과 같은 몇 가지 이점이 있습니다.
- Dovecot는 사용자의 ID(UID)를 사용하는 대신 특정 로컬 사용자로 파일 시스템 작업을 수행합니다.
- 사용자는 서버에서 로컬로 사용할 수 없습니다.
- 모든 Cryostat 및 사용자별 파일을 하나의 루트 디렉터리에 저장할 수 있습니다.
- 사용자는 관리 작업을 줄이기 위해 UID 및 그룹 ID(GID)가 필요하지 않습니다.
- 서버의 파일 시스템에 액세스할 수 있는 사용자는 이러한 파일에 액세스할 수 없기 때문에 자신의 Cryostat 또는 인덱스를 손상시킬 수 없습니다.
- 복제를 설정하는 것이 더 쉽습니다.
사전 요구 사항
- Dovecot가 설치되어 있습니다.
프로세스
vmail
사용자를 생성합니다.useradd --home-dir /var/mail/ --shell /usr/sbin/nologin vmail
# useradd --home-dir /var/mail/ --shell /usr/sbin/nologin vmail
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dovecot는 나중에 이 사용자를 사용하여 작업을 관리합니다. 보안상의 이유로
dovecot
또는dovenull
시스템 사용자를 이러한 목적으로 사용하지 마십시오./var/mail/
와 다른 경로를 사용하는 경우mail_spool_t
SELinux 컨텍스트를 설정합니다. 예를 들면 다음과 같습니다.semanage fcontext -a -t mail_spool_t "<path>(/.)?"* restorecon -Rv <path>
# semanage fcontext -a -t mail_spool_t "<path>(/.)?"* # restorecon -Rv <path>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow vmail
사용자에게/var/mail/
에 대한 쓰기 권한을 부여합니다.chown vmail:vmail /var/mail/ chmod 700 /var/mail/
# chown vmail:vmail /var/mail/ # chmod 700 /var/mail/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/dovecot/conf.d/10-mail.conf
파일에서mail_location
매개변수의 주석을 제거하고 이 매개 변수를 username 형식 및 위치로 설정합니다.mail_location = sdbox:/var/mail/%n/
mail_location = sdbox:/var/mail/%n/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 설정을 사용하면 다음을 수행합니다.
-
Dovecot는
단일
모드에서 높은 수준의dbox
box 형식을 사용합니다. 이 모드에서 서비스는maildir
형식과 유사하게 각 이메일을 별도의 파일에 저장합니다. -
Dovecot는 사용자 이름 경로에서
%n
변수를 확인합니다. 이 작업은 각 사용자에게 해당 username에 대한 별도의 디렉터리가 있는지 확인하는 데 필요합니다.
-
Dovecot는
다음 단계
1.2.4. LDAP를 Dovecot 인증 백엔드로 사용 링크 복사링크가 클립보드에 복사되었습니다!
LDAP 디렉터리의 사용자는 일반적으로 디렉터리 서비스에 자신을 인증할 수 있습니다. Dovecot는 이 기능을 사용하여 Cryostat 및 POP3 서비스에 로그인할 때 사용자를 인증할 수 있습니다. 이 인증 방법은 다음과 같은 몇 가지 이점이 있습니다.
- 관리자는 디렉터리에서 사용자를 중앙에서 관리할 수 있습니다.
- LDAP 계정에는 특수 속성이 필요하지 않습니다. LDAP 서버에 대해서만 인증할 수 있어야 합니다. 결과적으로 이 방법은 LDAP 서버에서 사용되는 암호 스토리지 체계와 독립적입니다.
- NSS(Name Service Switch) 인터페이스 및 PAM(Pluggable Authentication Modules) 프레임워크를 통해 서버에서 로컬로 사용할 필요가 없습니다.
사전 요구 사항
- Dovecot가 설치되어 있습니다.
- 가상 사용자 기능이 구성되어 있습니다.
- LDAP 서버와의 연결은 TLS 암호화를 지원합니다.
- Dovecot 서버의 RHEL은 LDAP 서버의 CA(인증 기관) 인증서를 신뢰합니다.
- 사용자가 LDAP 디렉터리의 다른 트리에 저장된 경우 디렉토리를 검색하기 위한 Dovecot 전용 LDAP 계정이 있습니다. 이 계정에는 다른 사용자의 고유 이름(DN)을 검색할 수 있는 권한이 필요합니다.
- FIPS 모드가 활성화된 경우 이 Dovecot 서버는 확장된 마스터 시크릿(Extended Master Secret) 확장을 지원하거나 TLS 1.3을 사용합니다. TLS 1.2 연결이 없는 경우 실패합니다. 자세한 내용은 Red Hat Knowledgebase 솔루션 TLS 확장 "확장 마스터 시크릿" 적용 을 참조하십시오.
프로세스
/etc/dovecot/conf.d/10-auth.conf
파일에서 인증 백엔드를 구성합니다.주석 처리에
는
.auth-*.conf.ext
인증 백엔드 구성 파일이 필요하지 않습니다. 예를 들면 다음과 같습니다#!include auth-system.conf.ext
#!include auth-system.conf.ext
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 행의 주석을 제거하여 LDAP 인증을 활성화합니다.
!include auth-ldap.conf.ext
!include auth-ldap.conf.ext
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
/etc/dovecot/conf.d/auth-ldap.conf.ext
파일을 편집하고 다음과 같이override_fields
매개변수를userdb
섹션에 추가합니다.userdb { driver = ldap args = /etc/dovecot/dovecot-ldap.conf.ext override_fields = uid=vmail gid=vmail home=/var/mail/%n/ }
userdb { driver = ldap args = /etc/dovecot/dovecot-ldap.conf.ext override_fields = uid=vmail gid=vmail home=/var/mail/%n/ }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 고정 값으로 인해 Dovecot는 LDAP 서버에서 이러한 설정을 쿼리하지 않습니다. 따라서 이러한 속성도 존재할 필요가 없습니다.
다음 설정으로
/etc/dovecot/dovecot-ldap.conf.ext
파일을 만듭니다.LDAP 구조에 따라 다음 중 하나를 구성합니다.
사용자가 LDAP 디렉터리의 다른 트리에 저장된 경우 동적 DN 조회를 구성합니다.
dn = cn=dovecot_LDAP,dc=example,dc=com dnpass = <password> pass_filter = (&(objectClass=posixAccount)(uid=%n))
dn = cn=dovecot_LDAP,dc=example,dc=com dnpass = <password> pass_filter = (&(objectClass=posixAccount)(uid=%n))
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dovecot는 지정된 DN, password 및 filter를 사용하여 디렉터리에 있는 인증 사용자의 DN을 검색합니다. 이 검색에서 Dovecot는 필터의
%n
을 사용자 이름으로 교체합니다. LDAP 검색에서는 하나의 결과만 반환해야 합니다.모든 사용자가 특정 항목에 저장된 경우 DN 템플릿을 구성합니다.
auth_bind_userdn = cn=%n,ou=People,dc=example,dc=com
auth_bind_userdn = cn=%n,ou=People,dc=example,dc=com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
LDAP 서버에 인증 바인딩을 활성화하여 Dovecot 사용자를 확인합니다.
auth_bind = yes
auth_bind = yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow URL을 LDAP 서버로 설정합니다.
uris = ldaps://LDAP-srv.example.com
uris = ldaps://LDAP-srv.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 보안상의 이유로 LDAPS 또는 LDAP 프로토콜을 통해
STARTTLS
명령을 사용하여 암호화된 연결만 사용합니다. 후자의 경우tls = yes
를 설정에 추가로 추가합니다.작업 인증서 검증의 경우 LDAP 서버의 호스트 이름이 TLS 인증서에 사용된 호스트 이름과 일치해야 합니다.
LDAP 서버의 TLS 인증서 확인을 활성화합니다.
tls_require_cert = hard
tls_require_cert = hard
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 DN을 사용자 검색을 시작할 DN으로 설정합니다.
base = ou=People,dc=example,dc=com
base = ou=People,dc=example,dc=com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 검색 범위를 설정합니다.
scope = onelevel
scope = onelevel
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dovecot는 지정된 기본 DN 및
하위
트리 범위에서만1단계
범위로 검색합니다.
/etc/dovecot/dovecot-ldap.conf.ext
파일에 보안 권한을 설정합니다.chown root:root /etc/dovecot/dovecot-ldap.conf.ext chmod 600 /etc/dovecot/dovecot-ldap.conf.ext
# chown root:root /etc/dovecot/dovecot-ldap.conf.ext # chmod 600 /etc/dovecot/dovecot-ldap.conf.ext
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 단계
1.2.5. Dovecot 구성 완료 링크 복사링크가 클립보드에 복사되었습니다!
Dovecot를 설치 및 구성한 후 firewalld
서비스에서 필요한 포트를 열고 서비스를 활성화 및 시작합니다. 그런 다음 서버를 테스트할 수 있습니다.
사전 요구 사항
Dovecot에서 다음이 구성되어 있습니다.
- TLS 암호화
- 인증 백엔드
- 클라이언트는 CA(인증 기관) 인증서를 신뢰합니다.
프로세스
사용자에게 Cryostat 또는 POP3 서비스만 제공하려면
/etc/dovecot/dovecot.conf
파일에서protocols
매개변수의 주석을 제거하고 필요한 프로토콜로 설정합니다. 예를 들어, POP3이 필요하지 않은 경우 다음을 설정합니다.protocols = imap lmtp
protocols = imap lmtp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로
imap
,pop3
,lmtp
프로토콜이 활성화됩니다.로컬 방화벽에서 포트를 엽니다. 예를 들어 CryostatS, Cryostat, POP3S 및 POP3 프로토콜의 포트를 열려면 다음을 입력합니다.
firewall-cmd --permanent --add-service=imaps --add-service=imap --add-service=pop3s --add-service=pop3 firewall-cmd --reload
# firewall-cmd --permanent --add-service=imaps --add-service=imap --add-service=pop3s --add-service=pop3 # firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dovecot
서비스를 활성화하고 시작합니다.systemctl enable --now dovecot
# systemctl enable --now dovecot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Mozilla Thunderbird와 같은 메일 클라이언트를 사용하여 Dovecot에 연결하고 이메일을 읽습니다. 메일 클라이언트의 설정은 사용하려는 프로토콜에 따라 다릅니다.
Expand 표 1.2. Dovecot 서버에 연결 설정 프로토콜 포트 연결 보안 인증 방법 IMAP
143
STARTTLS
PLAIN[a]
IMAPS
993
SSL/TLS
PLAIN[a]
POP3
110
STARTTLS
PLAIN[a]
POP3S
995
SSL/TLS
PLAIN[a]
[a] 클라이언트는 TLS 연결을 통해 암호화된 데이터를 전송합니다. 결과적으로 인증 정보가 공개되지 않습니다.기본적으로 Dovecot는 TLS가 없는 연결에 대한 일반 텍스트 인증을 허용하지 않으므로 이 테이블에는 암호화되지 않은 연결에 대한 설정이 나열되지 않습니다.
기본값이 아닌 값을 사용하여 구성 설정을 표시합니다.
doveconf -n
# doveconf -n
Copy to Clipboard Copied! Toggle word wrap Toggle overflow