У нас есть Intel NUC на языковом отделении моего университета, где скоро будет размещено веб-приложение, используемое преподавателями и студентами отделения. NUC работает под управлением Ubuntu (14.10).
Мне комфортно с терминалом и SSH-подключением к серверу, однако я считаю, что многие задачи, которые мне нужно выполнить, намного проще благодаря совместному использованию экрана (VNC).
Я предложил нашему новому техническому директору установить VNC на этот сервер, чтобы упростить мне жизнь (на самом деле на нем был установлен VNC до того, как его наняли, а затем он удалил его). Однако он ответил следующим комментарием:
Я бы предпочел не запускать X или VNC на сервере, если нам это сойдет с рук. В конце концов, это сервер.
Я действительно не понимаю этой логики. Он не подключен к монитору; единственный доступ к нему через SSH. Есть ли какой-то чудесный недостаток в доступе VNC к серверу, о котором я не знаю?
Очевидно, вы открываете другой порт для злоумышленника; опровержение: мы за двумя университетскими брандмауэрами (главный брандмауэр университетской сети, а также специальный брандмауэр нашей подсети). VNC может быть реализован только внутри нашей подсети, поэтому я не понимаю, почему это может быть проблемой, кроме «это еще один пакет, который нужно поддерживать», и с Ubuntu apt
менеджер пакетов, который перестает быть проблемой.
Каковы недостатки установки VNC на сервере?
редактировать: это не просто веб-сервер. На нем размещается ряд других приложений. Не уверен, что это имеет значение.
Причин великое множество:
Поверхность атаки: больше программ, особенно сетевых, означает больше возможностей для кого-то найти ошибку и проникнуть в нее.
Поверхность дефекта: как указано выше, но заменить "кто-то" на "Мерфи"и" войти "с" испортишь свой день ". На самом деле," испортишь свой день ", вероятно, применимо и к предыдущему пункту.
Эффективность системы: X11 и среды GUI, которые люди обычно запускают на них, потребляют приличный объем ОЗУ, особенно в системе с ограниченными ресурсами, такой как NUC. Не запускать их означает больше ресурсов для выполнения полезной работы.
Эффективность оператора: графические интерфейсы пользователя не поддаются написанию сценариев и другим формам автоматизации. Нажатие на что-то кажется продуктивным, но на самом деле это худший способ сделать что-то глубоко техническое. Вы также обнаружите, что ваши будущие возможности трудоустройства сильно ограничены, если вы не можете создать сценарий и автоматизировать свою работу - отрасль идет прочь из инструментов администрирования графического интерфейса. Черт возьми, в наши дни даже сервер Windows можно установить без графического интерфейса пользователя, и если это не заставляет вас думать об относительных достоинствах только знания того, как щелкать мышью, я действительно не знаю, что вам сказать.
Проблема не в VNC - не поймите меня неправильно, VNC - ужасный протокол и имеет много недостатков (самый большой из них - отсутствие поддержки шифрования, поэтому все идет по сети в виде простого текста), но это не главное. причина, по которой его использование не рекомендуется на серверах.
Вы собираетесь установить VNC, чтобы получить доступ к черному экрану? Нет, вы хотели получить доступ ко всей среде рабочего стола, и это настоящая проблема.
После установки всего этого программного обеспечения Gnome (или аналогичного) настольного уровня вы уже можете считать свой сервер скомпрометированным, поскольку в этой ужасной огромной коллекции приложений осталось так много ошибок, которые нужно использовать (помимо того факта, что оно не предназначено для повышения производительности). и использует массу ресурсов). Одна из других причин, почему я не рекомендую это программное обеспечение и большинство окружений рабочего стола Linux, заключается в том, что они берут на себя всю систему почти как руткит и реализуют свои собственные версии всего (аутентификация? Больше никаких надежных пользователей и групп , давайте запустим эту чушь Policykit от имени пользователя root, который дает разрешения на основе некоторых нечитаемых, непонятных XML-файлов ... конфигурации? Кому нужны удобочитаемые файлы конфигурации? Давайте сохраним все в двоичных базах данных, которые вы не можете видеть или редактировать, если вы предоставляемые ими утилиты, как и реестр Windows, а также давайте запустим кучу демонов как root, чтобы использовать ресурсы, даже когда вы не используете рабочий стол).
При попытке установить среду рабочего стола Gnome на моем сервере Archlinux я получил сообщение «Общий установленный размер: 1370,86 МБ». Это огромно, представьте себе дополнительную поверхность атаки, которая будет у этого бывшего сервера после его установки. Другие среды рабочего стола не намного лучше.
Очевидно, вы открываете другой порт для злоумышленника; опровержение: мы за двумя университетскими брандмауэрами (главный брандмауэр университетской сети, а также специальный брандмауэр нашей подсети). VNC может быть реализован только внутри нашей подсети, поэтому я в недоумении ...
Никогда не предполагайте, что, поскольку ваша система находится за брандмауэром в частной сети, вам не нужно беспокоиться о безопасности. Многие, если не большинство успешных вторжений осуществляются инсайдерами (сотрудниками, студентами и т. Д.), Которые имеют доступ к указанным сетям.
Попробуйте сделать это, чтобы порадовать технического директора:
Установите VNC и любой рабочий стол, который вам нравится
НЕ устанавливайте какие-либо заставки. Зачем? У вас нет экрана, а рабочий стол, просто сидящий на нем, не потребляет много ресурсов.
НЕ пересылайте порт VNC. Если вам нужно его использовать, туннелируйте порт VNC (5900) через SSH (порт 22) и подключитесь к нему таким образом.
Этот процесс дает вам шифрование и всю безопасность SSH, который уже открыт. Вы не добавляете никаких проблем безопасности, которых у вас не было раньше.
Я уже делаю это на собственном сервере, заметных дополнительных задержек в процессе VNC по сравнению с прямым подключением нет.