
3.2. Утилита route.
Вторая утилита, которая необходима для настройки сети, — route. Она позволяет указать шлюз для выхода в Internet. Если система подключается к Internet через модем, то она должна автоматически настраиваться Internet-провайдером. В противном случае системе необходимо непосредственно указать место ее подключения (шлюз) к Internet.
Представим, например, что имеется узел с IP-адресом 192.168.0.2 и подключенная к Internet система с IP-адресом 192.168.0.1. Чтобы указать узлу в качестве шлюза Internet использовать адрес 192.168.0.1, достаточно ввести следующую команду:
route add default gateway 192.168.0.1
Данная команда дает указание утилите определить адрес 192.168.0.1 для выхода в Internet Пакеты, не имеющие других маршрутов, будут направляться по адресу 192.168.0.1. Если набрать команду route без параметров, можно увидеть, куда будут направляться все пакеты данных. На листинге 2 показаны маршруты движения пакетов в локальной сети.
Листинг 2. Отображение команды route
Kernel IP routing table
Destination Gateway Genmask Flags Metric ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.0.1 0.0.0.0 UG 1 0 0 eth0
Этот листинг показывает, что пакеты, адресованные сети 192.168.0.0 (от 192.168.0.1 до 192.168.0.255) будут отсылаться в локальную сеть. Пакеты, адресованные сетям 127.0.0.1-127.255.255.255, попадут на локальный компьютер. Все остальные пакеты (0.0.0.0) пересылаются на адрес 192.168.0.1 для дальнейшей обработки.
Если необходимость выхода в Internet отсутствует, можно удалить установленный маршрут с помощью следующей команды:
route del default
3.3. Утилита ping.
Если все устройства настроены правильно, можно попробовать опросить их. Команда ping посылает проверяемому устройству запрос ICMP. Если оно работает корректно, то от данного устройства приходит ICMP-ответ.
Проверяя что-то с помощью утилиты ping, вначале нужно попытаться воспользоваться IP-адресом настраиваемого интерфейса:
ping 192.168.0.2
Прервать работу этой утилиты можно, нажав клавиши <Ctrl-C>. Если поступает сообщение об ошибке, значит интерфейс неактивен или работает неправильно. Если вы получаете ответы, остановите работу ping и попробуйте опросить другие компьютеры сети, обратившись к ним с использованием IP-адреса:
ping 192.168.0.3
Также можно попробовать опросить удаленный компьютер с использованием имени:
ping E05
Если данная команда работает и ответ от запрашиваемого устройства приходит, значит этот адрес или имя существует в данной локальной лети.
3.4. Задание имени пк.
Команда hostname позволяет задать имя ПК. Если отсутствуют аргументы то эта команда выдаст текущее имя ПК, в обратном случае изменит текущее имя. Вот пример:
hostname Byron
Имя компьютера используется некоторыми почтовыми клиентами для отправки или приема почты.
4. Протокол передачи файлов (ftp).
4.1. Обзор протокола ftp.
Протокол передачи файлов (FTP) представляет собой достаточно простой в использовании, но при этом довольно мощный протокол для передачи файлов между двумя системами. После протокола FTP было разработано и реализовано множество сетевых протоколов и систем совместного использования файлов, но до сих пор остается самым популярным протоколом для выполнения удаленной передачи файлов. Существует несколько пакетов FTP-серверов. Самые популярные из них wu-ftp, который был разработан в Вашингтонском университете в Сент Луисе. В дистрибутивах Caldera и Red Hat он используется по умолчанию. В Debian также существует возможность его установить. Другим распространенными пакетами FTP-серверов является netkit и ProFTPd.
С помощью протокола FTP предоставляется возможность пересылки файлов любого типа из одной системы в другую. Он разработан таким образом (документ RFC959), что взаимодействующие системы не обязательно должны быть одного и того же типа. Другими словами обмен файлами проводится между любыми ОС, в которых реализован стек протоколов TCP/IP и которые предоставляют сервис FTP. Одна из систем вступает в качестве сервера, а другая – в качестве клиента. Формат пересылаемых данных, будь то текстовый файл, файл базы данных или приложение, не имеет никакого значения.
Сервис FTP основан на протоколе TCP/IP. Для выполнения пересылки данных по протоколу FTP используется два отдельных сеанса связи по протоколу TCP. Один из сеансов связи обычно называется «управляющее соединение» (Control Connection), или «интерпретатор протокола» (Protocol Interpreter – PI), а другой – «соединение для передачи данных» (Data Connection), или «процесс передачи данных» (Data Transfer Process – DTP). На рис.3 изображены основные компоненты сеанса связи по протоколу FTP.
FTP-клиент |
|
FTP-сервер |
|
|
|
|
|
|
Рис.3. Для сеанса PI используется 21-й порт, а для сеанса DTP-20-й порт. Эти порты определяются в файле /etc/services
Для установления FTP-сеанса между двумя компьютерами сети необходимо, чтобы это была TCP/IP-сеть и были настроены сервисы FTP. Сеанс FTP инициируется подключением FTP-клиента к FTP-серверу. Для обработки запроса от клиента FTP-сервер должен работать и быть соответствующим образом сконфигурированным.
4.2. FTP-сервер.
ProFTPd - один из самых популярных FTP серверов. Существует под множество платформ, в том числе под Windows. Настраивается одним файлом. Идеология конфигурационного файла взята из Apache. Известен своей надежностью, простотой организации виртуальных FTP серверов и наличием различных дополнительных модулей (SQL, LDAP, SSL/TLS, RADIUS).
Результатом этого пункта станет рабочий станет FTP-сервер с двумя директориями pub и incoming. Первая предназначена для хранения общедоступных для скачивания файлов. Все пользователи могут войти в нее и скачать понравившийся им файл. Создавать, удалять, переименовывать и перемещать файлы в этой папке запрещено. Вторая директория предназначена для закачки файлов на сервер. Роль администратора - периодически просматривать файлы находящиеся в incoming и если они ничего не нарушают - перемещать их в pub.
Установка
Для установки и предварительного конфигурирования достаточно одной команды
$ sudo aptitude install proftpd
Установочный скрипт proftpd самостоятельно создаст пользователя, директории, конфигурационный файл и добавит себя в скрипты автоматической загрузки.
Настройка
Открываем текстовым редактором конфигурационный файл proftpd.conf, который находится в директории /etc
sudo vi /etc/proftpd.conf
и делаем его похожим на конфигурацию приведенную ниже
# Название сервера
ServerName "My anonymous FTP server"
# Тип сервера, standalone - отдельный сервер, запускается в inet.d
ServerType standalone
# Порт прослушиваемый сервером
Port 21
# Порт пользователь под которым работает сервер
User nobody
Group nogroup
# Максимальнок кол-во одновременно запущенных серверов
MaxInstances 30
# Куда складывать логи
TransferLog /var/log/proftpd-tranfer.log
SystemLog /var/log/proftpd-sys.log
# Ограничение скорости скачивания, закачивания на 4 мб/сек
TransferRate RETR,STOR 4096
# Секция описывает анонимный FTP сервер
# Максимальное кол-во одновременно подключенных клиентов
MaxClients 20 "Sorry, max %m users -- try again later"
# Пользователь под которым будет работать анонимный FTP сервер
User ftp
Group nogroup
# Псевдоним, пользователь anonymous - это пользователь "ftp"
UserAlias anonymous ftp
# Ограничение на запись
# Запретить всем
DenyAll
# Секция описывающая директорию "incoming"
# Ограничения на загрузку, скачивание, создание директорий
# Разрешить всем
AllowAll
# Конец секции описывающей директорию "incoming"
# Секция описывающая директорию "pub"
# Ограничения на скачивание
# Разрешить всем
AllowAll
# Конец секции описывающей директорию "pub"
# Конец секции описывающей анонимный FTP сервер
Создание рабочих каталогов
Корневая директория сервера расположена в домашнем каталоге пользователя FTP, коим является /home/ftp. Создадим в этом каталоге каталоги pub и incoming
mkdir /home/ftp/incoming
mkdir /home/ftp/pub
Расстановка прав
Для того чтобы анонимный FTP-сервер мог работать в перечисленных каталогах, он должен иметь на них соответствующие права. Из файла /etc/proftpd.conf пользователь под которым будет работать анонимный FTP - это "ftp", группа - "nogroup". Сделаем этого пользователя владельцем каталогов incoming и pub
chown -R ftp:nogroup /home/ftp/incoming
chown -R ftp:nogroup /home/ftp/pub
Проверка
ls -la /home/ftp
Если так - все готово к первому запуску.
Запуск
Для запуска, перезагрузки, останова и пр. пакет ProFTPd создал скрипт /etc/init.d/proftpd.
$ /etc/init.d/proftpd help
Usage: /etc/init.d/proftpd {start|force-start|stop|force-stop|reload|restart|force-reload}
start | force-start | stop | force-stop | reload | restart | force-reload
Пробуем запустить
$ sudo /etc/init.d/proftpd start
Если все нормально то должны создаться указанные в /etc/proftpd.conf лог файлы и в файле /var/log/proftpd-sys.log добавиться строчка вида
Aug 23 23:15:09 coder-desktop proftpd[5100] localhost: ProFTPD 1.2.10 (stable) (built do mrt 22 18:28:32 CET 2001) standalone mode STARTUP
Сервер запущен.
4.3. FTP-клиент.
Для того чтобы получить доступ к файлам удаленного компьютера, на нем должен быть запушен FTP-сервер. Кроме того, необходимо знать либо имя и пароль пользователя, либо FTP-сервер должен разрешать анонимный доступ. Что бы запустить программу ftp нужно ввести:
ftp
После этого появляется приглашение интерпретатора команд этой программы:
ftp >
Если ввести знак вопроса, программа выдаст перечень возможных команд. Первая команда, которую нужно в этом случае ввести, — команда open, после которой надо указать сетевое имя компьютера, на котором запущен FTP-сервер. Если анонимный доступ к этому серверу разрешен, то вы получите запрос на ввод имени и пароля пользователя. По команде pwd можно узнать имя текущего каталога на удаленном компьютере, а по команде dir - вывести список файлов и подкаталогов этого каталога. Команда cd имя_каталога используется для смены текущего каталога на удаленном компьютере.
В любой момент можно повторно ввести команду ? или ее эквивалент help, чтобы получить подсказку по возможным командам. Для получения более подробном подсказки по конкретной команде надо ввести имя интересующей команды после help или ?, например, так:
ftp > help dir
Для выполнения какой-то команды на локальном компьютере (например, выяснить имя текущего каталога), надо дать соответствующую команду, перед которой поставить восклицательный знак:
ftp >! pwd
! — это команда интерпретатора, вызывающая новый экземпляр оболочки shell локального компьютера. Первый аргумент, следующий за символом !, должен быть командой оболочки, а все остальные аргументы — аргументами вызываемой команды. Дня смены текущего каталога на локальном компьютере имеется специальная команда lcd (очень полезная, поскольку часто до запуска ftp забываешь перейти в тот каталог, куда хочешь скопировать файл с удаленного компьютера; не выходить же из-за этого из программы ftp).
Для пересылки файла на удаленный компьютер используется команда
ftp > put имя_файла
(или ее синоним send), а для копирования файла с удаленного компьютера в текущий каталог на локальном диске — команда
ftp > get имя_файла
В принципе этих двух команд вполне достаточно для организации обмена файлами с удаленным компьютером, но как же неудобно ими пользоваться! Приходится набирать полностью имена всех пересылаемых файлов. Поэтому испытываешь воистину большое облегчение, когда узнаешь, что существуют такие команды, как input и mget. Они позволяют задать шаблон имени пересылаемых файлов и будут дополнительно переспрашивать, надо ли пересылать каждый конкретный файл. Благодаря этому можно (самый крайний случай) заказать пересылку всех файлов:
ftp > get *
а потом либо подтверждать пересылку очередного файла, либо отказываться.
Перед тем как начать пересылку файлов, необходимо выполнить одну из команд, определяющих режим пересылки: ascii или binary. По умолчанию программа использует режим ascii, и это вполне допустимо при пересылке текстовых файлов, но при передаче или получении исполняемых файлов необходимо задать режим binary. Процесс пересылки файлов можно прервать с помошью комбинации клавиш <Ctrl> + <C>.
Находясь в программе ftp, можно выполнить некоторые операции с файлами и каталогами на удаленном компьютере (конечно, для этого надо иметь соответствующие права). По команде
ftp > rename from name to_name
осуществляется переименование файла или каталога; команда
ftp > mkdir name
создает каталог, а
ftp > delete name
удаляет файл или каталог. Еще одна интересная команда — system, позволяет выяснить тип операционной системы на удаленном компьютере. Команда close (или disconnect) позволяет завершить сеанс работы с удаленным компьютером, не выходя из программы ftp (то есть предполагается, что после этого последует команда open, например, для соединения с другим компьютером). Для полного выхода из программы надо дать команду bye.