РГР_Хританков_АВТ010. Удаленный доступ в глобальных сетях
Скачать 1.57 Mb.
|
Протокол telnet Служба удаленного управления telnet (Teletype Network) ) — одна из самых старых сетевых технологий Internet (первая спецификация — RFC 158 от 19.05.1971 г.). Текущая спецификация telnet — RFC 854/STD 8 – Telnet Protocol Specification. По умолчанию сервер telnet принимает входящие подключения на 23-ий порт TCP. Протокол telnet изначально разрабатывался для использования в гетерогенных сетях. В его основе — концепция сетевого виртуального терминала (Network Virtual Terminal, NVT) — механизма абстрагирования от специфики ввода/вывода различных аппаратных и программных платформ. Так, например, в UNIX в качестве символа перехода на другую строку используется LF (код 13), в то время как в MS-DOS и Windows — пара символов CR-LF (коды 10 и 13). Сетевой виртуальный терминал NVT предлагает использование унифицированного набора символов, который используется для преобразования кодов клиента и сервера. Хотя в сессии telnet выделяют клиентскую и серверную сторону, протокол является симметричным и обе стороны взаимодействуют через NVT, обмениваясь данными двух типов: Прикладными данными (т.е. данными, которые идут от пользователя к серверному приложению и обратно); Опциями протокола telnet, служащими для уяснения возможностей и предпочтений сторон. Прикладные данные проходят через протокол без изменений т.е. на выходе второго виртуального терминала мы видим именно то, что было введено на вход первого. С точки зрения протокола эти данные – просто последовательность байтов (октетов), по умолчанию принадлежащих набору ASCII. Если же установлена опция Binary — то последовательность любых данных в двоичном представлении. Все значения октетов прикладных данных кроме \377 (десятичное 255) передаются по транспорту как есть. Октет \377 передаётся последовательностью \377\377 из двух октетов. Это связано с тем, что октет \377 используется для кодирования опций протокола. Telnet поддерживает четыре режима передачи: Полудуплексный режим. NVT по умолчанию это полудуплексное устройство, которое требует исполнения специальной команды (GO AHEAD, GA) от сервера, перед тем как будет принят ввод от пользователя. Ввод пользователя отображается локальным эхом от NVT клавиатуры на NVT принтер, таким образом, от клиента к серверу посылаются только полные строки. Посимвольный. Каждый вводимый символ отправляется серверу отдельно от других. Сервер отражает эхом (опция ECHO — RFC 857) большинство символов и эти символы отражаются на экране клиента. Блочный. Отправка данных производится по принципу “строка за один раз”. Линейный режим (linemode). В данном случае этот термин означает реальную опцию linemode (RFC 1184). Эта опция обсуждается клиентом и сервером и корректирует все недостатки в режиме строка за один раз. С точки зрения безопасности протокол telnet уязвим для любого вида атак, к которым уязвим его транспорт, т.е. протокол TCP. В протоколе не предусмотрено использование ни шифрования, ни проверки подлинности данных. Поэтому telnet можно использовать в полностью контролируемой сети или с применением защиты на сетевом уровне (различные реализации виртуальных частных сетей). По причине ненадёжности от telnet как средства управления операционными системами давно отказались. Иногда клиенты telnet используются для доступа к другим символьно-ориентрованным протоколам на основе транспорта TCP (HTTP, IRC, SMTP, POP3 и прочим). Однако, использование клиента telnet в этом качестве может привести к ошибкам, связанным с неправильной трактовкой сервером опций протокола [3]. Протокол rlogin Протокол rlogin (англ. remote login — удаленный вход в систему, RFC 1282, порт сервера – 513) позволяет пользователям рабочих станций UNIX подключаться к удаленным серверам UNIX через сеть Internet и работать так же, как при прямом подключении терминала к машине. Помимо rlogin существуют еще несколько подобных протоколов: rsh (remote shell), rcp (remote copy). Утилиты rlogin, rsh и rcp часто объединяют под общим названием r-команд. Впервые появившаяся в составе 4.2BSD UNIX, программа rlogin (и остальные r-команды) одно время была исключительно популярной в этой среде. В качестве средства терминального доступа rlogin очень похожа на telnet, но из-за тесной интеграции с ОС нашла ограниченное применение в других системах. В rlogin отсутствуют многие опции, свойственные telnet, в частности режим согласования параметров между клиентом и сервером. Однако rlogin предусматривает хотя бы минимальные средства защиты на основе доверительных отношений между хостами: на сервере rlogin в специальных системных файлах администратор может перечислить компьютеры, доступ с которых к данному серверу будет разрешен без пароля. Пользователи других компьютеров (не перечисленных в этих файлах) могут войти на сервер лишь после ввода пароля (который как и в telnet передается в открытом виде). Но, доверительные отношения между хостами тоже не панацея, и могут устанавливаться лишь в изолированных сетях. Дело в том, что такие техники несанкционированного доступа, как подмена IP-адресов и доменных имен, делают r-сервисы в Интернет незащищенными. Поэтому современные дистрибутивы UNIX-подобных ОС включают не фактические r-команды, а замещающие ссылки на их SSH-аналоги: scp, sftp и др [3]. Протокол X11 Протокол X11, разработанный в середине 80-х годов, определяет взаимодействие между приложением и системой отображения графики. Приложения называется клиентом X11, а система отображения — сервером X11. Таким образом, вопреки сложившимся житейским представлениям, сервер X11 работает на компьютере или X-терминале пользователя, а приложение (клиент X11) может быть запущено как локально, так и удалённо. Протокол X11 представляет шрифт как набор матриц из нулей и единиц (растров). Каждый шрифт имеет ряд характеристик (имя, размер, кодировка и т.д.). Сервер ищет требуемый приложением растр шрифта с запрошенными свойствами сам, при помощи своего шрифтового модуля, или обращается за ним к специальному серверу шрифтов, запущенному локально или удалённо. Таким образом, протокол X11 был изначально ориентиован на работу с растровыми (bitmap) шрифтами (PCF, BDF), при этом приложение (клиент) может лишь запрашивать шрифт, но само с его растрами не работает. С ростом возможностей печатающих устройств, они стали использовать т.н. скалируемые шрифты, задаваемые векторно, что позволило легко масштабировать их, а также осуществлять другие преобразования. Более того, при выводе на качественные устройства печати символы шрифтов отображаются не одним цветом, а оттенками цвета, что позволяет создать эффект сглаживания (антиалиасинга). UNIX прекрасно справлялся и справляется с красивой печатью скалируемыми шрифтами при помощи знаменитых программ nroff (groff в варианте GNU), TeX, ghostscript, но программы просмотра выходных форматов этих программ не пользуются шрифтовыми возможностями протокола X, ограниченного растром, а посылают серверу X уже сформированную картинку, что сильно замедляет работу и делает практически невозможным динамическое отображение текста в процессе набора или использование его в элементах интерфейса. Для использования в оконной системе X скалируемых шрифтов (Type1, TTF, Speedo), необходимо преобразовывать их символы (глифы) в растры. В свободной реализации X, XFree86, это делает либо сам сервер X11, собранный с библиотекой растеризации freetype1 (сейчас это более распространенный способ), либо сервер шрифтов. При этом существенно увеличивается количество доступных шрифтов, появляется возможность использовать для отображения и печати одни и те же шрифты, но вот качество отображения оставляет желать лучшего, так как на экране символ по-прежнему остается одноцветным, без полутонов, т.е. сглаживания [5]. Протокол VNC VNC — это широко распространенный протокол удаленного доступа к рабочему столу компьютера по сети. Данные о нажатии клавиш и движении мыши, выполняемых пользователем на собственном компьютере передаются по сети на удаленный компьютер и воспринимаются им действия с его собственными клавиатурой и мышью. Информация с экрана удаленного компьютера выводится на экране компьютера пользователя. Работа по VNC через интернет с удаленным компьютером, находящимся в противоположной точке мира, для пользователя выглядит так, как будто этот компьютер находится непосредственно перед ним. Особенно VNC удобен при работе с графическим интерфейсом — с рабочим столом и программами для рабочего стола операционных систем Windows, Linux и других. Рис. 9. VNC-клиент на компьютере пользователя под управлением ОС Windows. Для начинающих пользователей администрирование Unix-сервера по VNC будет намного проще, чем через командную строку по SSH или панель управления с веб-интерфейсом. Программы с графическим интерфейсом, как правило, хорошо структурированы и более интуитивны в понимании, чем редактирование конфигурационных файлов по инструкциям. Администрирование сервера выглядит почти так же, как настройки десктопной версии операционной системы, будь то Linux или Windows. Можно даже установить на собственный компьютер аналогичную версию операционной системы для тренировки, и переходить к администрированию VDS/VPS уже после того, как будут понятны основные принципы настройки системы. Для администрирование собственного сервера по VNC пользователю достаточно уметь работать с графическим оконным интерфейсом и иметь базовое представления о главных компонентах операционной системы — файловая система, сеть, работа сервисов. На удаленном компьютере должна быть запущена программа-сервер (VNC server), которая играет роль клавиатуры, мыши и монитора, и обменивается данными с компьютером пользователя. Доступ к VNC-серверу может быть защищен паролем. На компьютере пользователя должна быть запущена программа-клиент (VNC client, VNC viewer), которая передает на удаленный компьютер информацию о нажатиях на клавиши и движениях мыши, получает от него изображение и выводит его на экран. VNC-клиенты существуют для Windows, Linux, FreeBSD, MacOS и многих других платформ. Есть также VNC-клиенты для карманных компьютеров и мобильных телефонов. При запуске VNC-клиента достаточно указать DNS-имя или IP-адрес удаленного компьютера, и пароль, если доступ к VNC-серверу защищен паролем. Основной объем передаваемых по VNC данных приходится на графический информацию, выводимую на экран. Для работы требуется ширина пропускания канала от 1 Мбит/сек до 10 Мбит/сек. Для комфортной работы в полноцветном режиме при разрешении экрана 1920x1080 скорость канала должна быть 5-6 Мбит/сек. При снижении качества графики, при уменьшении числа цветов и при некоторых дополнительных способах оптимизации, приемлемое удобство может обеспечить скорость 256 Кбит/сек. Канал занимается полностью только при обновлении больших участков экрана, при печати текста трафик заметно меньше, а в остальное время канал практически не используется. Если при передаче по каналу возникают большие задержки передачи пакетов (медленные каналы, спутниковая связь, большие расстояния), это вызывает ухудшение времени реакции на нажатие клавиш и движение мыши, что значительно снижает комфортность работы [6]. Протокол SSH SSH (англ. Secure SHell – безопасная оболочка) — безопасный протокол дистанционного управления компьютером. Основная спецификация – RFC 4251. The Secure Shell (SSH) Protocol Architecture, входящий порт – 22. По сравнению с протоколами telnet и rlogin, ssh отличается, в первую очередь, высокой защищенностью за счет поддержки криптостойких алгоритмов шифрования и рядом дополнительных возможностей. SSH позволяет не только использовать защищенную оболочку на удаленном хосте, но и туннелировать графический интерфейс (X11 forwarding), превращая клиентов, использующих X-Window System, в графические терминалы. SSH также способен передавать через безопасный канал любой другой сетевой протокол – port forwarding. Криптографическая защита протокола SSH не фиксирована, возможен выбор различных алгоритмов шифрования. Сервис SSH использует по умолчанию порт 22 и объединяет протоколы трех уровней: Протокол аутентификации (The Secure Shell (SSH) Authentication Protocol, RFC 4252) — этот уровень предоставляет несколько механизмов для аутентификации пользователя: здесь может использоваться традиционная парольная аутентификация, аутентификация, основанная на публичном ключе и т.д. Протокол транспортного уровня (The Secure Shell (SSH) Transport Layer Protocol, RFC 4253) — обеспечивает взаимодействие алгоритма и обмен ключами. Обмен ключами позволяет аутентифицировать сервер и создать криптографически защищённое соединение: обеспечивая целостность, конфиденциальность и дополнительное сжатие. Протокол соединения (The Secure Shell (SSH) Connection Protocol, RFC 4254) — создает безопасный (шифруемый) канал, представляя его в виде нескольких логических каналов, которые используются для различных целей (различных видов служб). Поддержка SSH реализована во всех UNIX системах и на большинстве из них в типовую поставку включено как клиентское, так и серверное ПО. Для не-UNIX систем имеются как платное, так и бесплатное клиентское ПО (SecureCRT, putty). Серверное ПО – платное. Практически все задачи управления UNIX могут выполняться в текстовом режиме, однако администраторы нередко предпочитают графический интерфейс, как более удобный. Вдобавок, некоторыми приложениями UNIX можно управлять только в графической среде. Программное обеспечение X-server, отвечающее за вывод графической информации, имеется для множества платформ, включая DOS, Windows, Macintosh, UNIX и т.д. Следует иметь в виду, что применение X Window System предполагает наличие достаточно большой пропускной способности сети. Система прекрасно работает в локальных сетях, но очень медленно — по глобальным каналам. Поэтому при использовании X Window System на домашнем компьютере администратора управление лучше осуществлять через терминальные утилиты наподобие xterm, а не посредством графических утилит. При подключении к серверу UNIX (на котором запускаются клиенты X11) аутентификация может осуществляться двумя методами: через терминальные утилиты (telnet, rlogin и т. п.) и через менеджер дисплеев X (X Display Manager, xdm). В первом варианте передачи пароля в открытом виде можно избежать, применяя вместо telnet и rlogin уже упоминавшиеся программы ssh и OTP. В случае X Display Manager пароли по умолчанию передаются в открытом виде. Поэтому при удаленном управлении сервером UNIX по общедоступным сетям xdm пользоваться не стоит. Очень осторожно администраторы должны подходить к вопросу использования сервера UNIX в качестве сервера X (т. е., говоря понятным языком, к запуску графической оболочки X11 на сервере UNIX). X Window System устроена так, что пользователь может со своей машины запустить клиент X на удаленном сервере X и перехватывать на нем ввод/вывод информации. В результате злоумышленник получает возможность считывать конфиденциальную информацию с сервера X, включая пароли, вводимые пользователем на сервере X (хотя эмулятор терминала xterm позволяет блокировать перехват пароля, этой возможностью редко кто пользуется). На серверах X применяются две схемы аутентификации клиентов: по имени хоста и с помощью «магических плюшек» (MIT-MAGIC-COOKIE-1). При аутентификации по имени хоста на сервере X создаются системные файлы, где перечисляются хосты, откуда разрешено запускать клиентские программы X на данном сервере X. Но подобную защиту никак не назовешь достаточной, так как с помощью подмены IP-адресов или доменных имен злоумышленник может провести атаку на X11. При использовании же схемы «магических плюшек» (их поддержка встроена в протокол XDMCP, на основе которого функционирует X Display Manager) аутентификация осуществляется на основании учетных записей пользователей. Чтобы иметь право запустить клиента на сервере X, пользователь в своем домашнем каталоге машины-клиента X11 должен иметь системный файл с записанным секретным кодом сервера X. Этот секретный код и называется магической плюшкой. Беда только в том, что плюшка передается по сети в открытом виде, поэтому данный метод также вряд ли можно считать безопасным. В X Window System 11 Release 5 добавлены еще две схемы (XDM-AUTHORIZATION-1 и SUN-DES-1), напоминающие схему MIT-MAGIC-COOKIE-1, но использующие алгоритм шифрования DES. Однако из-за экспортных ограничений такие схемы в комплект поставки X Window System не включают. Исходя из вышеприведенных соображений, запускать серверное ПО X11 на сервере UNIX можно лишь в том случае, когда запрещен доступ клиентов X11 с других компьютеров. Протокол SSL SSL (Secure Sockets Layer - уровень защищенных сокетов) представляет собой криптографический протокол, который обеспечивает защищенную передачу информации в Интернете. Чаще всего протокол SSL используется с самым распространенным протоколом передачи гипертекста – http. О наличии защищенного соединения свидетельствует суффикс «s» – протокол будет называться https. Стандартный порт http – 80, а https – 443. Протокол SSL используется в тех случаях, если нужно обеспечить должный уровень защиты информации, которую пользователь передает серверу. На некоторые сайты, которые работают с электронными деньгами (банки, Интернет-магазины, биржи контента), передаются секретные данные. Кроме пароля, это может быть номер и серия паспорта, номер кредитной карты, пин-код и др. Такая информация предоставляет большой интерес для злоумышленников, поэтому если вы используете для передачи незащищенный протокол http, то ваши данные вполне можно перехватить и использовать в корыстных целях. Для предотвращения перехвата секретных сведений компанией Netscape Communications был создан протокол SSL. Протокол Secure Sockets Layer позволяет передавать зашифрованную информацию по незасекреченным каналам, обеспечивая надежный обмен между двумя приложениями, работающими удаленно. Протокол состоит из нескольких слоев. Первый слой – это транспортный протокол TCP, обеспечивающий формирование пакета и непосредственную передачу данных по сети. Второй слой – это защитный SSL Record Protocol. При защищенной передаче данных эти два слоя являются обязательными, формируя некое ядро SSL, на которое в дальнейшем накладываются другие слои. Например, это может быть SSL Handshake Protocol, позволяющий устанавливать соответствие между ключами и алгоритмами шифрования. Для усиления защиты передаваемой информации на SSL могут накладываться другие слои. Для шифрования данных используются криптографические ключи различной степени сложности – 40-, 56- и 128-битные. Показатель количества бит отражает стойкость применяемого шифра, его надежность. Наименее надежными являются 40-битные ключи, так как методом прямого перебора их можно расшифровать в течение 24 часов. В стандартном браузере Internet Explorer по умолчанию используются 40- и 56-битные ключи. Если же информация, передаваемая пользователями, слишком важна, то используется 128-битное шифрование. 128-битные криптографические ключи предусмотрены только для версий, поставляемых в США и Канаду. Для того, чтобы обеспечить надежную защиту, вам следует загрузить дополнительный пакет безопасности - security pack. Для передачи данных с помощью SSL на сервере необходимо наличие SSL-сертификата, который содержит сведения о владельце ключа, центре сертификации, данные об открытом ключе (назначение, сфера действия и т. д.). Сервер может требовать от пользователя предоставления клиентского сертификата, если это предусматривает используемый способ авторизации пользователя. При использовании сертификата SSL сервер и клиент обмениваются приветственными сообщениями инициализации, содержащими сведения о версии протокола, идентификаторе сессии, способе шифрования и сжатия. Далее сервер отсылает клиенту сертификат или ключевое сообщение, при необходимости требует клиентский сертификат. После нескольких операций происходит окончательное уточнение алгоритма и ключей, отправка сервером финального сообщения и, наконец, обмен секретными данными. Такой процесс идентификации может занимать немало времени, поэтому при повторном соединении обычно используется идентификатор сессии предыдущего соединения. Нельзя не отметить независимость протокола от программ и платформ, на которых используется SSL, так как этот протокол работает по принципу переносимости. В приложениях заключается основная угроза безопасности передаваемых данных. Это наличие уязвимостей в браузерах. Таким образом, в настоящее время протокол SSL получил широкое распространение в сети Интернет, так как он обеспечивает достаточно высокий уровень защиты передаваемой между приложениями информации [7]. Заключение Для того, чтобы обеспечить доступ к услугам локальной сети при отсутствии непосредственного подключения к ней, служат средства удаленного доступа к сети. Эти средства используют для связи удаленного компьютера с сетью коммутированные линии телефонных сетей общего пользования, аналоговые выделенные линии. В результате выполнения данной работы были изучены системы удаленного доступа к серверу. Данная тема была и остается актуальной, т.к. технологии не стоят на месте и разрабатываются новые технологии удаленного доступа, в связи с чем требуется разрабатывать также новые методы защиты серверов от внешних угроз. В ходе исследования были описаны общие понятия удаленного доступа, такие как, что такое сервер и как происходит его работа, также были описаны его уязвимости и какие на данный момент известны способы уменьшения риска возникновения угрозы безопасности информации. Список используемых источников: Организация удаленного доступа к компьютеру и серверу [Электронный ресурс] / URL: http://infoprotect.net/protect_network/organizaciya_udalennogo_dostupa (Дата обращения: 19.05.2022); Средства удаленного доступа на все случаи жизни [Электронный ресурс] / URL: https://xakep.ru/2013/10/31/remote-acess-tools/ (Дата обращения: 19.05.2022); Сетевые протоколы удаленного управления [Электронный ресурс] / URL: https://teacherbox.ru/kompseti/pm02/lesson2/1-2-19-setevyie-protokolyi-udalennogo-upravleniya/.html (Дата обращения: 19.05.2022); Программа удалённого администрирования [Электронный ресурс] / URL: https://ru.wikipedia.org/wiki/ (Дата обращения: 19.05.2022); Протокол X11 и шрифты [Электронный ресурс] / URL: https://docs.altlinux.org/ru-RU/archive/2.2/html-single/master/admin-html/ch15.html (Дата обращения: 19.05.2022); VNC — удаленный доступ к компьютеру по сети [Электронный ресурс] / URL: https://habr.com/ru/post/76237/ (Дата обращения: 19.05.2022); Что такое SSL и зачем он нужен [Электронный ресурс] / URL: https://www.colocat.ru/texts/ssl.html (Дата обращения: 19.05.2022); Программы удаленного доступа по локальной сети и через Интернет [Электронный ресурс] / URL: https://compress.ru/article.aspx?id=18059 (Дата обращения: 19.05.2022). |