[Security-team] Dovecot deliver SGID

Grigory Batalov =?iso-8859-1?q?bga_=CE=C1_altlinux=2Eorg?=
Пт Дек 21 18:28:54 MSK 2007


Здравствуйте!

Мне понадобилось ограничить размеры почтовых ящиков пользователей
(у всех по-разному), а поскольку на предполагаемом сервере будет
стоять Dovecot, я решил это сделать его квотами.

Квоты задаются в passwd-файле /etc/dovecot/passwd:

$ cat /etc/dovecot/passwd
bga::503:12::/home/bga::userdb_quota=dirsize:storage=10240
bga1::509:12::/home/bga1::userdb_quota=dirsize:storage=1024

Как видно, я указал пользователям группу mail(12), чтобы
а) доставка от их имени успешно осуществлялась в /var/mail/<user>,
   куда имеет право на запись группа mail
б) deliver не пытался сделать безуспешный setgid на их настоящую
   группу, например, bga(503), как он это обычно делает, потому что
в) я сделал sgid mail на deliver, чтобы тот мог читать/писать в сокет
   auth-master и получать информацию из passwd-файла:

$ ls -la /usr/lib64/dovecot/deliver /var/run/dovecot/auth-master
-rwxr-sr-x 1 root mail 538592 Aug  1 21:36 /usr/lib64/dovecot/deliver
srw-rw---- 1 root mail      0 Dec 21 16:58 /var/run/dovecot/auth-master

Не слишком ли это опрометчиво, разрешать локальным пользователям
запускать SGID deliver?




Конфиги:
---
/etc/postfix/main.cf:
mailbox_command = /usr/lib64/dovecot/deliver -d $LOGNAME

---
$ sudo egrep -v "^[[:space:]]*(#|$)" /etc/dovecot/dovecot.conf

protocols = imap imaps
ssl_cert_file = /var/lib/ssl/certs/dovecot.pem
ssl_key_file = /var/lib/ssl/private/dovecot.pem
mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_extra_groups = mail
mail_debug = yes
lock_method = fcntl
mbox_read_locks = fcntl
mbox_write_locks = fcntl
protocol imap {
}
protocol pop3 {
  pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
  postmaster_address = postmaster на vbga64.spb.altlinux.org
  mail_plugins = quota
  auth_socket_path = /var/run/dovecot/auth-master
}
auth default {
  mechanisms = plain
  passdb pam {
  }
  userdb passwd-file {
    args = /etc/dovecot/passwd
  }
  user = root
  socket listen {
    master {
      path = /var/run/dovecot/auth-master
      mode = 0660
      group = mail
    }
    client {#postfix
      path = /var/spool/postfix/private/auth
      mode = 0660
      user = postfix
      group = postfix
    }#postfix
  }
}
dict {
}
plugin {
}

----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/security-team/attachments/20071221/79a1e19c/attachment-0002.bin>


Подробная информация о списке рассылки Security-team