Image

지식 기반 → Dovecot 메일 서버에 사서함 할당량 설치 및 구성

[가상 서버]
출판 날짜: 09.06.2023

postfixadmin에서 제공되는 할당량 지정 기능은 기본적으로 작동하지 않으며 구성이 필요합니다. 우리의 경우에는 Dovecot 서비스용 Ubuntu\Debian 메일 서버에 구성합니다. 이 구성을 사용하면 회사 사서함이 무거운 첨부 파일과 스팸으로 가득 차서 상당한 디스크 공간을 소비할 수 있으므로 vps 서버의 SSD 디스크 크기를 초과하지 않도록 사서함 제한을 설정할 수 있습니다.

이 가이드에서는 사용자가 이미 메일 서버 자체를 구성했으며 메일함 할당량을 구성해야 한다고 가정합니다. 메일 서버 설정에 대한 자세한 내용은 여기에서 확인할 수 있습니다:


사전 구성된 운영 체제가 포함된 VPS를 주문하고 VPS 서버 가격으로 기성 기업 메일 서버를 얻을 수도 있습니다.

1. Dovecot 서비스 설정

vi /etc/dovecot/conf.d/10-mail.conf

mail_plugins = $mail_plugins quota

파일을 저장해 보겠습니다.

vi /etc/dovecot/conf.d/20-imap.conf

protocol imap { mail_plugins = $mail_plugins imap_quota }

파일을 저장해 보겠습니다.

vi /etc/dovecot/conf.d/10-master.conf

service dict {

unix_listener dict { mode = 0660 user = vmail group = vmail } }

파일을 저장해 보겠습니다.

vi /etc/dovecot/conf.d/90-quota.conf

plugin { quota = dict:User quota::proxy::quota }

파일을 저장해 보겠습니다.

vi /etc/dovecot/dovecot.conf

dict { quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext }


vi /etc/dovecot/dovecot-dict-sql.conf.ext

connect = host=localhost dbname=postfix user=postfix password=postfix123

map {

pattern = priv/quota/storage table = quota2 username_field = username value_field = bytes

}

map {

pattern = priv/quota/messages table = quota2 username_field = username value_field = messages }

첫 번째 줄에는 메일 서버를 설정할 때 지정한 데이터베이스에 연결하기 위한 기존 데이터를 지정해야 합니다.

vi /etc/dovecot/dovecot-sql.conf.ext

user_query = SELECT CONCAT('/home/mail/',LCASE(domain),'/',LCASE(maildir)), 1024 AS uid, 1024 AS gid, CONCAT('*:bytes=', quota) AS quota_rule FROM mailbox WHERE username = '%u'

파일을 저장해 보겠습니다.

서비스를 다시 시작해 보겠습니다:

systemctl restart dovecot

할당량 작업은 postfixadmin에서 주어진 할당량으로 기존 사서함을 지정하는 명령을 사용하여 콘솔에서 확인할 수 있습니다:

doveadm quota get -u user@domain.tld

2. 할당량 초과에 대한 알림을 설정해 보겠습니다

vi /etc/dovecot/conf.d/90-quota.conf

구성에 줄 추가:

plugin { 
quota_warning = storage=95%% quota-warning 95 %u 
quota_warning2 = storage=80%% quota-warning 80 %u 
}

동일한 파일에서 서비스 할당량 경고 섹션을 양식으로 가져옵니다:

service quota-warning { 
executable = script /usr/local/bin/quota-warning.sh 
user = dovecot 
unix_listener quota-warning { 
user = vmail 
} 
}

알림을 보내는 스크립트 자체를 만들어 보겠습니다:

vi /usr/local/bin/quota-warning.sh

#!/bin/sh PERCENT=$1 USER=$2 cat << EOF | /usr/lib/dovecot/dovecot-lda -d $USER -o "plugin/quota=maildir:User quota:noenforcing" From: postmaster@domain.tld Subject: quota warning

Your mailbox is now $PERCENT% full.

EOF

파일을 저장해 보겠습니다. 귀하의 이메일로 전송될 이메일 주소를 변경하세요. 실행 권한 할당 및 설정 적용:

chmod +x /usr/local/bin/quota-warning.sh
systemctl restart dovecot

콘솔에서 스크립트를 확인해 봅시다:

/usr/local/bin/quota-warning.sh 85 user@domain.tld

사서함을 기존 사서함으로 변경하면 편지가 전송됩니다.

할당량 설정이 완료되면, 편지함 자체보다 큰 첨부파일이 포함된 편지를 편지함으로 보낼 경우, 편지는 배달되지 않으며 보낸 사람은 편지함이 가득 찼다는 메시지를 받게 됩니다. 이제 postfixadmin에 설정된 할당량이 구성되어 작동합니다.





No Comments Yet