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

Введение 

  1. Назначение  и область применения изделия
  • Протокол 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)
Масштабирование блоков + + + +  
ARQ типа SAW + + + + +
ARQ типа QBN + + + +  
ARQ типа SR + + + +  
Запрос  файлов +   + +  
Групповая передача + + + +  
Восстановление +   + + +
Переименование + + + + +
Прерывание  передачи + + + +  
Прерывание  передачи отдельного файла + + + +  
Протоколирование + + + +  
Дуплексная  передача +   + +  
Скорость  при соединении DTE—DTE, Кбит/с 1,313 Мбит/с для  Ethernet 115.2 115.2 57.6 19.2
 
  1. Описание  и обоснование.
  • Настройка с.о.с 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

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

    mountt «файловая система» /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. При передаче файла используются текущие установки типа, формата, режима и структуры.