У нас есть среда, в которой наши пользователи подключаются к системе по ssh, а их оболочка настроена на простой запуск Mutt в их $ HOME / Maildir. Мы хотим, чтобы наши пользователи могли только отправлять и получать почту. Мы понимаем, что они не могут выполнять произвольные команды, поскольку у них нет приглашения оболочки, но некоторые пользователи могут быть ненадежными и могут найти способ выйти из Mutt и получить доступ к оболочке посредством выполнения кода. Мы в основном думаем о наихудшем сценарии. Нам известны учетные записи SELinux и guest_u, но мы нашли лучшее решение. Поскольку все наши пользователи являются частью одной группы, скажем «пользователи», мы можем использовать следующее правило iptables для отключения исходящих пакетов. ping, dig, wget и т. д. не работают, но исходящая почта работает. Это именно то, что мы хотим, но почему пользователям вообще разрешен любой исходящий доступ через Mutt, если им запрещено использовать другие инструменты, такие как dig, host, ping и т. Д.?
Вот добавленное нами правило:
$IPT -A OUTPUT -p all -m owner --gid-owner users -j DROP
Пока пользователи используют Mutt только для доступа к локальной папке Maildir и для отправки почты с помощью почтового сервера, они не общаются с внешним миром.
Однако Mutt позволяет запускать команды оболочки. Вы можете изменить оболочку по умолчанию, например, на rbash, или использовать chrooted окружение, чтобы еще больше ограничить действия пользователей. Изменение оболочки по умолчанию выполняется с помощью
shell /local/bin/rbash
в /etc/Muttrc
.