Инструментальные средства обеспечения безопасности

Как взаимодействуют удаленные клиенты и серверы


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

HOST2% xemacs -display HOST1:0.0

Вы можете заставить все X приложения использовать HOST1 по умолчанию для отображения, установив переменную окружения DISPLAY внутри среды командного интерпретатора. Для этого в командной строке HOST2 вы должны выполнить:

HOST2% DISPLAY=HOST1:0.0; export DISPLAY

Для Bourne shell (sh, bash), или:

HOST2% setenv DISPLAY HOST1:0.0

для C shell (csh, tcsh).

Теперь если вы запустите xemacs, то вместо попыток отображать информацию на HOST2 (на котором может быть запущен X сервер, а может, и нет), он будет пытаться отображать данные на HOST1. Ниже приводятся иллюстрации работы модели клиент/сервер.


увеличить изображение

Что означает значение :0.0 после строки HOST1 в переменной DISPLAY? Один хост теоретически может выполнять несколько X серверов. Каждый X сервер может управлять несколькими экранами. Формат переменной DISPLAY выглядит следующим образом:

DISPLAY = <hostname>:<displaynumber>.<screennumber>

где:

  • <hostname>. Определяет имя или IP-адрес хоста, на котором запущен X-сервер.
  • <displaynumber>. Определяет какой, X-сервер должен использовать X-клиент, начиная с нулевого номера.
  • <screennumber>. Определяет, какой экран X-сервера следует использовать, начиная с нулевого номера.

Если вы не используете необычную конфигурацию X-сервера, значение переменной DISPLAY всегда должно быть равным :0.0. Фактически, вам следует оставить только значение .0, поскольку экран с номером 0 используется по умолчанию.

X-серверы по умолчанию прослушивают TCP-порт с номером 6000. Если на той же самой машине был запущен второй X-сервер (дисплей), он будет прослушивать TCP-порт с номером 6001. Номер дисплея, который будет использовать X-сервер, всегда будет поставлен в соответствие TCP-порту с номером, образованным сложением 6000 с номером дисплея.

Вы можете обратить внимание на небольшую проблему с безопасностью в такой модели клиент/сервер. Задание переменной окружения позволяет нам сообщить клиенту на HOST2 отображать информацию на HOST1. Но что остановит вас от передачи информации от приложения куда ни будь еще? Один из наиболее распространенных способов взлома, рассматриваемых на тренингах по безопасности систем, является определение в переменной DISPLAY параметров вашего собственного X-сервера и наблюдение за тем, как вы запускаете все новые версии программы xeyes на своем рабочем столе всякий раз, когда пытаетесь что-либо сделать. Наиболее пугающим злоупотреблением может быть запуск программы вроде xkey, которая перехватывала бы все вводимые вами символы от X-сервера. Очевидно, что X-сервер должен иметь некоторые способы контроля доступа, чтобы только полномочные клиенты могли выводить свою информацию.



Содержание раздела