Назад | Перейти на главную страницу

Postfix chroot jail не работает

Попытка настроить Postfix для запуска chrooted. Только небольшая информация об этом поступает из справочной страницы, на которой просто говорится, что нужно следовать инструкциям в master.cf. master.cf не требует пояснений, просто установите y в столбце chroot. НО НЕТ, это все равно не работает.

# pgrep master
12661

# ls -lh /proc/12661/root
lrwxrwxrwx 1 root root 0 Feb 23 22:03 /proc/12661/root -> /

Еще указывает на мой корень! Это означает, что он по-прежнему считывает информацию, связанную с пользователем (например, local_recipient_maps) из / etc / passwd, чего я не хочу. Я хочу использовать отдельный файл passwd в chroot. Я пробовал установить:

local_recipient_maps = $maps
maps=/var/spool/postfix/etc/passwd

но все равно ничего. Он по-прежнему читает из / etc / passwd.
Chroot env устанавливается в / var / spool / postfix, и все необходимые файлы и библиотеки там.

master.cf:

smtp      inet  n       -       y       -       -       smtpd
smtpd     pass  -       -       y       -       -       smtpd
pickup    unix  n       -       y       60      1       pickup
cleanup   unix  n       -       y       -       0       cleanup
qmgr      unix  n       -       y       300     1       qmgr
tlsmgr    unix  -       -       y       1000?   1       tlsmgr
rewrite   unix  -       -       y       -       -       trivial-rewrite
bounce    unix  -       -       y       -       0       bounce
defer     unix  -       -       y       -       0       bounce
trace     unix  -       -       y       -       0       bounce
verify    unix  -       -       y       -       1       verify
flush     unix  n       -       y       1000?   0       flush
proxymap  unix  -       -       y       -       -       proxymap
proxywrite unix -       -       y       -       1       proxymap
smtp      unix  -       -       y       -       -       smtp
relay     unix  -       -       y       -       -       smtp
showq     unix  n       -       y       -       -       showq
error     unix  -       -       y       -       -       error
retry     unix  -       -       y       -       -       error
discard   unix  -       -       y       -       -       discard
local     unix  -       n       y       -       -       local
virtual   unix  -       n       y       -       -       virtual
lmtp      unix  -       -       y       -       -       lmtp
anvil     unix  -       -       y       -       1       anvil
scache    unix  -       -       y       -       1       scache

postconf -n:

command_directory = /var/spool/postfix/usr/sbin
config_directory = /var/spool/postfix/etc/postfix
daemon_directory = /var/spool/postfix/usr/libexec/postfix
data_directory = /var/spool/postfix/var/lib/postfix
debug_peer_level = 2
default_privs = nobody
header_checks = regexp:/var/spool/postfix/etc/postfix/header_checks
html_directory = no
inet_interfaces = loopback-only
inet_protocols = ipv4
local_recipient_maps = $maps
mail_owner = postfix
mailq_path = /var/spool/postfix/usr/bin/mailq
manpage_directory = /usr/local/man
maps = /var/spool/postfix/etc/passwd
mydestination = $myhostname, localhost.$mydomain, localhost
mynetworks = 127.0.0.0/8
newaliases_path = /var/spool/postfix/usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /var/spool/postfix/etc/postfix
sendmail_path = /var/spool/postfix/usr/sbin/sendmail
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP $mail_name
unknown_local_recipient_reject_code = 550

Главный процесс не будет работать в режиме chrooted, поскольку он порождает все остальные службы, которые фактически выполняют эту работу. Проверьте корни различных порожденных сервисов (например, qmgr).

Цель chroot (в master.cf) - ограничить ущерб, который может быть вызван эксплойтом, а не предоставлять постфиксу другой набор информации. Если вы хотите представить postfix другому набору пользователей, возможно, посмотрите http://www.postfix.org/VIRTUAL_README.html или, возможно, подготовить полный chroot для запуска начального процесса postfix вручную.