11937
Комментарий: расшифровано
|
12581
|
Удаления помечены так. | Добавления помечены так. |
Строка 3: | Строка 3: |
## 00:26:40 ## with updates from 300708 (form 03:00:30) |
Развернем на нашей машине FTP-сервер. Установим для этого пакеты vsftpd и anonftp: |
Строка 6: | Строка 5: |
Поставим пакет {{{vsftpd}}}, а также пакет {{{anonftp}}}. Разделение такое затем, что в репозитории есть много FTP-серверов (proftpd, vsftpd, bsdftp). У них есть нечто общее: дерево каталогов, которое нужно развернуть в домашнем каталоге этого FTP-сервера ({{{/var/ftp}}}, и чтобы каждый раз его не создавать, оно было вынесено в отдельный пакет. К тому же, в ALTLinux, уделяющем много внимания безопасности, есть много разных закладок для защиты от дурака, чтобы человек не поставил себе ftp-сервер, а тот сразу заработал и открыл всем доступ на запись. Поэтому нужно поставить пакет {{{anonftp}}}, он состоит из одного файлаa {{{/var/ftp}}}, при появлении этого файла ftp начинает хотя бы нормально работать. но {{{vsftpd}}} работает через метадемон {{{inted}}}. |
{{{ # apt-get install vsftpd anonftp }}} |
Строка 18: | Строка 9: |
Утилита {{{chkconfig}}} управляет одновременно и системными службами в стиле start/stop-ных скриптов (см. учебник), и настройками тех служб, которые цепляются к метадемону. Такой унверсальный интерфейс с единым синтаксисом. |
Поясним, почему какого-либо одного пакета было бы недостаточно. Первая причина заключается в следующем. Программ, предоставляющих функциональность FTP-сервера, в хранилище более одной: это proftpd, vsftpd, pure-ftpd. Дерево каталогов, которое соответствует содержимому FTP-сервера, не должно быть жестко привязано к какому-то конкретному пакету, однако должно при развертывании сервера создаваться. Именно за это и отвечает пакет anonftp: |
Строка 22: | Строка 11: |
Посмотрим, какие включены службы | {{{ $ rpmquery -l anonftp /var/ftp }}} Есть, впрочем, и вторая причина. В дистрибутивах ALT Linux, уделяющих большое внимание безопасности, включено множество разных закладок для "защиты от дурака". В данном случае дело в следующем: установка FTP-сервера (vsftpd) не должна приводить к его немедленной работе в режиме анонимного доступа на запись. Итак, требуемые пакеты в систему установлены. Займемся их включением. Сервер vsftpd использует при своей работе "метадемон" xinetd. Используемая в ПСПО версия утилиты chkconfig умеет управлять системными службами разного типа: как оформленными в стиле start-stop-скриптов, так и использующими "метадемон" xinetd. При применении этой утилиты из командной строки пользователь (администратор) работает с единым синтаксисом. Посмотрим, какие службы сейчас включены: |
Строка 41: | Строка 37: |
}}} Видно, что по умолчанию все выключено. Нужно проделать еще три упражнения: * нужно включить сам метадемон {{{inetd}}}: {{{ $chkconfig xinetd on }}} * нужно включить сам {{{vsftpd}}}: {{{ $chkconfig vsftpd on }}} * в файле ({{{/etc/xinetd.conf}}}) надо проверить, а не ждет ли нас замечательная фича altlinux — что все сетевые сервисы по умолчанию запускаются так, что они доступны только с этой же машины. для этого закомментируем строчку {{{ only_from 127.0.0.1 |
|
Строка 60: | Строка 39: |
Это если вы понаставили служб, которые пользуются {{{inetd}}} и повключали их, то с ними соединиться можно будет только с адресе {{{127.0.0.1}}}. |
Как видно, все использующие xinetd сервисы (в том числе и vsftpd) в настоящее время выключены. Если мы хотим, чтобы FTP-сервер запускался каждый раз при старте машины, нужно проделать следующие операции: |
Строка 63: | Строка 41: |
Нужно не забыть перезапустить {{{xinitd}}}, чтобы он перечитал конфиги. Он умный: при старте, если видит, что в нём нет разрешенных служб, молча останавливается. |
* обеспечить запуск метадемона: |
Строка 66: | Строка 43: |
можно зайти на 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, чтобы внесенные нами поправки вступили в силу: |
Строка 69: | Строка 62: |
$lftp localhost | # service xinetd restart }}} Теперь можно подключиться к локальному FTP-серверу: {{{ $ lftp localhost |
Строка 74: | Строка 73: |
Сообщений об ошибках не было, а файлов на сервере пока никаких нет. Вообще, Если места на жестком диске мало (20-30 Гб), и режим работы компьютера щадящий (включил-поработал-выключил, а не круглосуточно включенный сервер с файлами), то можно не думать о разбиении диска, а весь диск сделать одним корневым разделом. |
Сообщений об ошибках, как видим, нет. Впрочем, файлов на сервере тоже пока нет. Скажем несколько слов о дисциплине организации FTP-сервера. В каталоге, который является корнем для службы FTP (в нашем случае это /var/ftp) традиционно создается подкаталог pub, файлы в котором доступны на чтение. Именно этот каталог и предназначен для работы "публичных пользователей". По вопросу же организации доступа по FTP для обычных пользователей системы ограничимся отсылкой к документации. |
Строка 80: | Строка 75: |
В при работе с FTP используется дисциплина: в каталоге, который является корнем для службы FTP, в нашем случае {{{/var/ftp}}}, должен быть подкаталог {{{pub/}}}, в котором файлы доступны на чтение, это файлы для публичных пользователей. В документации можно прочитать, как организовать доступ по FTP обычным пользователям системы. Вообще говоря, уже сейчас можно этот каталог делать доступным в качестве хранилища нашего класса. Доступ по ftp сейчас разрешён ## 00:40:30.5 (pause) |
|
Строка 137: | Строка 122: |
|| 20 || 1 || 1 || 1 || || 1 || PavelSutyrin, DmitryChistikov, VsevolodKrishchenko || || || | || 30 || 1 || 1 || 1 || || 1 || PavelSutyrin, DmitryChistikov, VsevolodKrishchenko || || || |
Установка и настройка FTP-сервера
Развернем на нашей машине FTP-сервер. Установим для этого пакеты vsftpd и anonftp:
# apt-get install vsftpd anonftp
Поясним, почему какого-либо одного пакета было бы недостаточно. Первая причина заключается в следующем. Программ, предоставляющих функциональность FTP-сервера, в хранилище более одной: это proftpd, vsftpd, pure-ftpd. Дерево каталогов, которое соответствует содержимому FTP-сервера, не должно быть жестко привязано к какому-то конкретному пакету, однако должно при развертывании сервера создаваться. Именно за это и отвечает пакет anonftp:
$ rpmquery -l anonftp /var/ftp
Есть, впрочем, и вторая причина. В дистрибутивах ALT Linux, уделяющих большое внимание безопасности, включено множество разных закладок для "защиты от дурака". В данном случае дело в следующем: установка FTP-сервера (vsftpd) не должна приводить к его немедленной работе в режиме анонимного доступа на запись.
Итак, требуемые пакеты в систему установлены. Займемся их включением. Сервер vsftpd использует при своей работе "метадемон" xinetd. Используемая в ПСПО версия утилиты chkconfig умеет управлять системными службами разного типа: как оформленными в стиле start-stop-скриптов, так и использующими "метадемон" xinetd. При применении этой утилиты из командной строки пользователь (администратор) работает с единым синтаксисом. Посмотрим, какие службы сейчас включены:
# 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-клиенты, кроме lftp, требуют обязательно ввода логина и пароля, даже если это анонимный FTP-сервер, и тогда логин тогда должен быть либо anonymous либо ftp, что легче набирать, а проль -- какой угодно, лишь бы содержал @.
Этих ftp-серверов так много, во-первых, потому что там есть отдельные штуки, связанные с пользователем (однако, пароль на FTP для пользователя нужен только для одного, чтобы отмазаться от того, что вы бесплатно распространяете что-то, что бесплатно распространять нельзя. В этом случае вы говорите: какое бесплатно, видите, на FTP без пароля нельзя зайти, а вот мне лично бывает нужно скачать, я же хозяин, и т.п.), а в остальном понятно -- любой FTP-пароль всегда виден. Есть другая довольно неприятная картина: пусть у вас есть не очень мощная машина, кторая раздаёт какие-то важные файлы, и есть разные категории компьютеров-клиентов этого сервера. Например, если кто-то из локальной сети подключается, то приоритет высокий, а если издалека --- то низкий, и, скажем, ограничение на число одновременных соединений. В этом случае надо использовать всякие свойства всяких крутых FTP-демонов -- proftpd или vsftpd, где по ip-адресу клиента определяются правила и ограничения его работы. Так же можно защититься от всякого множественного скачивания, когда всякими ReGet'ами качают. Вторая прблема --- протокол ftp, гад, передаёт ip-адрес сервера прямо на прикладном уровне. То есть, когда вы подключаетсь по ftp, то прямо по FTP передаются IP-адреса и порты (в случае passive ftp -- адрес и порт сервера, куда теперь нужно подключиться клиенту, в случае active ftp -- адрес и порт клиента, куда соединиться сервер и закачает файл)
ftp скорей всего придётся делать пассивным, но в этом случае возникает прблема: например, по управляющему, 21-му, порту устанавливается соединение между клиентом и сервером, и клиент говорит, что хочет чего-то взять. Сервер после этого говорит ip-адрес и порт, по которому клиент сможет это взять. Если машина с этим ip-адресов находится за NAT'ом, то есть происходит трансляция адресов, то будет дан её внутренний адрес, и далеко не каждый FTP-клиент способен это проигнорировать (например, мозилла (firefox) не может. Т.е., если вы заходите на адрес с внешним ip-шником по passive ftp и просите у него закачать файлы, и внутри протокола FTP приходит ip-адрес внутренний (10.X.X.X), firefox просто не работает, он честно следует протоколу FTP, в котором написано: заходить на такой-то ip-шник).
Пэтому у ftp-сервера должна быть возможность в зависимости от того, с какого ip-адреса клиент пришёл, передавать ему для соединения внутри FTP-протокола подходящий (внутренний, либо внешний) ip-адрес, иначе что-то может не работать. Лектор у себя на факультете это разруливал на уровне firewall'а (соединения по 21 порту с разных ip-адресов разруливались на разные порты, где их ждали по-разному настроенные FTP-серверы, но это изврат).
Но надо иметь в виду, что если FTP-сервер сидит не на внешнем ip-адресе, а находится за межсетевым экраном, на котором включена трансляция адресов (NAT), то есть реальный шанс, что соединения к нему не будут работать либо из внешней, либо из внутренней сети.
Сведения о ресурсах
Готовность (%) |
Продолжительность (ак. ч.) |
Подготовка (календ. ч.) |
Полный текст (раб. д.) |
Предварительные знания |
Level |
Maintainer |
Start date |
End date |
30 |
1 |
1 |
1 |
|
1 |
|
|