Лабораторная работа 7.
ОС Linux, cетевое взаимодействие.

Информация

Для организации сетевого взаимодействия между компьютерами требуется

  1. наличие между ними физического или логического сетевого соединения на базе одного из стеков сетевых протоколов
  2. наличие серверной службы передачи данных на одном из них
  3. наличие клиентской службы передачи данных - на другом

В качестве стека сетевых протоколов в последнее время чаще всего используется стек TCP/IP. Передача данных между клиентской и серверной службами осуществляется обычно по стандартизованным протоколам в рамках заявленного стека, что позволяет реализовывать клиентское и серверное ПО отдельно друг от друга разным разработчикам. В клиент-серверной передаче данных предполагается, что клиент инициирует соединение, а сервер - отвечает на запросы клиента.

Различают следующие виды передачи данных:

  1. передача файлов
  2. удаленное выполнение процедур
  3. передача произвольных данных

Передача файлов подразумевает либо поддержку сетевым ПО передачу файлов между клиентской и серверной файловыми системами, либо поддержку специализированной сетевой файловой системы.

В первом случае сеанс связи устанавливается обычно на непродолжительное время для передачи файлов из одной файловой системы в другую, после чего связь завершается (протоколы FTP, SSH и др.).

Во втором случае установка связи носит постоянный характер и удаленная файловая система интегрируется в локальную файловую систему (протоколы CIFS, SMB, NFS и др.). При этом появляется возможность любым приложениям использовать удаленные файлы средствами, специфичными для локальной файловой системы. В ОС Windows это обеспечивается подключением сетевых дисков, в ОС Linux - монтированием сетевой файловой системы.

Удаленное выполнение процедур предполагает наличие возможностей выполнять команды на удаленной системе. Для этого могут использоваться как узкоспециализированные протоколы (RPC, DCOM и др.), так и протоколы, предоставляющие администратору полноценный удаленный консольный или графический интерфейс (Telnet, SSH, RDP и др.)

Сервисы, предназначенные для передачи произвольных данных, не ассоциируют передаваемые данные с файлами и файловой системой. Это могут быть данные любого вида и формы, регламентируемые только используемым протоколом (HTTP, SMTP, SNMP и др.)

Задание

Проверить возможности сетевого взамодействия ОС Linux, установленной в предыдущей ЛР.
  1. Средствами VirtualBox создать снимок системы, чтобы впоследствии можно было отвергать изменения, произведенные в ОС и возвращаться к ее первоначальному состоянию.
  2. В VM установить утилиты lsof и nmap. Утилита lsof предназначена для вывода списка открытых файлов (lsof - LiSt Of Files). Так как в ОС Linux сетевые соединения также считаются файлами, lsof имеет параметры для их анализа. Утилита nmap предназначена для сканирования сетевых портов.
  3. Используя утилиту nmap, определить, какие TCP-порты прослушиваются на VM. Подтвердить полученную информацию, используя утилиту lsof, и дополнительно выяснить идентификаторы слушающих процессов. Используя утилиту ps, выяснить местоположение слушающих процессов в файловой системе. Используя утилиту rpm, выяснить, к каким программным пакетам относятся найденные приложения. Используя утилиту apt-cache, вывести описание найденных пакетов. Определить, для какого вида передачи данных предназначены найденные процессы.
  4. Используя браузер на HN, поключиться к одному из прослушиваемых сетевых портов на VM и определить, для каких целей предназначено слушающее приложение. В случае запроса логина-пароля, использовать логин-пароль администратора VM.
  5. Используя Midnight Commander на HN или на другом компьютере локальной сети (если на HN используется ОС Windows), подключиться c помощью Shell-соединения к VM и скопировать свой каталог info в каталог /tmp/ на VM. Проверить результат с консоли VM. При запросе логина-пароля, использовать логин-пароль созданного во время установки VM обычного пользователя.
  6. Используя утилиту ssh на HN (если на HN используется ОС Linux) или утилиту putty на HN (если на HN используется ОС Windows), подключиться к VM и с помощью утилиты lsof определить, какой сетевой порт используется на HN для организации связи с VM.
  7. Запустить в VM утилиту netcat в режиме прослушивания одного из сетевых портов из диапазона от 10000 до 65535 и с перенаправлением полученного из сети содержимого в файл /tmp/data_НСБ.txt. Используя утилиту netcat на HN или любом другом компьютере локальной сети, отправить один из своих файлов (см. ЛР№1 и ЛР№2) на соответствующий сетевой порт VM. Проверить факт получения файла.