Различия между версиями 7 и 9 (по 2 версиям)
Версия 7 от 2008-08-15 10:34:36
Размер: 12581
Редактор: DmitryChistikov
Комментарий:
Версия 9 от 2008-08-15 13:15:16
Размер: 12811
Редактор: DmitryChistikov
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 2: Строка 2:

=== Установка ===
Строка 9: Строка 11:
Поясним, почему какого-либо одного пакета было бы недостаточно. Первая причина заключается в следующем. Программ, предоставляющих функциональность FTP-сервера, в хранилище более одной: это proftpd, vsftpd, pure-ftpd. Дерево каталогов, которое соответствует содержимому FTP-сервера, не должно быть жестко привязано к какому-то конкретному пакету, однако должно при развертывании сервера создаваться. Именно за это и отвечает пакет anonftp: Поясним сперва, почему какого-либо одного пакета было бы недостаточно. Первая причина заключается в следующем. Программ, предоставляющих нужную нам функциональность, в хранилище более одной: это proftpd, vsftpd, pure-ftpd. Дерево каталогов, которое соответствует содержимому FTP-сервера, не должно быть жестко привязано к какому-то конкретному пакету, однако должно создаваться при развертывании сервера. Именно за это и отвечает пакет anonftp:
Строка 16: Строка 18:
Есть, впрочем, и вторая причина. В дистрибутивах ALT Linux, уделяющих большое внимание безопасности, включено множество разных закладок для "защиты от дурака". В данном случае дело в следующем: установка FTP-сервера (vsftpd) не должна приводить к его немедленной работе в режиме анонимного доступа на запись. Есть, впрочем, и вторая причина. В дистрибутивах ALT Linux, уделяющих большое внимание безопасности, включено множество разных закладок для "защиты от дурака". В данном случае дело в следующем: установка FTP-сервера (vsftpd) и его запуск "в лоб" не должны приводить к его автоматическому включению в режиме доступа на запись для всех желающих.
Строка 18: Строка 20:
Итак, требуемые пакеты в систему установлены. Займемся их включением. Сервер vsftpd использует при своей работе "метадемон" xinetd. Используемая в ПСПО версия утилиты chkconfig умеет управлять системными службами разного типа: как оформленными в стиле start-stop-скриптов, так и использующими "метадемон" xinetd. При применении этой утилиты из командной строки пользователь (администратор) работает с единым синтаксисом. Посмотрим, какие службы сейчас включены: Итак, требуемые пакеты в систему установлены. Займемся их включением. Сервер vsftpd использует при своей работе "метадемон" xinetd. Для настройки того, какие службы запускаются в системе в процессе инициализации, используется утилита chkconfig. Используемая в ПСПО версия этой утилиты умеет управлять системными службами разного типа: как оформленными в стиле start-stop-скриптов, так и использующими "метадемон" xinetd. При применении chkconfig из командной строки пользователь (администратор) избавлен от необходимости запоминать различные виды синтаксиса для этих двух групп. Посмотрим, какие службы сейчас включены:

 ''Нужно определиться, используем мы термин '''служба''' или '''сервис'''. Оставляю пока "разнобой".'' -- DmitryChistikov <<DateTime(2008-08-15T14:15:15+0400)>>
Строка 44: Строка 48:
 # chkconfig xinetd on
 }}}
# chkconfig xinetd on
}}}
Строка 50: Строка 54:
 # chkconfig vsftpd on
 }}}
# chkconfig vsftpd on
}}}
Строка 53: Строка 57:
 * и обнаружить, что мы встретились еще с одной отличительной особенностью дистрибутивов ПСПО. Дело в том, что все сетевые сервисы по умолчанию запускаются так, что они доступны только с локальной машины (иными словами, подключиться к ним только с адреса 127.0.0.1). В данном случае следует поглядеть в файл /etc/xinetd.conf и закомментировать в нем строку с параметром only_from --- для раздачи сервисов по сети она должна выглядеть примерно так:  * и обнаружить, что мы встретились еще с одной отличительной особенностью дистрибутивов ПСПО. Дело в том, что все сетевые сервисы по умолчанию доступны только с локальной машины --- иными словами, подключиться к ним только с адреса 127.0.0.1. В данном случае следует закомментировать в файл /etc/xinetd.conf строку с параметром only_from --- для раздачи сервисов по сети она должна выглядеть примерно так:
