Если незашифрованная и неаутентифицируемая установка достаточна, можно использовать IP в IP или Туннелировании GRE для туннелирования трафика между шлюзом и сервером. Если Вам нужно больше безопасности, используют что-то как OpenVPN для установки безопасного туннеля между шлюзом и сервером.
После того как туннель является установкой, настройте шлюз для маршрутизации трафика от устройства по туннелю.
NOEXEC
тег не препятствует программам то, чтобы быть выполняемым. Это препятствует тому, чтобы перечисленные программы выполнили любые другие программы. От человека sudoers:
aaron shanty = NOEXEC: /usr/bin/more, /usr/bin/vi
Это позволяет пользователю aaron выполнять/usr/bin/more и/usr/bin/vi с включенным noexec. Это будет препятствовать тому, чтобы те две команды выполнили другие команды (такие как оболочка).
Если Вы не уверены, способна ли Ваша система к поддержке noexec, можно всегда просто испытывать ее и проверять, выходит ли оболочка из работы, когда noexec включен.
Если Вы хотите препятствовать тому, чтобы пользователи выполнились, определенная команда взглянули на !
, например:
ssh ALL=(root) ALL, !/usr/bin/passwd
Обратите внимание на то, что эта строка не помогает, хотя было бы возможно создать копию /usr/bin/passwd
под другим именем скопируйте один на хост и установите соответствующие полномочия и т.д.
Мне нравится ответ @Ulrich. Я также предупрежу вас, чтобы вы полностью понимали требование, касающееся LD _PRELOAD и динамически -связанных исполняемых файлов, упомянутых вhttps://www.sudo.ws/man/1.7.10/sudoers.man.html#Preventing_shell_escapes
В конечном счете, безопасное использование sudo
очень сложно. Предположим, что ваши меры безопасности достаточны только для уменьшения случаев ошибок доверенных пользователей. Если вы используете его для защиты ненадежных пользователей или процессов, вы должны знать достаточно, чтобы не задавать вопросов.
Я занимаюсь этим профессионально с 1995 года и я не готов. YMMV