Есть ли обратная сторона в установке VNC?

20

У нас есть Intel NUC на языковом факультете моего университета, который вскоре разместит веб-приложение, используемое преподавателями и студентами на факультете. NUC работает под управлением Ubuntu (14.10).

Я чувствую себя комфортно с терминалом и SSH-подключением к серверу, однако я нахожу, что многие задачи, которые мне нужно выполнить, намного проще благодаря совместному использованию экрана (VNC).

Я предложил нашему новому техническому директору установить на этом сервере VNC, чтобы сделать мою жизнь намного проще (на самом деле на нем был установлен VNC до его приема на работу, а затем он удалил его). Однако он ответил следующим комментарием:

Я бы предпочел не запускать X или VNC на сервере, если нам это удастся. Это сервер в конце концов.

Я действительно не понимаю эту логику. Он не подключен к монитору; единственный доступ в него через SSH. Есть ли какой-то чудесный недостаток доступа VNC к серверу, о котором я не знаю?

Очевидно, вы открываете другой порт для атакующего; опровержение: мы находимся за двумя университетскими межсетевыми экранами (основной сетевой межсетевой экран университета, а также собственный специальный межсетевой экран нашей подсети). VNC сможет быть реализован только внутри нашей подсети, поэтому я не знаю, почему это может быть проблемой, отличной от «это другой пакет для обслуживания», и с aptменеджером пакетов в Ubuntu, который становится не проблема.

Каковы недостатки установки VNC на сервере?

Изменить : это не просто веб-сервер. Здесь размещается ряд других приложений. Не уверен, что это имеет значение.

Крис Сирефице
источник
21
Я не могу представить, что вам может понадобиться сделать с веб-сервером, что было бы проще с помощью графического интерфейса. Возможно, вам следует также спросить, есть ли лучший способ выполнить задачи, которые вы хотите выполнить.
Майкл Хэмптон
3
В любом случае, это возможность узнать что-то новое.
Майкл Хэмптон
9
Все дело в ограничении поверхности. Чем больше услуг, тем больше может пойти не так, а больше - взломать. Конечно, вы сказали это, но это остается правдой. Также лично я ненавижу VNC. Как насчет пересылки X11 через SSH?
Майкл Бейли
1
Так зачем вам использовать эти инструменты на сервере? Использование браузера без графического интерфейса в большинстве случаев будет бесполезным, но вы не захотите запускать браузер на сервере. Какой бы инструмент вы ни использовали, просто установите его на своем клиенте и получите доступ к любым нужным вам данным на сервере, желательно через ssh. Может быть, заглянуть в sshfs
Бен
7
Я не хочу публиковать это как ответ, потому что он не отвечает на вопрос «Каковы недостатки VNC», а уточняет комментарий @MichaelBailey: Вам не нужен X или VNC на сервере , SSH к серверу с пересылкой X позволяет графическим программам фактически запускаться на сервере при отображении окон на сервере X11, работающем на вашем локальном компьютере. Вам нужны только некоторые общие библиотеки X11 на сервере, которые не будут тратить ресурсы, пока у вас не запущена программа, использующая их. ИМО хороший компромисс.
Джеральд Шнайдер

Ответы:

42

Есть много причин:

  • Поверхность атаки: больше программ, особенно сетевых, означает больше возможностей для кого-то найти ошибку и войти в нее.

  • Поверхность дефекта: как указано выше, но заменить «кто-то» на « Мерфи », а «войти» на «испортить свой день». На самом деле, «испортить свой день», вероятно, относится и к предыдущему пункту.

  • Эффективность системы: X11 и среды графического интерфейса, на которых люди обычно работают, потребляют приличное количество оперативной памяти, особенно в системе с ограниченными ресурсами, такой как NUC. Не запускать их означает больше ресурсов для выполнения полезной работы.

  • Эффективность оператора: графические интерфейсы не поддаются сценариям и другим формам автоматизации. Нажатие на вещи кажется продуктивным, но на самом деле это худший способ сделать что-то глубоко техническое. Вы также найдете, что ваши будущие возможности трудоустройства сильно ограничены, если вы не сможете писать сценарии и автоматизировать свою работу - индустрия уходит от инструментов администратора с графическим интерфейсом. Черт, даже сервер Windows может быть установлен без графического интерфейса в наши дни, и если это не заставит вас задуматься об относительных преимуществах только умения нажимать на вещи, я действительно не знаю, что вам сказать.

