Установка и Настройка FTP сервера на freebsd

Изм.

Лист

№ докум.

Подпись

Дата

Лист

3

КП05.230106.021 ПЗ







Введение



Назначение и область применения изделия

Протокол FTP (File Transfer Protocol)





FTP (File Transfer Protocol или "Протокол Передачи Файлов") - один из старейших протоколов в Internet и входит в его стандарты. Обмен данными в FTP проходит по TCP-каналу. Построен обмен по технологии "клиент-сервер". На рисунке 1.1 изображена модель протокола. 



Рис. 1.1. Модель протокола 

В FTP соединение инициируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте протокола TELNET. Команды FTP генерируются интерпретатором протокола пользователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. В общем случае пользователь имеет возможность установить контакт с интерпретатором протокола сервера и отличными от интерпретатора пользователя средствами. 

Команды FTP определяют параметры канала передачи данных и самого процесса передачи. Они также определяют и характер работы с удаленной и локальной файловыми системами. 

Сессия управления инициализирует канал передачи данных. При организации канала передачи данных последовательность действий другая, отличная от организации канала управления. В этом случае сервер инициирует обмен данными в соответствии с параметрами, согласованными в сессии управления. 

Канал данных устанавливается для того же host'а, что и канал управления, через который ведется настройка канала данных. Канал данных может быть использован как для приема, так и для передачи данных. 

Возможна ситуация, когда данные могут передаваться на третью машину. В этом случае пользователь организует канал управления с двумя серверами и организует прямой канал данных между ними. Команды управления идут через пользователя, а данные напрямую между серверами (рисунок 1.2). 

Канал управления должен быть открыт при передаче данных между машинами. В случае его закрытия передача данных прекращается. 



Рис. 1.2. Соединение с двумя разными серверами и передача данных между ними 

Версии FTP





Протокол FTP формировался многие годы. Первые реализации в МТИ относятся к 1971. (RFC 114 и 141). RFC 172 рассматривает протокол, ориентированный на пользователя, и предназначенный для передачи файлов между ЭВМ. Позднее в документах RFC 265 и RFC 281 протокол был усовершенствован. Заметной переделке протокол подвергся в 1973, и окончательный вид он обрел в 1985 году. Таким образом, данный протокол является одним из старейших.



В настоящее время разработаны версии FTP для работы с IPv6 (RFC-2428).







































Сравнение FTP с другими протоколами передачи файлов





Одним из самых быстрых является протокол HyperProtocol. Как и Zmodem, он является потоковым протоколом, но помимо этого может сжимать передаваемые данные, как и протокол Kermit. Согласно протокола HyperProtocol приемник посылает подтвержение не после каждого файла, а в конце всего сеанса передачи. Он может быть с успехом использован для передачи информации по высрокоскоростньтм каналам. 



Особенность протокола BiModem состоит в том, что он является дуплексным, т.е. позволяет одновременно передавать файлы во встречных направлениях. Протокол BiModem также предусматривает возобновление передачи после обрыва связи и гибкое изменение размера блока от 16 байт до 16 Кбайт. 



Однако Bi Modem недостаточно устойчиво работает по каналам с высоким уровнем помех. 



Близким по функциональным возможностям к протоколу Bi Modem является дуплексный протокол HS/Link. Также как и протокол BiModem, он предоставляет возможность пользователям во время предачи файлов общаться в режиме Chat. 



Высокоскоростной дуплексный протокол Hydra отличается хорошей ус-тойчивочтью работы на линиях низкого качества и каналах с большими задержками передачи. 



Часто выбор протокола передачи файлов ограничен возможностями используемой коммуникационной программы. Тем не менее, существует возможность подключения некоторых протоколов передачи файлов к отдельным терминальным программам, которые штатно не предусматривают их использование. Это возможно в основном для большинства программ для DOS. Подключаемые внешние протоколы в таком случае должны быть в виде ис-полнямых (*.ехе) файлов.















Параметр

FTP

HyperProtocol

BIModem

Hydra

XMode-IK

CS-16

+

+







CRC-16

+

+



+

+

CRC-32

+



+

+



7 бит







+



8 бит

+

+

+

+

+

RTS/CTS

+

+

+

+

+

XON/XOFF

+

+



+



Сжатие данных

+

+







Размер файла

+

+

+

+



Дата модификации файла

+

+

+

+



Минимальный размер блока, байт



128

16

64

128

Максимальный размер блока, байт

1500(для Ethernet)

2к

4к

2к

1к

Масштабирование блоков

+

+

+

+



ARQ типа SAW

+

+

+

+

+

ARQ типа QBN

+

+

+

+



ARQ типа SR

+

+

+

+



Запрос файлов

+



+

+



Групповая передача

+

+

+

+



Восстановление

+



+

+

+

Переименование

+

+

+

+

+

Прерывание передачи

+

+

+

+



Прерывание передачи отдельного файла

+

+

+

+



Протоколирование

+

+

+

+



Дуплексная передача

+



+

+



Скорость при соединении DTE—DTE, Кбит/с

1,313 Мбит/с для Ethernet

115.2

115.2

57.6

19.2



Описание и обоснование.

Настройка с.о.с FreeBSD для FTP- сервера



Установка Операционной Системы FreeBSD.





		Заходим в BIOS.

		Boot -> 1st Boot Device = CD/DVD

	Exit -> Save Changes and Exit

		Перезагружаем компьютер.

	Открываем меню запуска FreeBSD.

		Нажимаем Enter.

		Открывается первое Окно(Выбиаем Страну).

		Российская Федерация -> Нажимаем Enter.

		Открывается следующее Окно(Выбор языка клавиатуры).

		Кириллица -> Нажимаем Enter.

		Открывается следующее Окно(Выбор типа установки).

		Custom (выборочная) - Нажимаем Enter.

		Открывается список Опций.



 1. Exit

 2. Options

 3. Partition

 4. Label

 5. Distribution

 6. Media









		Заходим в раздел Partition.

		удаляем все разделы клавишей "D".

	создаем раздел, нужного объема, клавишей "С".

		указываем размер (в нашем случае "40000 М") - М - мегабайты.

	указываем тип файловой системы (в нашем случае "165").

		Жмём "Q".

		Заходим в раздел Label.

		создаем логические диски, клавишей "C".

