Wir haben eine Umgebung, in der unsere Benutzer per SSH auf das System zugreifen und ihre Shell so eingestellt ist, dass sie Mutt einfach auf ihrem $HOME/Maildir startet. Wir möchten unsere Benutzer so einschränken, dass sie nur E-Mails senden/empfangen können. Wir wissen, dass sie keine beliebigen Befehle ausführen können, da sie keine Shell-Eingabeaufforderung haben, aber einige Benutzer sind möglicherweise nicht vertrauenswürdig und finden möglicherweise einen Weg, aus Mutt auszubrechen und durch Codeausführung Shell-Zugriff zu erhalten. Wir denken im Grunde an das Worst-Case-Szenario. Wir kennen SELinux- und guest_u-Konten, sind aber auf eine bessere Lösung gestoßen. Da unsere Benutzer alle Teil einer Gruppe sind, sagen wir „Benutzer“, können wir die folgende iptables-Regel verwenden, um ausgehende Pakete zu deaktivieren. Ping, Dig, Wget usw. funktionieren nicht, aber ausgehende E-Mails schon. Das ist genau das, was wir wollen, aber warum wird den Benutzern überhaupt jeglicher ausgehender Zugriff über Mutt gestattet, wenn sie daran gehindert werden, die anderen Tools wie Dig, Host, Ping usw. zu verwenden?
Hier ist die Regel, die wir hinzugefügt haben:
$IPT -A OUTPUT -p all -m owner --gid-owner users -j DROP
Antwort1
Solange die Benutzer Mutt nur verwenden, um auf den lokalen Maildir-Ordner zuzugreifen und E-Mails über den Mailserver zu senden, kommunizieren sie nicht mit der Außenwelt.
Mutt erlaubt jedoch die Ausführung von Shell-Befehlen. Sie können die Standard-Shell beispielsweise auf rbash ändern oder eine Chroot-Umgebung verwenden, um die Möglichkeiten der Benutzer weiter einzuschränken. Die Standard-Shell lässt sich ändern mit
shell /local/bin/rbash
In /etc/Muttrc
.