Учебное пособие 1262
.pdfПротокол и утилита обмена файлами FTP
Протокол FTP (File Transfer Protocol - протокол передачи файлов) предназначен для передачи файлов между машинами с использованием протокола TCP, но связь по FTP поддерживается с помощью двух соединений: по одному из них передаются команды FTP, а по другому - данные. На удалённой ЭВМ (сервере) процессу передачи данных соответствует порт 20, а протокольному интерпретатору - порт 21.
Протокол FTP позволяет передавать файлы в нескольких форматах. В большинстве систем определены два режима передачи файлов - текстовый и двоичный. Текстовый файл состоит из строк ASCII-символов, разделённых кодами перевода строки и возврата каретки, при его передаче выполняются действия по перекодировке символов. Для двоичных файлов не предусмотрено никакого определённого формата и никакой перекодировки, их передача осуществляется быстрее. Текстовый файл можно передавать как двоичный, но не наоборот.
Сеанс работы с ftp обычно включает следующие этапы:
запуск утилиты, установление соединения с удалённой ЭВМ (сервером);
переход в требуемый каталог на удалённой ЭВМ;
выбор режима передачи файлов;
передача данных согласно командам пользователя;
завершение работы, разрыв соединения.
Эти процедуры выполняются последовательно в каждом сеансе. Наиболее употребительные команды пользователя при работе с ftp приведены в таблице ниже.
9
Наиболее употребительные команды утилиты ftp
Ко- |
Пара- |
Описание |
манда |
метры |
|
ascii |
|
Переключиться в режим передачи тек- |
|
|
стовых файлов |
binary |
|
Переключиться в режим передачи двоич- |
|
|
ных файлов |
cd |
имя ката- |
Сменить рабочий каталог на удалённой |
|
лога |
ЭВМ |
close |
|
Закрыть соединение с удалённой ЭВМ |
del |
имя файла |
Удалить файл на удалённой ЭВМ |
dir |
маска фай- |
Отобразить содержимое текущего ката- |
|
лов |
лога сервера |
get |
имя файла |
Получить файл с удалённой ЭВМ |
hash |
on/off |
Включить или выключить режим вывода |
|
|
знака "#" для каждого переданного блока |
|
|
данных при передаче файлов |
help |
|
Получить подсказку |
lcd |
имя ката- |
Сменить рабочий каталог на локальной |
|
лога |
ЭВМ |
mget |
маска фай- |
Получить несколько файлов с удалённой |
|
лов |
ЭВМ |
mput |
маска фай- |
Отправить несколько файлов на удалён- |
|
лов |
ную ЭВМ |
open |
адрес |
Установить соединение с указанной |
|
ЭВМ |
ЭВМ |
put |
имя файла |
Передать файл на удалённую ЭВМ |
pwd |
|
Вывести имя текущего каталога |
quote |
команда |
Передать команду непосредственно FTP |
|
|
(для ввода команд администратора) |
quit |
|
Завершить работу с утилитой |
Поскольку количество пользователей в сети Internet очень велико, то нереально выделить каждому из них индивидуальные права доступа. В таких случаях для установления со-
10
единения по протоколу FTP используется метод анонимного доступа: в качестве имени пользователя используется слово anonymous, а вместо пароля - обычно слово guest (гость). Для анонимного доступа могут использоваться и другие варианты пароля.
При анонимном доступе пользователь имеет, как правило, очень ограниченные права.
Файловая система NFS
Сетевая файловая система NFS (см. рисунок) создана для ОС семейства Unix, реализована и для многих других ОС.
Структура сетевой файловой системы NFS
В файловой системе NFS есть два типа процедур: монтирования удалённой файловой системы и доступа к удалённым файлам.
11
Контроль доступа в NFS выполняется путём применения правил, определённых в локальной файловой системе NFS-сер- вера, и правил, задаваемых процедурой экспорта. Эта процедура заключается в следующем. На сервере необходимо предварительно явно объявить, какие ресурсы файловой системы сервер может предоставить клиентам для совместного использования. Кроме того, определяются права доступа к общим файлам и каталогам на сервере для сетевых клиентов, которые в этом случае идентифицируются IP-адресами или доменными именами соответствующих компьютеров. Сервер выдаёт разрешение клиенту на выполнение тех или иных действий в виде числового кода magic cookie. Это число клиент должен включать в каждый RPC-запрос в качестве доказательства своих полномочий. Кроме того, RPC-запрос содержит идентификаторы пользователя uid, от имени которого выступает приложение, и список идентификаторов групп gid, в которые входит данный пользователь. Администратор сервера задаёт права доступа к разделяемым файловым ресурсам на основе идентификаторов uid и gid клиентов. А это значит, что имеется потенциальная возможность коллизии. Обязанностью администратора является обеспечение согласованной идентификации пользователей на сервере и клиенте.
В большой сети эта задача становится нетривиальной, поэтому для этих целей используется сетевая информационная служба NIS.
Как и другие службы Sun RPC, NFS использует перенаправление портов с помощью редиректора портов portmap. Доступ к порту 111, который слушает portmap, можно ограничить посредством TCP_Wrappers. Для этого необходимо в файле
/etc/hosts.deny задать запись вида: portmap : ALL, что будет означать запрет доступа к порту 111 всем клиентам, кроме тех, кто описан в файле /etc/hosts.allow с помощью записей вида:
portmap : 192.168.1. (разрешить доступ из сети
192.168.1.0/24).
12
Таким образом, чтобы на сервере запустить NFS, нужно запустить программу сервера NFS, демон, ожидающий запросы монтирования от удалённых систем (rpc.mountd), службу portmap, и настроить доступ к общим каталогам.
Следует учитывать ещё и наличие как минимум двух файлов, отвечающих за отображение имён пользователей: /etc/passwd на сервере и /etc/passwd на клиентской машине. При этом возможны два случая: пользователь является владельцем файлов на сервере NFS и пользователь не имеет своих файлов на сервере. В первом случае он обязан иметь учётную запись на сервере, и тогда встаёт задача синхронизации UID и GID пользователей в масштабе всей локальной сети.
Синхронизировать UID администратор сети может вручную или с помощью файла соответствий идентификаторов, при этом серверу NFS нужно указать положение этого файла и задать соответствующую опцию в файле настройки сервера. Для управления сервером NFS используется файл /etc/exports. В этом файле содержится набор записей, каждая из которых определяет экспортируемый каталог. Запись занимает одну строку и имеет следующий формат:
каталог клиент1(опции) [клиент2(опции)] [клиент3(опции)] [...]
Имя экспортируемого каталога может иметь вид /home
или /pub.
Пример файла /etc/exports приведен ниже (подробнее см.
в [9, с.239]).
Пример. Содержание файла /etc/exports. /home *.vorstu (rw,sync)
/home 192.168.0.0/16(ro) /home/secure (noaccess)
В данном примере экспортируется каталог /home по следующим правилам. Доступ хостов из домена vorstu производится с правами чтения-записи, причём изменения производятся немедленно. Хосты из сегмента сети класса В с сетевым
13
адресом 192.168. имеют право только на чтение. Доступа к подкаталогу /home/secure не имеет никто из клиентов.
Для того, чтобы экспортировать описанные каталоги в текущей сессии, надо дать команду: exportfs -a, которая экспортирует все каталоги, переписывая их листинг. Он хранится в каталоге /var/lib/nfs, в файле, имя которого зависит от конкретной системы. Этот листинг читается демоном mountd при каждом запуске службы NFS.
Фактически, существуют два основных способа синхронизации UID и GID пользователей на клиентских машинах и серверах NFS: вручную в масштабе всей локальной сети (не очень удобно при большом количестве учётных записей на клиентских машинах), и файл синхронизации на сервере.
После того, как экспортированные каталоги описаны в файле /etc/exports и перезаписана таблица доступных каталогов с помощью команды exportfs, можно запустить сервис NFS. Все служебные процессы NFS запускаются вместе с сервером nfsd, portmap нужно запускать отдельно. Для запуска сервера NFS при каждом старте машины следует сделать соответствующие настройки с помощью утилит ntsysv или chkconfig.
Сервисы NFS и portmap имеют стартовые скрипты, поэтому запуск служб NFS сводится к вводу двух команд:
service portmap start service nfs start
которые и запустят все необходимые процессы.
На стороне клиента экспортируемые каталоги выглядят как разделы диска. Для их монтирования используется команда mount, при её вызове указывается сервер NFS и монтируемый каталог. Эти данные задаются в формате:
сервер: путь_к_каталогу.
14
Если точно неизвестно, какие каталоги экспортированы, можно воспользоваться утилитой showmount, которая показывает все каталоги NFS на удалённой машине.
Пример. Использование утилиты showmount.
# showmount -e localhost Export list for localhost: /tmp/1 *
Введя вышеуказанную команду для проверки работы служб NFS на своей локальной машине, увидим примерно такой вывод, как этот пример, он означает, что на сервере NFS отредактирован файл /etc/exports следующим образом:
/tmp/1 (ro)
то есть доступ к монтированию каталога /tmp/1 разрешён всем пользователям только для чтения.
Чтобы смонтировать удалённый каталог в своей файловой системе, надо выполнить команду mount:
# mount serv.vorstu:/tmp/1 /mnt/nfs-serv
что означает монтирование каталога /tmp/1, расположенного на сервере, в точку монтирования на локальной машине (каталог /mnt/nfs-serv, перед монтированием точка монтирования должна существовать). Далее работаем с ресурсом NFS как с локальным каталогом.
Если требуется монтирование удалённых каталогов при запуске системы, необходимо внести соответствующую запись в файл /etc/fstab, например,
serv.vorstu:/tmp/1 /mnt/nfs-serv nfs defaults 0 0
15
Варианты заданий
Посмотреть командой man инструкции к указанным командам администрирования и отработать их применение на приведенных примерах.
По работе с FTP получить удалённый доступ к серверу, перейти в каталог, указанный преподавателем. Выполнить один из вариантов:
найти в этом каталоге указанный файл и перенести его с удалённого сервера на локальную машину;
поместить в этот каталог указанный файл с локальной машины;
получить список файлов этого каталога, сохранить его в файл. Перенести полученный файл с сервера на ло-
кальную машину.
Закрыть соединение с сервером.
Контрольные вопросы
1.Приведите рекомендации и указания по работе с файловой системой Unix во взаимодействии с файловой системой
MS DOS / Windows.
2.Опишите перечень базовых сетевых сервисов. Какие действия позволяет выполнить сетевая утилита FTP ?
3.Расскажите об основных командах утилиты FTP.
4.Как осуществляется соединение и взаимодействие процессов по протоколу FTP ?
5.Какие возможности протокола FTP используются программами – «браузерами» ?
6.Что такое FTP-сервер ? Для чего используется анонимное соединение с сервером ?
7.Какие протоколы использует файловая система NFS?
8.Какие демоны запускаются при использовании NFS? Что такое демон?
16
Лабораторная работа №2 Конфигурирование сетевых средств OC LINUX
Цель работы – изучение утилит и методов конфигурирования ОС LINUX и аппаратных средств для обмена данными по сети.
Краткие теоретические сведения
При работе в сети TCP/IP процесс формирования сети состоит из следующих этапов.
1.Планирование физической и логической структуры сети. Этот этап включает определение количества сегментов сети, технических и программных средств, с помощью которых сегменты объединяются в сеть, определение серверов и рабочих станций, которые будут установлены в каждом сегменте и определение типа среды (тип кабелей и др.).
2.Назначение IP-адресов. IP-адреса назначают сетевым интерфейсам. Если у хоста имеется несколько интерфейсов, у него будет несколько адресов.
3.Установка сетевых аппаратных средств.
4.Настройка всех хостов на конфигурирование сетевых интерфейсов во время начальной загрузки.
5.Настройка статических маршрутов и сервисных процессов маршрутизации.
Мы рассматриваем настройку интерфейса Ethernet на стеке протоколов TCP/IP. После того, как платы установлены в машины и соединены кабелями с коммутатором (это должно подтверждаться индикаторами на сетевых картах и коммутаторе), можно приступать к настройкам локальной сети в ОС. Их можно сконфигурировать ещё на стадии инсталляции системы. Если необходимо сконфигурировать сетевой интерфейс после установки системы, настройка включает следующие действия:
получение и установка драйвера устройства;
ассоциирование устройства с драйвером;
17
настройка параметров сети: установка статического IP-адреса интерфейса или настройка клиента DHCP, шлюза по умолчанию, DNS-сервера по умолчанию;
перезапуск сетевых сервисов;
проверка работы сети.
Эти действия можно выполнить в полуавтоматическом режиме с помощью утилит настройки сети или вручную.
Базовой утилитой настройки сетевого интерфейса в графической среде является программа netadmin. После запуска утилиты видим четыре вкладки и несколько кнопок на каждой. Чтобы добавить адаптер надо, находясь на вкладке «Сетевые адаптеры», нажать кнопку «Добавить». В появившемся диалоге следует указать: название драйвера (например, для встроенного адаптера Broadcom это будет bcm4400), интерфейс (если одна карта, то eth0, следующие будут называется eth1, eth2 и т.д.). Как правило, не требуется вводить дополнительные настройки. Следует подтвердить изменения и перейти на вкладку «Сетевые интерфейсы». На этой вкладке нужно ввести в соответствующие поля после нажатия кнопки «Добавить» (или «Изменить», если настраиваете существующий интерфейс): IP-адрес машины, маску подсети, адрес сети и широковещательный адрес. Эти данные должен выдать администратор сети. Отмечают опции «Активировать при загрузке» и «Любой пользователь может (де)активировать интерфейс» при необходимости. После подтверждения изменений переходят на вкладку «Маршрутизация» и добавляют шлюз по умолчанию.
В противном случае, при отсутствии выходного шлюза адреса вне текущей сети будут недоступны. После ввода настроек на вкладке «Сетевые интерфейсы» надо нажать кнопку «Пуск». Интерфейс будет активирован. Его работоспособность можно проверить с помощью утилит ifconfig и ping.
18