Temos um ambiente onde nossos usuários fazem ssh no sistema e seu shell está configurado para simplesmente iniciar o Mutt em seu $HOME/Maildir. Queremos restringir nossos usuários para que apenas possam enviar/receber e-mails. Percebemos que eles não podem executar comandos arbitrários, pois não possuem um prompt de shell, mas alguns usuários podem não ser confiáveis e encontrar uma maneira de sair do Mutt e obter acesso ao shell por meio da execução de código. Estamos basicamente pensando no pior cenário possível. Conhecemos as contas SELinux e guest_u, mas encontramos uma solução melhor. Como todos os nossos usuários fazem parte de um grupo, digamos "usuários", podemos usar a seguinte regra do iptables para desabilitar pacotes de saída. ping, dig, wget, etc não funcionam, mas o envio de correspondência funciona. Isso é exatamente o que queremos, mas por que os usuários têm permissão para qualquer acesso de saída através do Mutt se eles são impedidos de usar outras ferramentas, como dig, host, ping, etc?
Aqui está a regra que adicionamos:
$IPT -A OUTPUT -p all -m owner --gid-owner users -j DROP
Responder1
Contanto que os usuários usem o Mutt apenas para acessar a pasta local do Maildir e enviar e-mails usando o servidor de e-mail, eles não estarão se comunicando com o mundo externo.
No entanto, o Mutt permite a execução de comandos shell. Você pode querer alterar o shell padrão para, por exemplo, rbash, ou usar um ambiente chroot, para limitar ainda mais o que os usuários podem tentar fazer. A alteração do shell padrão é feita com
shell /local/bin/rbash
em /etc/Muttrc
.