Имя                                | Размер

	1."/"(корневой раздел) | 1 Gb

	2."/swap"                        | 1 Gb

	3."/var"                           | 2 Gb (логи и т.п.)

	4."/tmp"                          | 1-5 Gb (временные файлы)

	5."/usr"(аналог /home)  | (остальное свободное место)

		Заходим в раздел Distribution.

		Fonts -> xAll

		Заходим в раздел Media.

		выбираем установку -> по умолчанию (с диска)

		Заходим в раздел Commit.

		нажимаем "Yes"



 - = Начинается Копирование файлов и Установка ОС FreeBSD = - 



		После установки открывается окно.

		нажимаем "No".

		Выходим из установки, перезагружаемся.



 - = Установка выполнена = -





		После перезагрузки открывается окно с вариантами загрузки ОС FreeBSD.

		Нажимаем Enter.



 - = Начинается загрузка ОС = -



		После загрузки выводятся на экран поля (Login:) и (Password:).

	в поле (login:) вводим (root), в поле (password:) ничего не пишем и жмём Enter.

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

Компиляция и установка своего ядра.





Файл nv6.patch копируем в директорию “/usr/src/sys/dev/mii”

		cp nv6.patch –rf /usr/src/sys/dev/mii

Заходим в директорию /usr/src/sys/amd64/conf

		cd /usr/src/sys/amd64/conf

Просматриваем содержимое этой директории

		ls

Делаем копию ядра «Generic» для надёжности.

		cp Generic «Имя своего файла»

Открываем свой файл

		ee «имя своего файла»

В файле изменяем его системное имя в строчке №8 [L8]

		Generic на «имя своего файла»

Комментируем строчку №194 [L194]

Выходим из файла и сохраняем его.

		Ctrl+C -> “exit” -> Enter

Заходим в директорию “/usr/src/”

		cd /usr/src/

Проводим установку своего ядра:

		make buildkernel KernelConf=”ИмяСвоегоЯдра”

как только проходит установка пишем следующее

		make installKernel KernelConf=”ИмяСвоегоЯдра”



 - = Ядро скомпилировано и установлено = - 









Установка Рабочего Стола.



Устанавливаем пакеты рабочего стола

		sysinstall

Заходим в директорию «Configuration» далее «Packages» далее «x11»

Выбираем пакеты – «kde_3.5.8» и «x org 6.9.0»

Устанавливаем и выходим в командную строку.

Пишем:

		cd /root (переходим в директорию /root)

Открываем файл «.xinitrc» 

		ee .xinitrc 

В нём прописываем следующее:

		exec startkde

Выходим из файла и сохраняем его.

В командной строке для запуска рабочего стола пишем:

		startx



 - = Рабочий Стол установлен и запущен = - 

























Подключение HDD, FlashDisc, CD-ROM.





Для подключения устройств используем команду:

		mount

Структура команды выглядит следующим образом:

		mount –t «файловая система» /dev/«уср-во» «имя папки»

Для извлечения устройства выходим из его директории и командой:

		umount «имя папки»

отключаем смонтированное устройство.

Файловые системы:

	Флэшка = msdosfs

	Жесткий диск = ntfs (fat32)

	CD-диск = cd9660

































Установка драйверов для сети и её настройка.





Переходим в папку с драйвером и распаковываем его.

		cd /usr/nv6/

	ls

	tar –xzvf «имя файла»

Заходим в распакованную папку с драйвером и копируем его.

		cd /usr/nv6/«имя файла драйвера»

	make

 - = Проходит компиляция = - 

Копируем файл в директорию /boot/modules

		cp if_nfe_ /boot/modules

	cd /boot/defaults

Открываем файл

		ее loader.conf

В строчке №198 прописываем следующее

		if_nfe_load = “Yes”

Закрываем файл.



Настройка сети.



Командой “ifconfig” просматриваем сетевые устройства.

Устанавливаем IP нужному устройству:

		ifconfig «имя устройства» inet «нужный IP»

Задаём маску подсети:

		ifconfig «имя устройства» netmask «маска подсети»







Установка xORGConfig



В командной консоле пишем следующее:

		xorgconfig (жмём Enter для продолжения, Ctrl+C для отмены)

	1.	Выбираем параметр мыши (-4-, ps\2 mouse)

2.	Использовать 3 кнопки для мыши ? (-Y- Да)

3.	Имя мыши выбираем поумолчанию (/dev/psm0)

4.	Выбираем тип клавиатуры (-3-)

5.	Выбираем страну (54 – Russia)

6.	Вариант имени для «ру» (Жмём «Enter»)

7.	Настройки монитора ( Enter – по умолчанию)

8.	Настройки монитора (Частота, разрешение и т.п. – 9 - )

9.	Вертикальная синхронизация 



































Установка и Настройка FTP-сервера





Из пакетов устанавливаем FTPD.



 - = Проходит установка = -



Открываем файл inetd.conf в директории /etc:

cd /etc

ee inetd.conf