romble
источник
1
Черт возьми, это ужасно ... ты снова избил меня до удара, как через 30 секунд. :) Отличный ответ.
Тим Бригам
3
Много времени провел с Mavis Beacon в молодости должен иметь некоторые преимущества ... <ухмылка>
Уомбл
6
@ChrisCirefice, тогда я предлагаю вам попросить кого-то сделать все правильно, вместо того, чтобы ставить под угрозу безопасность производственных серверов для простоты использования.
Андре Бори
8
Это немного жестко, Андре. Я хотел бы думать, что Крис теперь немного лучше понимает последствия своих предпочтений, нет необходимости разбивать его из-за этого.
womble
4
@ChrisCirefice быть очень осторожным, думая о таких вещах, как «нет супер-ценной информации» и «за брандмауэрами». Ценность данных находится в поле зрения обозревателя, и роль систем может со временем слегка изменяться, так что более ценные (для злоумышленника) данные постепенно накапливаются в системе, которую, по мнению всех, не стоит защищать. а затем вы попадаете на первую страницу каждого новостного сайта, потому что что-то смущающее было просочилось.
womble
15

Проблема не в VNC - не поймите меня неправильно, VNC - ужасный протокол, у которого много недостатков (самый большой из которых - отсутствие поддержки шифрования, поэтому все идет по сети в виде простого текста), но это не главное причина его использования не рекомендуется на серверах.

Вы собираетесь установить VNC для доступа к чему, черному экрану? Нет, вы хотели получить доступ ко всей среде рабочего стола, и это реальная проблема.

После установки всего этого программного обеспечения Gnome для настольных компьютеров (или аналогичного) вы уже можете считать, что ваш сервер скомпрометирован, поскольку в этой ужасной, огромной коллекции приложений остается так много ошибок (кроме того факта, что он не предназначен для повышения производительности). и использует кучу ресурсов). Одна из причин, по которым я не рекомендую это программное обеспечение и большинство настольных сред Linux, заключается в том, что они захватывают всю систему почти как руткит и внедряют свои собственные версии всего (аутентификация? Больше нет надежных пользователей и групп) давайте запустим эту ерунду Policykit от имени root, которая дает разрешения на основе нечитаемых, непонятных XML-файлов ... конфигурации? Кому нужны читаемые человеком файлы конфигурации? Давайте сохраним все в двоичных базах данных, которые вы можете '

Попытка установить рабочую среду Gnome на моем сервере Archlinux сообщает мне «Общий установленный размер: 1370,86 МиБ». Это огромно, представьте себе дополнительную поверхность атаки, которая будет у этого бывшего сервера после его установки. Другие окружения рабочего стола не намного лучше.

Андре Бори
источник
«VNC - ужасный протокол и имеет много недостатков (самый большой из которых - отсутствие шифрования ...)» В ситуациях, когда нужен VNC, а не серверная среда, ваша проблема предотвращается путем туннелирования сеансов VNC через ssh.
Кит Рейнольдс
@KeithReynolds да, но он должен быть встроенным, особенно когда вы сравниваете его с его конкурентами, такими как более современный RDP, который шифруется сразу (безопасно, если вы доверяете сертификату сервера).
Андре Бори
7
Одна философия дизайна - встроить все возможные решения (как правило, типично для разработчиков MS), а другая - собрать воедино то, что вам нужно (как правило, типично для разработчиков Linux). Относительно VNC: Когда требуется безопасность через ненадежную сеть ssh, требуется учетная запись и шифрование. Когда безопасность не имеет значения, совместное использование рабочего стола не требует системной учетной записи или дополнительных затрат на шифрование.
Кит Рейнольдс
2
@KeithReynolds Еще одна проблема VNC заключается в том, что он отправляет чистые растровые изображения вместо команд рисования, которые рисуются на стороне клиента, как RDP. Это делает VNC ужасным для использования на чем угодно, кроме локальной сети, в то время как RDP остается нормальным даже в дрянных мобильных сетях.
Андре Бори
9