Строка 56: Строка 60:
 # only_from = 127.0.0.1
 }}}
# only_from = 127.0.0.1
}}}
Строка 73: Строка 77:
Сообщений об ошибках, как видим, нет. Впрочем, файлов на сервере тоже пока нет. Скажем несколько слов о дисциплине организации FTP-сервера. В каталоге, который является корнем для службы FTP (в нашем случае это /var/ftp) традиционно создается подкаталог pub, файлы в котором доступны на чтение. Именно этот каталог и предназначен для работы "публичных пользователей". По вопросу же организации доступа по FTP для обычных пользователей системы ограничимся отсылкой к документации. Сообщений об ошибках, как видим, нет. Впрочем, файлов на сервере тоже пока нет. Скажем несколько слов о дисциплине организации FTP-сервера. В каталоге, который является корнем для службы FTP (в нашем случае это /var/ftp) традиционно создается подкаталог pub, файлы в котором доступны на чтение. Именно этот каталог и предназначен для работы "публичных пользователей". Описание же того, как организовать доступ по FTP для обычных пользователей системы, приводить не будем, ограничившись отсылкой к документации.
Строка 75: Строка 79:
##Кусок от 080730 (с 03:24:41) === Настройка и использование ===
Строка 77: Строка 81:
=== О настройке FTP-серверов === Поговорим немного о настройке и использовании FTP-сервера. Во-первых, использовать FTP с системными логином и паролем пользователя совершенно неразумно. Эти данные в протоколе FTP передаются по сети открытым текстом, поэтому "подслушать" их не составляет труда. По этой причине FTP-серверы чаще всего используются лишь для предоставления анонимного доступа на чтение к тем или иным данным. Некоторые FTP-клиенты, заметим, требуют при их использовании обязательного ввода логина и пароля даже при работе с "анонимными" FTP-серверами. В таких случаях используется логин anonymous (иногда ftp), а пароль --- какой угодно, но содержащий символ коммерческого at (@; заметим, что иногда не требуется даже его).
Строка 79: Строка 83:
Использовать ftp с логином и паролем пользователя системы нехорошо.
Разные FTP-клиенты, кроме lftp, требуют обязательно ввода логина и пароля, даже если это анонимный FTP-сервер, и тогда логин тогда должен быть либо anonymous либо ftp, что легче набирать, а проль -- какой угодно, лишь бы содержал @.
Отметим, однако, что в некоторых случаях доступ к данным по протоколу FTP все же защищается паролем. Этим могут заниматься, к примеру, владельцы FTP-серверов, распространяющие сомнительные с точки зрения лицензионной чистоты программы и данные. Трюк заключается в следующем: в случае возникновения каких-либо претензий всегда можно сослаться на использование пароля и объяснить, что защищенные таким способом файлы не являются общедоступными и, следовательно, по сети не распространяются.
Строка 82: Строка 85:
Этих ftp-серверов так много, во-первых, потому что там
есть отдельные штуки, связанные с пользователем (однако,
пароль на FTP для пользователя нужен только для одного, чтобы
отмазаться от того, что вы бесплатно распространяете что-то, что бесплатно распространять нельзя. В этом случае вы говорите: какое бесплатно, видите, на
FTP без пароля нельзя зайти, а вот мне лично бывает нужно скачать, я же хозяин, и т.п.), а в остальном понятно -- любой FTP-пароль всегда виден.
Есть другая довольно неприятная картина: пусть у
вас есть не очень мощная машина, кторая раздаёт какие-то важные файлы,
и есть разные категории компьютеров-клиентов этого сервера.
Например, если кто-то из локальной сети подключается, то приоритет высокий,
а если издалека --- то низкий, и, скажем, ограничение на число одновременных соединений. В
этом случае надо использовать всякие свойства всяких крутых FTP-демонов --
proftpd или vsftpd, где по ip-адресу клиента определяются правила и ограничения его работы. Так же можно защититься от всякого множественного скачивания, когда всякими ReGet'ами качают. Вторая прблема --- протокол
ftp, гад, передаёт ip-адрес сервера прямо на прикладном уровне.
То есть, когда вы подключаетсь по ftp, то прямо по FTP передаются IP-адреса и порты (в случае passive ftp -- адрес и порт сервера, куда теперь нужно подключиться клиенту, в случае active ftp -- адрес и порт клиента, куда соединиться сервер и закачает файл)
Поясним теперь, зачем в хранилище помещено более одной программы, реализующей функциональность FTP-сервера. В случае, когда аппаратная конфигурация используемой в качестве сервера машины не слишком "продвинута", а компьютеры-клиенты образуют несколько различных категорий, может возникнуть необходимость использовать специальные возможности таких программ. К таким возможностям относится разделение приоритетов в соответствии с IP-адресом клиента, ограничения на число одновременных соединений, защита от множественного скачивания (программами типа ReGet и пр.). В случае же, когда такие возможности не требуются, разумно использовать более "легковесные" программы.
Строка 97: Строка 87:
ftp скорей всего придётся делать пассивным,
но в этом случае возникает прблема: например, по управляющему, 21-му, порту
устанавливается соединение между клиентом и сервером, и клиент говорит,
что хочет чего-то взять. Сервер после этого говорит ip-адрес и порт, по которому
клиент сможет это взять. Если машина с этим ip-адресов находится за NAT'ом,
то есть происходит трансляция адресов, то будет дан её внутренний адрес,
и далеко не каждый FTP-клиент способен это проигнорировать (например, мозилла (firefox) не может. Т.е., если вы заходите на адрес с внешним ip-шником по passive ftp и просите у него закачать файлы, и внутри протокола FTP приходит ip-адрес внутренний (10.X.X.X), firefox просто не работает, он честно следует протоколу FTP, в котором написано: заходить на такой-то ip-шник).
С использованием протокола FTP может быть связана еще одна проблема. Дело в том, что при скачивании файлов по сети FTP передает (на прикладном уровне) IP-адрес и порт для создания отдельного подключения. В случае "активного" FTP это адрес и порт клиента, а случае "пассивного" --- сервера. Понятно, что при использовании трансляции адресов (Network Address Translation, NAT) могут возникнуть довольно неприятные ситуации. Строго следующий описанию протокола FTP клиент (примером может служить Mozilla Firefox) не может проигнорировать полученный таким способом IP-адрес. Если этот адрес оказывается локальным для сети сервера, попытка соединиться, естественно, терпит неудачу.
Строка 105: Строка 89:
Пэтому у ftp-сервера должна быть возможность в зависимости от
того, с какого ip-адреса клиент пришёл, передавать ему для соединения
внутри FTP-протокола подходящий (внутренний, либо внешний) ip-адрес,
иначе что-то может не работать. Лектор у
себя на факультете это разруливал на уровне firewall'а (соединения по 21 порту с разных ip-адресов разруливались на разные порты, где их ждали по-разному настроенные FTP-серверы, но это изврат).