Изменяем первую строчку настроек, убирая комментарий(#), в конце строки задаём нужные параметры FTP-серверу.

-D: запускать ftpd в режиме демона.

-a <адрес>: в режиме демона принимать соединения только на указанный IP-адрес.

-d: включить режим отладки (подробная информация о работе будет выдаваться серверу syslog как LOG_FTP).

-h: не выводить информацию о системе в сообщениях сервера.

-l: протоколировать все сессии (обычно используется/var/log/xferlog).

-A: разрешить только анонимный доступ.

-M: запретить анонимным пользователям создавать папки.

-m: разрешить анонимным пользователям модифицировать существующие файлы (если для этого достаточно системных прав).

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





-r: перевести сервер в режим «только для чтения». Любая модификация размещенных данных будет запрещена.

Дополнительную информацию всегда можно найти на странице руководства man ftpd(8).



Открываем файл rc.conf в директории /etc/defaults:

cd /etc/defaults

ee rc.conf

Ищем строчку "ftpd_enabled=" и дописываем "Yes"

Далее выходим из файла и сохраняем его.

После перезагружаем компьютер и при загрузке сможем увидеть что FTP-сервер запущен.



 - = FTP-сервер запущен и работает в автономном режиме = - 

































Команды запуска, перезапуска, остановки FTP-сервера.





Программа ftp воспринимает следующие команды. Аргументы команды, которые содержат пробелы, необходимо брать в кавычки (").

! [ команда [ аргументы ] ] 

Вызывает интерактивный командный интерпретатор на локальной машине. Если заданы аргументы, первый из них рассматривается как команда, которую необходимо выполнить, а остальные - как аргументы для этой команды. 

? [ команда ] 

Синоним для команды help. 

$ имя_макроса [ аргументы ] 

Выполняет макрос имя_макроса, который был определен с помощью команды macdef. Аргументы передаются макросу без расширения. 

account [ пароль ] 

Передает дополнительный пароль, требуемый удаленной системой для доступа к ресурсам после успешного завершения регистрации. Если аргумент не задан, пользователю будет предложено ввести пароль учетной записи в режиме ввода без отображения. 

append локальный_файл [ удаленный_файл ] 

Добавляет локальный_файл к файлу на удаленной машине. Если удаленный_файл не указан, имя локального файла используется для именования удаленного после выполнения всех изменений, определяемых установками ntrans или nmap. При передаче файла используются текущие установки типа, формата, режима и структуры. 

ascii 

Устанавливает режим передачи файлов (file transfer type) в ASCII. Этот тип 





передачи используется по умолчанию. 

bell 

Приводит к выдаче звукового сигнала после выполнения каждой команды передачи файла. 

binary 

Устанавливает режим передачи файлов для поддержки передачи двоичных образов. 

bye 

Прекращает сеанс FTP с удаленным сервером и завершает работу ftp. Конец файла также прекратит сеанс и приведет к выходу из программы. 

case 

Переключает изменение регистра имен файлов на удаленном компьютере при выполнении команд mget. Когда изменение регистра включено (по умолчанию оно выключено), файлы с удаленного компьютера, в именах которых все буквы - прописные (в верхнем регистре), записываются в локальный каталог с преобразованием букв в строчные (в нижнем регистре). 

cd удаленный_каталог 

Делает удаленный_каталог текущим каталогом на удаленной машине. 

cdup 

Делает текущим каталогом на удаленной машине родительский каталог текущего. 

chmod [ режим ] [ удаленный_файл ] 

Изменяет права доступа к удаленному файлу. 

close 

Прекращает сеанс FTP с удаленным сервером и возвращается в командный интерпретатор. Все определенные макросы стираются. 

cr 

Переключает удаление символа возврата каретки при получении файла в 





режиме ascii. При передаче файлов в режиме ascii записи (строки) заканчиваются парой символов возврат каретки/перевод строки. Когда cr включен (по умолчанию), символы возврата каретки удаляются из этой последовательности, чтобы получить ограничитель записи (record delimiter) UNIX в виде одного перевода строки. Записи на не-UNIX удаленных системах могут содержать одиночные символы перевода строки; при выполнении передачи в режиме ascii эти переводы строки можно будет отличить от ограничителя записи только если cr сброшен. 

delete удаленный_файл 

Удаляет файл удаленный_файл с удаленной машины. 

debug [ уровень_отладки ] 

Переключает режим отладки. Если задан необязательный параметр уровень_отладки, это значение используется для установки уровня отладки. Когда отладка включена, ftp печатает каждую команду, посылаемую на удаленную машину, предваряя ее строкой "-->". 

dir [ удаленный_каталог [ локальный_файл ] ] 

Печатает листинг содержимого текущего каталога на удаленной машине (или удаленного_каталога), и, при необходимости, помещает его в локальный_файл. Если включена выдача интерактивных приглашений, ftp попросит пользователя проверить, что последний аргумент действительно является тем локальным файлом, в котором необходимо сохранить результат dir. Если каталог не указан, используется текущий каталог на удаленной машине. Если не указан локальный файл, или в качестве локального файла указан -, результат выдается на терминал. 

disconnect 

Синоним для close. 

form формат 

Устанавливает формат передачи файла. Значение формата по умолчанию – 





file. 

get удаленный_файл [ локальный_файл ] 

Получает удаленный_файл и сохраняет его на локальной машине. Если имя локального файла не указано, он получает то же имя, что и на удаленной машине, с учетом изменений, вызванных текущими установками case, ntrans и nmap. При передаче файла используются текущие значения типа, формата, режима и структуры. 

glob 

Переключает расширение имени файла для команд mdelete, mget и mput. Если расширение ("глобализация" - globbing) выключено с помощью glob, аргументы имен файлов используются буквально и не расширяются. Расширение имен файлов для mput выполняется так же, как в sh(1). Для mdelete и mget, каждое имя удаленного файла расширяется отдельно на удаленной машине и списки не сливаются в один. Скорее всего, имя каталога будет расширяться не так, как имя обычного файла: конкретный результат зависит от удаленной операционной системы и сервера ftp; его можно посмотреть, выполняя команду 'mls удаленные_файлы -'. Учтите, что mget и mput не предназначены для пересылки целых деревьев подкаталогов файлов. Это можно сделать, пересылая архив tar(1) поддерева (в двоичном режиме). 

hash 

Переключает выдачу знака "#" для каждого переданного блока данных. Размер блока данных равен BUFSIZ байтам. BUFSIZ определен в файле stdio.h. 

help [ команда ] 

Выдает краткое (однострочное) описание команды. Если аргумент не указан, ftp печатает список известных команд. 

idle [ время_ожидания ] 

Получает/устанавливает время ожидания на удаленной машине. 





image 

То же, что и binary. 

lcd [ каталог ] 

Изменяет текущий каталог на локальной машине. Если каталог не указан, используется начальный каталог пользователя. 

ls [ удаленный_каталог [ локальный_файл ] ] 

Выдает сокращенный листинг содержимого каталога на удаленной машине. Листинг включает любую системно- зависимую информацию, которую решил включить сервер; например, большинство систем UNIX будут выдавать результат команды ls -l (см. также nlist). Если удаленный_каталог не указан, используется текущий каталог. Если включена выдача интерактивных приглашений, ftp попросит пользователя проверить, что последний аргумент действительно представляет собой локальный файл, в который необходимо записать результат. Если локальный файл не указан или в качестве локального_файла указан -, результат посылается на терминал. Дополнительные опции можно задавать, беря аргументы в кавычки. Например, ls "-rt dir", приведет к показу листинга каталога dir, упорядоченного по времени последнего изменения файлов, если удаленная операционная система - UNIX. 

macdef имя_макроса 

Определяет макрос. Последующие строки запоминаются как макрос имя_макроса; пуста строка (подряд идущие символы новой строки в файле или переводы строк, введенные с терминала) прекращает режим ввода макроса. Имеется ограничение - не более 16 макросов и 4096 символов суммарно во всех определенных макросах. Макрос остается определенным, пока не будет выполнена команда close. Макропроцессор интерпретирует '$' и '\' как специальные символы. Символ '$', за которым идет цифра (или цифры), заменяется на соответствующий аргумент вызова макроса в 





командной строке. Символ '$', за которым идет 'i', показывает макропроцессору, что макрос необходимо выполнять циклически. На первом проходе '$i' заменяется на первый аргумент вызова макроса в командной строке, на втором проходе эти символы заменяются на второй аргумент, и так далее. Символ '\', за которым идет любой символ, заменяется на этот символ. Используйте '\' для предотвращения специальной обработки символа '$'. 

mdelete [ удаленные_файлы ] 

Удаляет указанные файлы с удаленной машины. 

mdir удаленные_файлы локальный_файл 

Действует как dir, за исключением того, что можно указать удаленные файлы. Если включена выдача интерактивных приглашений, ftp попросит пользователя проверить, что последний аргумент действительно представляет собой локальный файл, в который необходимо записать результат выполнения mdir. 

mget удаленные_файлы 

Расширяет список удаленных_файлов на удаленной машине и выполняет команду get для каждого полученного таким образом имени файла. Подробнее о расширении имен файлов см. в описании команды glob. Результирующие имена файлов затем обрабатываются в соответствии с текущими установками case, ntrans и nmap. Файлы передаются в локальный текущий каталог, который можно изменить с помощью команды lcd каталог; новые локальные каталоги можно создавать с помощью команды ! mkdir каталог. 

mkdir имя_каталога 

Создает каталог на удаленной машине. 

mls удаленные_файлы локальный_файл 

Аналогична nlist, но позволяет задать несколько имен удаленных файлов, а 





локальный_файл указывать обязательно. Если включена выдача интерактивных приглашений, ftp попросит пользователя проверить, что последний аргумент действительно представляет собой локальный файл, в который необходимо записать результат выполнения mls. 

mode [ режим ] 

Устанавливает указанный режим передачи файла. По умолчанию используется режим stream (потоковый). 

modtime имя_файла 

Показывает время последнего изменения файла на удаленной машине. 

mput локальные_файлы 

Расширяет символы-заместители (wild cards) в списке локальных файлов, заданных в качестве аргументов, и выполняет команду put для каждого файла в результирующем списке. Подробнее о расширении имен файлов см. в описании команды glob. Результирующие имена файлов затем будут обрабатываться в соответствии с установками ntrans и nmap. Команда mput не позволяет задавать имена файлов на удаленной машине. 

newer удаленный_файл [ локальный_файл ] 

Получает файл, если удаленный_файл более новый, чем локальный_файл. 

nlist [ удаленный_каталог [ локальный_файл ] ] 

Выдает список файлов в каталоге на удаленной машине. Если удаленный_каталог не указан, используется текущий каталог. Если включена выдача интерактивных приглашений, ftp попросит пользователя проверить, что последний аргумент действительно представляет собой локальный файл, в который необходимо записать результаты команды nlist. Если локальный файл не указан или в качестве локального_файла указан -, результат посылается на терминал. 

Дополнительные опции можно задать, взяв аргументы в кавычки. Например, nlist "-rt dir" приведет к показу упорядоченного по времени последнего 





изменения листинга содержимого каталога dir. 

nmap [ входной_шаблон выходной_шаблон ] 

Устанавливает или отключает механизм преобразования имен файлов (filename mapping mechanism). Если аргументы не указаны, механизм преобразования имен файлов отключается. Если аргументы указаны, имена удаленных файлов преобразуются в ходе выполнения команд mput и команд put, в которых не указано имя удаленного файла. Если аргументы указаны, имена локальных файлов преобразуются в ходе выполнения команд mget и команд get, в которых не указано имя локального файла. Эта команда полезна при подключении к удаленному компьютеру с не-UNIX операционной системой, имеющей другие соглашения или традиции именования файлов. Преобразование выполняется по шаблону, устанавливаемому входным_шаблоном и выходным_шаблоном. Входной_шаблон - это шаблон для имен принимаемых файлов (которые могут быть предварительно обработаны в соответствии с установками ntrans и case). Во входных_шаблонах можно использовать подстановку переменных, включая в них последовательности $1, $2, ..., $9. Чтобы предотвратить такую специальную обработку символа '$', используйте '\'. Все остальные символы рассматриваются буквально и используются для определения значений переменных входного шаблона nmap. Например, если входной_шаблон задан как $1.$2, а удаленный файл имеет имя mydata.data, $1 получит значение mydata, а $2 получит значение data. Выходной_шаблон определяет имя файла, получающегося в результате преобразования. Последовательности $1, $2, ..., $9 заменяются значением, полученным по входному_шаблону. Последовательность '$0' заменяется на исходное имя файла. Кроме того, последовательность [seq1,seq2] заменяется на seq1 если seq1 не является пустой строкой; в противном случае она заменяется на seq2. Например, команда nmap $1.$2.$3 [$1,$2].[$2,file] приведет к выходному имени файла 





myfile.data для входных файлов с именами myfile.data и myfile.data.old, myfile.file для входного файла с именем myfile и myfile.myfile для входного файла с именем .myfile. В выходной_шаблон можно включать пробелы как в следующем примере: nmap $1 |sed "s/ *$//" > $1. Используйте символ '\' для предотвращения специальной обработки символов '$', '[', ']' и ','. 

ntrans [ входные_символы [ выходные_символы ] ] 

Устанавливает и отключает механизм перевода символов имен файлов (filename character translation mechanism). Если аргументы не указаны, механизм перевода символов имен файлов отключается. Если указаны аргументы, символы в именах удаленных файлов переводятся в ходе выполнения команд mput и команд put, в которых не указано имя удаленного файла. Если указаны аргументы, символы в именах локальных файлов переводятся в ходе выполнения команд mget и команд get, в которых не указано имя локального файла. Эта команда полезна при подключении к удаленному компьютеру с не-UNIX операционной системой, имеющей другие соглашения или традиции именования файлов. Символы в имени файла, соответствующие символу во входных_символах, заменяются на соответствующий символ из выходных_символов. Если позиция символа во входных_символах больше, чем длина выходных_символов, символ удаляется из имени файла. 

open хост [ порт ] 

Устанавливает соединение с сервером FTP на указанном хосте. Можно дополнительно задать номер порта и в этом случае ftp попытается обратиться к серверу FTP на этом порту. Если опция автоматической регистрации включена (по умолчанию), ftp также попытается автоматически зарегистрировать пользователя на сервере FTP (см. ниже). 

prompt 

Переключает выдачу интерактивных приглашений (interactive prompting). 





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

proxy команда_ftp 

Выполняет команду ftp по второму управляющему соединению. Эта команда позволяет выполнить одновременное подключение к двум удаленным серверам FTP для передачи файлов между ними. Первой командой proxy должна быть команда open для установления второго управляющего соединения. Введите команду proxy ?, чтобы увидеть другие команды ftp, которые можно выполнять по второму управляющему соединению. Следующие команды работают по-другому, если перед ними указана команда proxy: open не будет определять новые макросы в ходе процесса автоматической регистрации, close не будет стирать существующие определения макросов, get и mget передают файлы с хоста основного управляющего соединения на хост второго управляющего соединения, а put, mput и append передают файлы с хоста второго управляющего соединения на хост основного управляющего соединения. Передача файлов третьим сторонам зависит от поддержки команды PASV протокола ftp сервером, к которому выполнено второе управляющее соединение. 

put локальный_файл [ удаленный_файл ] 

Записывает локальный_файл на удаленную машину. Если удаленный_файл не указан, для удаленного файла используется имя локального файла после обработки в соответствии с установками ntrans или nmap. При передаче файлов используются текущие установки типа, формата, режима и структуры. 







pwd 

Печатает имя текущего каталога на удаленной машине. 

quit 

Синоним для bye. 

quote arg1 arg2 . . . 

Указанные аргументы посылаются в неизменном виде удаленному серверу FTP. 

recv удаленный_файл [ локальный_файл ] 

Синоним для get. 

reget 

Получает файл, начиная с конца локального_файла. 

restart 

Повторно выполняет передачу файла с указанной в байтах позиции. 

rhelp [ имя_команды ] 

Запрашивает справку с удаленного сервера FTP. Если указано имя_команды, оно тоже передается серверу. 

rstatus [ имя_файла ] 

При вызове без аргументов показывает статус удаленной машины. Если указано имя_файла, показывает статус файла с соответствующим именем на удаленной машине. 

rename [ старое_имя ] [ новое_имя ] 

Переименовывает файл старое_имя на удаленной машине в файл новое_имя. 

reset 

Очищает очередь ответа. Эта команда повторно синхронизирует последовательность команда/ответ с удаленным сервером ftp. Повторная синхронизация может понадобиться после нарушения протокола ftp удаленным сервером. 







rmdir имя_каталога 

Удаляет каталог на удаленной машине. 

runique 

Включает и отключает сохранение файлов с уникальными именами в локальной системе. Если уже существует файл, имя которого совпадает с именем целевого локального файла для команды get или mget, к имени добавляется .1. Если получившееся в результате имя совпадает с именем другого существующего файла, к исходному имени добавляется .2. Если этот процесс доходит до .99, выдается сообщение об ошибке и передача не происходит. Сгенерированное уникальное имя файла сообщается пользователю. Учтите, что runique не повлияет на локальные файлы, сгенерированные из команды интерпретатора shell (см. ниже). По умолчанию сохранение с уникальными менами выключено. 

send локальный_файл [ удаленный_файл ] 

Синоним для put. 

sendport 

Включает и отключает использование команд PORT. По умолчанию, ftp будет пытаться использовать команду PORT при установке соединения для каждой передачи данных. Использование команд PORT может предотвратить задержки при выполнении передач нескольких файлов. Если команда PORT не срабатывает, ftp будет использовать стандартный порт данных. Когда использование команд PORT отключено, попытки использовать команды PORT для каждой передачи данных предприниматься не будут. Это может пригодиться для некоторых реализаций FTP, которые игнорируют команды PORT, но ошибочно показывают, что они восприняты. 

size имя_файла 

Возвращает размер файла имя_файла на удаленной машине. 







status 

Показывает текущий статус ftp. 

site [ команда ] 

Получает/устанавливает специфическую информацию сайта на удаленной машине. 

struct [ имя_структуры ] 

Устанавливает структуру передачи фала в указанное имя_структуры. По умолчанию используется потоковая структура (stream). 

sunique 

Включает и отключает сохранение файлов с уникальными именами на удаленной машине. Для успешного выполнения удаленный сервер FTP должен поддерживать команду STOU протокола FTP. Удаленный сервер проинформирует пользователя о построенном уникальном имени. По умолчанию сохранение файлов с уникальными именами на удаленной машине отключено. 

system 

Показывает тип операционной системы на удаленной машине. 

tenex 

Устанавливает необходимый тип передачи файлов для работы с машинами TENEX. 

trace 

Включает и отключает трассировку пакетов. 

type [ имя_типа ] 

Устанавливает указанный тип (режим) передачи файлов. Если тип не указан, печатается текущий тип. По умолчанию используется режим ASCII. 

umask [ маска ] 

Устанавливает маску режима создания файла на удаленной машине. Если маска не указана, печатается текущее значение маски. 





user имя_пользователя [ пароль ] [ учетная_запись ] 

Идентифицирует пользователя для удаленного сервера FTP. Если пароль не указан, а сервер его требует, ftp предложит пользователю ввести пароль (после отключения локального эха). Если поле учетная_запись не указано, а сервер FTP его требует, пользователю будет предложено ввести соответствующее значение. Если поле учетная_запись указано, команда account будет передана удаленному серверу после завершения последовательности регистрации, если удаленный сервер не требует указания учетной записи для регистрации. Если ftp не вызван с отключением автоматической регистрации, этот процесс выполняется автоматически при первоначальном подключении к серверу FTP. 

verbose 

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













































Коды откликов





110	Комментарий

120	Функция будет реализована через nnn минут

125	Канал открыт, обмен данными начат

150	Статус файла правилен, подготавливается открытие канала

200	Команда корректна

211	Системный статус или отклик на справочный запрос 

212	Состояние каталога

213	Состояние файла

214	Справочное поясняющее сообщение

220	Слишком много подключений к FTP-серверу (можете попробовать позднее). В некоторых версиях указывает на успешное завершение промежуточной процедуры

221	Благополучное завершение по команде quit

225	Канал сформирован, но информационный обмен отсутствует

226	Закрытие канала, обмен завершен успешно

230	Пользователь идентифицирован, продолжайте

250	Запрос прошел успешно

331	Имя пользователя корректно, нужен пароль

332	Для входа в систему необходима аутентификация

421	Процедура не возможна, канал закрывается

425	Открытие информационного канала не возможно

426	Канал закрыт, обмен прерван

450	Запрошенная функция не реализована, файл не доступен, например, занят

451	Локальная ошибка, операция прервана

452	Ошибка при записи файла (не достаточно места)

500	Синтаксическая ошибка, команда не может быть интерпретирована (возможно она слишком длинна)

501	Синтаксическая ошибка (неверный параметр или аргумент)

502	Команда не используется (нелегальный тип MODE)

503	Неудачная последовательность команд

504	Команда не применима для такого параметра

530	Система не загружена (not logged in)

532	Необходима аутентификация для запоминания файла

550	Запрошенная функция не реализована, файл не доступен, например, не найден

552	Запрошенная операция прервана, недостаточно выделено памяти















Прекращение передачи файла





Чтобы прекратить передачу файла, используйте клавиши прерывания терминала (обычно Delete или Ctrl-C). Посылка фала будет немедленно остановлена. Получение файлов останавливается путем посылки команды ABORT протокола ftp удаленному серверу, и игнорированием любых получаемых в дальнейшем данных. Скорость срабатывания в этом случае зависит от поддержки обработки команды ABORT удаленным сервером. Если удаленный сервер не поддерживает команду ABORT, приглашение ftp> не появится, пока удаленный сервер не закончит пересылку запрошенного файла.

Нажатие клавиш(и) прерывания терминала будет проигнорировано, когда



 

программа ftp выполнила необходимую локальную обработку и ожидает ответа удаленного сервера. Длительная задержка в этом режиме может оказаться результатом обработки команды ABORT, описанной выше, или непредусмотренного поведения удаленного сервера, включая нарушения протокола ftp. Если задержка произошла в результате непредусмотренного поведения удаленного сервера, локальную программу ftp придется прекращать вручную.

Соглашения по именованию файлов

Файлы, указанные в качестве аргументов команд ftp, обрабатываются в соответствии со следующими правилами.

Если указано имя файла '-', используется stdin (для чтения) или stdout (для записи). 

Если первый символ имени файла - '|', остальные аргументы интерпретируются как команда shell. ftp в этом случае порождает shell с помощью popen(3S) с указанным аргументом и читает из (записывает в) stdout (stdin). Если команда shell содержит пробелы, аргумент должен браться в кавычки. Типичный пример использования этого механизма: "dir . | pg". 

Если предыдущие проверки завершились неудачей и если включено расширение имен, локальные имена файлов расширяются в соответствии с правилами, используемыми в sh(1); см. описание команды glob. Если команда ftp ожидает один локальный файл (например, как команда put), используется только первое имя, сгенерированное операцией расширения ("глобализации"). 

Для команд mget и команд get, в которых не заданы локальные имена файлов, локальный файл получает имя удаленного, но с учетом возможных изменений, определяемых установками case, ntrans или nmap. Результирующее имя файла может быть затем изменено, если включена опция runique. 

Для команд mput и команд put, в которых не заданы имена удаленных файлов, удаленный файл получает имя локального, но с учетом возможных изменений, определяемых установками case, ntrans или nmap. Результирующее имя файла может быть затем изменено удаленным сервером, если включена опция sunique. 

Параметры передачи файлов

FTP определяет много параметров, которые могут повлиять на передачу файла. Поддерживаются режимы (типы) ascii, image (binary), ebcdic и local byte size. Команда ftp поддерживает режимы передачи файлов ascii и image, а также local byte size 8 для режима передачи tenex.

Команда ftp поддерживает только стандартные значения для остальных параметров передачи файла: режима (mode), формы (form) и структуры (struct).









Конфигурационные файлы FTP-сервера.





Файл .netrc

Файл .netrc содержит информацию регистрации и инициализации, используемую процессом автоматической регистрации. Он находится в начальном каталоге пользователя. Распознаются следующие конструкции, которые могут разделяться пробелами, символами табуляции или переводами строк:

machine имя 

Определяет имя удаленной машины. Процесс автоматической регистрации ищет в файле .netrc конструкцию machine, соответствующую удаленной машине, указанной в командной строке ftp или как аргумент команды open. Если соответствие найдено, обрабатываются последующие конструкции .netrc вплоть до конца файла или до следующей конструкции machine. 

default 

Действует так же, как machine имя, но соответствует любому имени. Можно задавать только одну конструкцию default и она должна идти после всех конструкций machine. Обычно используется в виде default login anonymous password user@site, давая таким образом пользователю автоматическое подключение к анонимному серверу ftp для машин, не указанных в .netrc. Это подключение можно отменить, используя флаг -n для отключения автоматической регистрации. 

login имя 

Определяет пользователя на удаленной машине. Если эта конструкция указана, процесс автоматической регистрации начнет регистрацию с использованием указанного имени. 

password строка 

Задает пароль. Если указана эта конструкция, процесс автоматической





регистрации передаст указанную строку, если удаленный сервер в ходе процесса регистрации затребует пароль. Учтите, что если эта конструкция указана в файле .netrc, ftp прервет процесс автоматической регистрации в случае, когда .netrc может быть прочитан кем-либо кроме пользователя (владельца). 

account строка 

Задает дополнительный пароль учетной записи. Если указана эта конструкция, процесс автоматической регистрации передаст указанную строку, если удаленный сервер потребует дополнительный пароль учетной записи, иначе процесс автоматической регистрации инициирует команду ACCT. 

macdef имя 

Определяет макрос. Эта конструкция действует как команда ftp macdef. Определяется макрос с указанным именем; его содержание начинается со следующей строки .netrc и продолжается до пустой строки (двух подряд идущих символов новой строки). Если определен макрос с именем init, он автоматически выполняется как последний шаг процесса автоматической регистрации. 



В директории /etc/ в файл «ftpusers» занесены имена Логинов тех, кому запрещен доступ к FTP серверу.

В этой же директории в файл «ftpchroot» заносятся имена Логинов тех, кому разрешен ограниченный доступ. 















Назначение и размещение файлов FTP-сервера.





/etc/ftpusers      Список нежелательных/запрещенных пользователей.

/etc/ftpchroot     Список обычных пользователей, для который должен выполняться chroot.

/etc/ftphosts      Конфигурационный файл виртуальных хостов.

/etc/ftpwelcome    Сообщение приглашения.

/etc/ftpmotd       Сообщение приглашения после логина.

/var/run/ftpd.pid  По умолчанию pid-файл для режима демона.

/var/run/nologin   Может использоваться для запрета доступа по ftp.

/var/log/ftpd      Лог-файл для анонимных передач файлов.

/var/log/xferlog   Место по умолчанию для логов сессий.

/etc/ftpusers   Содержит имена пользователей, которые не допускаются на Сервер.

/var/log/wtmp   Логи сессии FTP сервера

/var/ftp   Директория фалов для Анонимного user’a



























Управление FTP-доступом.





Сервер ftpd поддерживает авторизованный и анонимный доступ. В любом случае в начале каждого сеанса проводится аутентификация пользователя, после чего пользователь авторизуется для работы в соответствие со следующими условиями:



Если пользователь имеет пустой пароль, либо его оболочка по умолчанию отсутствует в /etc/shells, либо его имя (или наименование группы, членом которой он является) указано в файле /etc/ftpusers, то соединение разрывается – такому пользователю запрещен доступ по ftp.



Когда имя пользователя или его группа указаны в файле /etc/ftpchroot, то разрешается ограниченный доступ – пользователь может работать только в пределах своего домашнего каталога.



В случае, когда в качестве имени указано ftp или anonymous, соединение рассматривается как анонимное (подробнее об анонимном доступе рассказано в следующем подразделе).



Если же ни одно из приведенных выше условий не выполнено, то в случае указания правильного пароля пользователь получает ftp-доступ ко всей файловой системе согласно имеющимся у него правам.













Анонимный доступ





Чтобы разрешить анонимный доступ по FTP, вам потребуется вручную создать системного пользователя с именем ftp. У этого пользователя должна быть «легальная» оболочка (одна из указанных в /etc/shells), и он должен иметь домашний каталог, в котором и будут размещаться файлы, доступные анонимному пользователю. Также у него не может быть пустого пароля. По умолчанию, анонимный пользователь не может модифицировать или удалять существующие файлы. Разрешено только создавать новые при условии, что пользователь ftp будет иметь достаточно прав на запись. Дополнительно регулировать доступ к каталогам и файлам (например, полностью запретить запись в определенную папку) можно силами операционной системы, выставляя соответствующие права пользователю ftp. В частности, рекомендуется запрещать для пользователя ftp запись в его домашний каталог, чтобы исключить возможность переполнения раздела, на котором он размещен.





























Ограниченный доступ





В том случае, если имя пользователя присутствует в файле /etc/ftpchroot, то соответствующий процесс запускается в chroot-окружении, ограничивая пользователю доступ только его домашним каталогом (или тем, который указан во втором поле файла ftpchroot). При необходимости организовать такую работу для большого числа пользователей (например, дать всем абонентам доступ для обновления своих домашних веб-страничек), в ftpchroot можно указать общую для них группу, предварив ее имя символом @. Во втором поле дополнительно может быть указан каталог, который следует использовать в качестве корневого для соответствующего пользователя или группы. Вот пример такого файла:



vasya

petya  /var/db/petya

@dialup



Теперь Вася и все пользователи группы dialup смогут работать только в пределах своих домашних каталогов, а для Пети в качестве рабочей будет определена указанная папка /var/db/petya. С помощью разделителя /./ можно указать каталог, отличающийся от корневого, который станет текущим:



serg  /home/serg/./public_html



В данном случае для пользователя serg доступ будет ограничен каталогом /home/serg, но в качестве текущего при входе на сервер установится /home/serg/public_html.







Графические документы.



Сравнительная таблица протоколов FTP, HTTP, POP3.





Критерий \ Протокол

FTP

HTTP

POP3

Название

File Transport Protocol

Hypertext Transfer Protocol

Post Office Protocol 3

Уровень по модели ВОС

Прикладной

Прикладной

Прикладной

Семейство 

TCP\IP

TCP\IP

TCP\IP

Создан

1971г.

1990г.



Порт  \  ID

21/TCP для команд, 20/TCP для данных

80/TCP, 8080/TCP

110/TCP

Назначение

Передача Файлов

Доступ к гипертексту, ныне стал универсальным

Получение электронной почты

Спецификация

RFC 959

RFC 1945, RFC 2616

RFC 1939 / STD 53

Основные Реализации

FTP Сервера

Web Браузеры

Почтовые Клиенты



















Сравнительная таблица различных FTP-серверов.





Критерий/программа

Bullet Proof FTP

CuteFTP

TransSoft FTP

FTP Voyager

LeechFTP

1st Choice FTPPro2000

WS_FTP Pro

Цена

$29.95

$34.95

$29.00

$37.95

free

$95

$37.50

Интеграция с Проводником Windows

-

-

+

+

+

+

-

Drag and drop

+

+

+

+

+

+

-

Восстановление связи

+

-

+

+

-

-

-

Передача директорий

-

+

+

+

+

+

+

Передача сервер-сервер

-

-

-

+

-

-

+

Расписание загрузок

+

-

+

-

+

-

-

Восстановление передачи файла

+

+

+

+

+

-

+

Редактирование удаленного файла

-

+

+

+

-

-

+

Поддержка макросов/скриптов

-

+

+

+

-

-

-





ftp серверные программы



serv-u

, serv-u, мощный, безопасный сервер, работающий под управлением windows., shareware стоимость: $39.95 пробный период: 30 дней, download susetup1.exe, susetup1.exe, download serv-u, rhinosoft



war ftp daemon

, war ftp daemon, очень популярный и бесплатный сервер для работы в среде windows., freeware, download , , download war ftp daemon, jarle aaase



sambar server

, sambar server, целый комплект серверов заключен в этой программе. это и http сервер, и ftp сервер, и прокси сервер. все они могут работать на машине с windows., freeware, download 43b9.zip, 43b9.zip, download sambar server, sambar technologies



xitami web server

, xitami web server, мощные и полнофункциональные серверы ftp и http заключены в этой программе. множество полезных характеристик предлагаются ими. например, вы можете легко администрировать их по сети, можете легко использовать для организации виртуального хостинга. к программе прилагается

 исходный код., freeware, download , , download xitami web server, imatix



bulletproof ftp server

, bulletproof ftp server, это мощный сервер ftp, который поддерживает все основные характеристики, указанные в соответствующем документе rfc, но, кроме того, эта программа предоставляет и множество дополнительных возможностей, включая, например, возможность предоставления файла не с первого байта, а с байта, указанного клиентом, что позволяет продолжать ранее прерванный процесс копирования. этот сервер предоставляет также подробную статистику о своих пользователях, а также возможность создания виртуальных каталогов., shareware стоимость: $19.95, download ftpsetup.exe, ftpsetup.exe, download bulletproof ftp server, bulletproof software



raidenftpd

, raidenftpd, легкий в использовании и удобный ftp сервер. программа raidenftpd предоставляет своим пользователям возможность работы нескольких серверов одновременно, поддерживая для каждого из них свою файловую систему и свой адрес ip., shareware стоимость: $12.95, download raidenftpd2.zip, raidenftpd2.zip, download raidenftpd, raidenftpd



blackmoon ftp server

, blackmoon ftp server, это сервер ftp, который может работать в среде windows 2000 и windows xp и предоставляет все возможности, присущие всем мощным серверам, работающим на других платформах. при помощи blackmoon ftp server вы можете удаленно администрировать сервер, размещать виртуальные серверы и каталоги, создавать группы пользователей с разными правами, предоставлять пользователям возможность продолжения ранее прерванного процесса копирования файлов, можете управлять его работой по расписанию и выполнять весь комплекс действий по обслуживанию современного сервера, рассчитанного на работу с многочисленными пользователями., shareware стоимость: $29.95, download bmftp.zip, bmftp.zip, download blackmoon ftp server, selom ofori



titan ftp server

, titan ftp server, мощный ftp сервер, поддерживающий работу многочисленных пользователей и работающий на платформе windows., trialware стоимость:$39.95 пробный период: 30 дней, download titanftp.exe, titanftp.exe, download titan ftp server, south river technologies





















Что такое хорошая FTP программа ?



Как выбирать ?





Что отличает хорошую FTP-программу от посредственной? Ее возможности и интерфейс, предоставляющий доступ к ним. Ниже приведены основные функции FTP-программ, на которые следует обращать внимание.



Автоматическое восстановление связи

Если вам когда-то доводилось передавать большие по размеру файлы, то вам знакомо чувство разочарования, возникающее при обрыве связи, когда две трети файла уже передано. Поэтому FTP-программа должна "уметь" восстанавливать оборвавшуюся связь.



Передача директорий

Если ваша FTP-программа умеет передавать не только файлы, но и целые директории (включая и поддиректории), то это намного упростит выполнение некоторых задач, особенно, если вы вебразработчик. Сегодня это обязательная функция любой FTP-программы, претендующей считаться серьезной.



Автопереименование

Возможно ваш HTML-редактор может создавать файлы лишь с разрешением .htm, а ваш вебсервер - работать лишь с файлами .html. Или ваша машина работает под Windows 3.1 и "требует" переименования всех файлов .jpeg в .jpg. Какой бы не была причина, а способность автоматически переименовывать файлы (при помощи WS_FTP Pro, например) сохранит вам массу времени - один клик, и вы можете переименовать всю группу аналогичных файлов.





Функция Drag and Drop

Вам знакома эта функция по работе с файлами, размещенными на винчестере. Столь же удобна она и при использовании в FTP-программе. Сегодня хорошая программа позволяет "перетаскивать" файлы и директории на удаленный сервер и обратно.



Работа из командной строки

Иногда клавиатура позволяет работать очень быстро. Например, если вам нужно попасть на .../Pub/Win95/Games/Casino/ и ваша FTP-программа поддерживает работу из командной строки, то можно указать путь и вручную. Это сэкономит вам пару минут, особенно при длинных адресах и медленном соединении. 



Адресная книга

В FTP-программе должна быть своя адресная книга, куда вы можете помещать данные о наиболее часто посещаемых серверах, сохранить текущее соединение или отредактировать устаревшие данные. В адресной книге, как правило, находятся и некоторые конфигурационные опции. Все это значительно ускоряет процесс подключения к FTP-серверу.



Режим ASCII/Binary

В хорошей FTP-программе должны поддерживаться оба режима передачи файлов - бинарный и ASCII, а также должна быть функция автоматического распознавания типа передаваемого файла.