Очевидно, вы открываете другой порт для атакующего; опровержение: мы находимся за двумя университетскими межсетевыми экранами (основной сетевой межсетевой экран университета, а также собственный специальный межсетевой экран нашей подсети). VNC сможет быть реализован только внутри нашей подсети, так что я в растерянности ...

Никогда не думайте, что поскольку ваша система находится за брандмауэром в частной сети, вам не нужно беспокоиться о безопасности. Многие, если не большинство, успешных вторжений выполняются инсайдерами (сотрудниками, студентами и т. Д.), Которые имеют доступ к указанным сетям.

Ген
источник
-8

Попробуйте, чтобы технический директор был доволен:

  • Установите VNC и любой рабочий стол, который вам нравится

  • НЕ устанавливайте заставки любого типа. Зачем? У вас нет экрана, а рабочий стол просто не потребляет много ресурсов.

  • НЕ пересылайте порт VNC. Если вам нужно его использовать, проложите туннель к порту VNC (5900) через SSH (порт 22) и подключитесь к нему таким образом.

Этот процесс дает вам шифрование и всю безопасность SSH, которая уже открыта. Вы не добавляете никаких проблем безопасности, которых у вас ранее не было.

Я уже делаю это на своем собственном сервере, нет заметной дополнительной задержки в процессе VNC по сравнению с прямым соединением.

Павел
источник
9
« Вы не добавляете никаких проблем безопасности, которых у вас раньше не было », даже близко не соответствует действительности. Установка дополнительного кода - и Андре B выше дает вам некоторое представление о том, сколько дополнительного кода мы говорим - дает больше возможностей для повышения привилегий (ssh'ed-in) локальными пользователями.
MadHatter поддерживает Монику
4
Я согласен с тем, что безопасность является уравновешивающим действием, но утверждение, что действия (установка дополнительного программного обеспечения), являющиеся частью компромисса, не имеют обратной стороны, является неискренним. Заявление о том, что у пользователей мало ssh'ed, в равной степени вводит в заблуждение: автор вопроса говорит, что он ssh'es прямо сейчас, и у нас нет никакого способа узнать, сколько других делают это.
MadHatter поддерживает Монику
4
« OP определил, что SSH достаточно безопасен ». Безопасность - это не собственность, которую вы имеете или не имеете; это степень готовности против данной модели угрозы. Если модель угрозы - « несанкционированный доступ удаленного пользователя », тогда да, sshэто хорошая защита. Если модель угрозы представляет собой « повышение привилегий авторизованным локальным пользователем» , то sshзащиты не существует, а установка тонны дополнительного кода на сервере значительно увеличивает поверхность атаки. Womble - это опытный системный администратор, у которого репутация на этом сайте в семьдесят тысяч раз выше, так что вы можете спокойно относиться к оскорблениям.
MadHatter поддерживает Монику
1
@paul Нет, моя главная проблема не в отсутствии шифрования VNC (его можно уменьшить с помощью SSH-туннелирования), главная проблема - огромная поверхность атаки любой среды рабочего стола.
Андре Бори
3
@ Пол: вы правы, у меня нет абсолютно никакого чувства баланса. Я не Fox News: мне не нужно быть "справедливым и сбалансированным". Я сисадмин: мне нужно быть правым .
womble