Но надо иметь в виду, что если FTP-сервер сидит не на внешнем ip-адресе,
а находится за межсетевым экраном, на котором включена трансляция адресов (NAT), то есть реальный шанс, что соединения к нему не будут работать либо из внешней, либо из внутренней сети.

## 300708 till 03:30:00
Возможным решением данной проблемы может служить тонкая настройка FTP-сервера таким образом, чтобы передаваемый IP-адрес для подключения в "пассивном" режиме различался для клиентов из разных сетей. Иногда оказывается полезным держать несколько FTP-серверов на одной машине и "разруливать" подключения к 21-му порту (ftp) с помощью средств файрвола. При настройке маршрутизатора хорошую службу может сослужить специальный модуль ip_nat_ftp к iptables.
Строка 122: Строка 97:
|| 30 || 1 || 1 || 1 || || 1 || PavelSutyrin, DmitryChistikov, VsevolodKrishchenko || || || || 41 || 1 || 1 || 1 || || 1 || PavelSutyrin, DmitryChistikov, VsevolodKrishchenko || || ||

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

Установка

Развернем на нашей машине FTP-сервер. Установим для этого пакеты vsftpd и anonftp:

# apt-get install vsftpd anonftp

Поясним сперва, почему какого-либо одного пакета было бы недостаточно. Первая причина заключается в следующем. Программ, предоставляющих нужную нам функциональность, в хранилище более одной: это proftpd, vsftpd, pure-ftpd. Дерево каталогов, которое соответствует содержимому FTP-сервера, не должно быть жестко привязано к какому-то конкретному пакету, однако должно создаваться при развертывании сервера. Именно за это и отвечает пакет anonftp:

$ rpmquery -l anonftp
/var/ftp

Есть, впрочем, и вторая причина. В дистрибутивах ALT Linux, уделяющих большое внимание безопасности, включено множество разных закладок для "защиты от дурака". В данном случае дело в следующем: установка FTP-сервера (vsftpd) и его запуск "в лоб" не должны приводить к его автоматическому включению в режиме доступа на запись для всех желающих.

Итак, требуемые пакеты в систему установлены. Займемся их включением. Сервер vsftpd использует при своей работе "метадемон" xinetd. Для настройки того, какие службы запускаются в системе в процессе инициализации, используется утилита chkconfig. Используемая в ПСПО версия этой утилиты умеет управлять системными службами разного типа: как оформленными в стиле start-stop-скриптов, так и использующими "метадемон" xinetd. При применении chkconfig из командной строки пользователь (администратор) избавлен от необходимости запоминать различные виды синтаксиса для этих двух групп. Посмотрим, какие службы сейчас включены:

  • Нужно определиться, используем мы термин служба или сервис. Оставляю пока "разнобой". -- DmitryChistikov 2008-08-15 13:15:15

# chkconfig --list | tail -15

xinetd based services:
        chargen-tcp:    off
        chargen-udp:    off
        cups-lpd:       off
        daytime-tcp:    off
        daytime-udp:    off
        discard-tcp:    off
        discard-udp:    off
        echo-tcp:       off
        echo-udp:       off
        rsync:          off
        time-tcp:       off
        time-udp:       off
        vsftpd:         off

Как видно, все использующие xinetd сервисы (в том числе и vsftpd) в настоящее время выключены. Если мы хотим, чтобы FTP-сервер запускался каждый раз при старте машины, нужно проделать следующие операции:

  • обеспечить запуск метадемона:
    # chkconfig xinetd on
  • включить сам vsftpd:
    # chkconfig vsftpd on
  • и обнаружить, что мы встретились еще с одной отличительной особенностью дистрибутивов ПСПО. Дело в том, что все сетевые сервисы по умолчанию доступны только с локальной машины --- иными словами, подключиться к ним только с адреса 127.0.0.1. В данном случае следует закомментировать в файл /etc/xinetd.conf строку с параметром only_from --- для раздачи сервисов по сети она должна выглядеть примерно так:
    #        only_from = 127.0.0.1

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

# service xinetd restart

Теперь можно подключиться к локальному FTP-серверу:

$ lftp localhost
lftp localhost:~> ls
lftp localhost:/> exit

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

Настройка и использование

Поговорим немного о настройке и использовании FTP-сервера. Во-первых, использовать FTP с системными логином и паролем пользователя совершенно неразумно. Эти данные в протоколе FTP передаются по сети открытым текстом, поэтому "подслушать" их не составляет труда. По этой причине FTP-серверы чаще всего используются лишь для предоставления анонимного доступа на чтение к тем или иным данным. Некоторые FTP-клиенты, заметим, требуют при их использовании обязательного ввода логина и пароля даже при работе с "анонимными" FTP-серверами. В таких случаях используется логин anonymous (иногда ftp), а пароль --- какой угодно, но содержащий символ коммерческого at (@; заметим, что иногда не требуется даже его).

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

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

С использованием протокола FTP может быть связана еще одна проблема. Дело в том, что при скачивании файлов по сети FTP передает (на прикладном уровне) IP-адрес и порт для создания отдельного подключения. В случае "активного" FTP это адрес и порт клиента, а случае "пассивного" --- сервера. Понятно, что при использовании трансляции адресов (Network Address Translation, NAT) могут возникнуть довольно неприятные ситуации. Строго следующий описанию протокола FTP клиент (примером может служить Mozilla Firefox) не может проигнорировать полученный таким способом IP-адрес. Если этот адрес оказывается локальным для сети сервера, попытка соединиться, естественно, терпит неудачу.

Возможным решением данной проблемы может служить тонкая настройка FTP-сервера таким образом, чтобы передаваемый IP-адрес для подключения в "пассивном" режиме различался для клиентов из разных сетей. Иногда оказывается полезным держать несколько FTP-серверов на одной машине и "разруливать" подключения к 21-му порту (ftp) с помощью средств файрвола. При настройке маршрутизатора хорошую службу может сослужить специальный модуль ip_nat_ftp к iptables.


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

41

1

1

1

1

PavelSutyrin, DmitryChistikov, VsevolodKrishchenko


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

PspoClasses/080722/00FtpInstallConfigure (последним исправлял пользователь eSyr 2009-03-23 02:11:30)