Size: 9669
Comment:
|
Size: 11937
Comment: расшифровано
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
## with updates from 300708 (form 03:00:30) | |
Line 5: | Line 6: |
Поставим {{{vsftpd}}}, а также {{{anonftp}}}. В ALTLinux, уделяющем много | Поставим пакет {{{vsftpd}}}, а также пакет {{{anonftp}}}. Разделение такое затем, что в репозитории есть много FTP-серверов (proftpd, vsftpd, bsdftp). У них есть нечто общее: дерево каталогов, которое нужно развернуть в домашнем каталоге этого FTP-сервера ({{{/var/ftp}}}, и чтобы каждый раз его не создавать, оно было вынесено в отдельный пакет. К тому же, в ALTLinux, уделяющем много |
Line 7: | Line 13: |
человек не поставил себе ftp-сервер, а он сразу заработал и открыл всем доступ на запись. Поэтому нужно поставить {{{anonftp}}}, он состоит из одного файлаa |
человек не поставил себе ftp-сервер, а тот сразу заработал и открыл всем доступ на запись. Поэтому нужно поставить пакет {{{anonftp}}}, он состоит из одного файлаa |
Line 10: | Line 16: |
работать. Чтобы настроить FTP-сервер, нужно проделать еще три упражнения: | работать. но {{{vsftpd}}} работает через метадемон {{{inted}}}. |
Line 12: | Line 18: |
* Нужно включить сам метадемон {{{inetd}}}: {{{$chkconfig xinetd on}}} * Нужно включить сам {{{vsftpd}}}: {{{$chkconfig vsftpd on}}} * В файле ({{{/etc/xinetd.conf}}}) надо проверить, а не ждет ли нас замечательная фича ALTLinux — что все сетевые сервисы по умолчанию запускаются так, что они доступны только с этой же машины. Для этого закомментируем строчку |
Утилита {{{chkconfig}}} управляет одновременно и системными службами в стиле start/stop-ных скриптов (см. учебник), и настройками тех служб, которые цепляются к метадемону. Такой унверсальный интерфейс с единым синтаксисом. Посмотрим, какие включены службы {{{ # 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 }}} Видно, что по умолчанию все выключено. Нужно проделать еще три упражнения: * нужно включить сам метадемон {{{inetd}}}: {{{ $chkconfig xinetd on }}} * нужно включить сам {{{vsftpd}}}: {{{ $chkconfig vsftpd on }}} * в файле ({{{/etc/xinetd.conf}}}) надо проверить, а не ждет ли нас замечательная фича altlinux — что все сетевые сервисы по умолчанию запускаются так, что они доступны только с этой же машины. для этого закомментируем строчку |
Line 20: | Line 61: |
ними соединиться можно будет только с адресе {{{127.0.0.1}}}. | ними соединиться можно будет только с адресе {{{127.0.0.1}}}. |
Line 22: | Line 63: |
Можно зайти на ftp: | Нужно не забыть перезапустить {{{xinitd}}}, чтобы он перечитал конфиги. Он умный: при старте, если видит, что в нём нет разрешенных служб, молча останавливается. можно зайти на ftp: |
Line 30: | Line 74: |
Сообщений об ошибках не было, а файлов на нём никаких пока нет. Вообще, Если места на жестком диске мало (20-30 Гб), и режим работы компьютера |
Сообщений об ошибках не было, а файлов на сервере пока никаких нет. Вообще, Если места на жестком диске мало (20-30 Гб), и режим работы компьютера |
Line 34: | Line 78: |
корневым разделом. Хранилище ({{{ALTLinux/}}} с DVD-диска перепишем в {{{/var/ftp/pub}}}: В при работе с FTP используется дисциплина: в каталоге, |
корневым разделом. В при работе с FTP используется дисциплина: в каталоге, |
Line 41: | Line 86: |
(о копировании файлов.) Команда {{{cp -l}}} создаёт дерево каталогов, населяя их преимущественно жесткими ссылками на файлы-источники, а фактическое копирование она производит только если жесткую ссылку создать нельзя, например если это разные файловые системы или если происходит копирование директорий. Такое копирование может делаться очень быстро в пределах одной файловой системы. Вообще говоря, уже сейчас можно этот каталог делать доступным |
Вообще говоря, уже сейчас можно этот каталог делать доступным |
Line 50: | Line 89: |
Залогинимся на другой компьютер и попробуем для него подключить свежесозданный FTP-сервер как хранилище. |
## 00:40:30.5 (pause) ##Кусок от 080730 (с 03:24:41) |
Line 53: | Line 92: |
## 00:40:30.5 (pause) | === О настройке FTP-серверов === |
Line 55: | Line 94: |
##Кусок от 080730 | Использовать ftp с логином и паролем пользователя системы нехорошо. Разные FTP-клиенты, кроме lftp, требуют обязательно ввода логина и пароля, даже если это анонимный FTP-сервер, и тогда логин тогда должен быть либо anonymous либо ftp, что легче набирать, а проль -- какой угодно, лишь бы содержал @. |
Line 57: | Line 97: |
Развёртывание ftp. Для уст. ftp-сервера необх. выполнить неск. операций. * Установка двух пакетов: пакет с фтп-сервером (vsftpd) и специальный пакет (anonftp). Таке раздление нужн вт для чего: фтп-серверов в репозитрии много, у них у всех есть общ. часть, а именно дерево каталогов, которые надо разворачивать в домашний каталог ftp, и чтобы неск. раз это не делать, оно вынесено в отд. пакет, кроме ого, это защита дурака в стиле альтлинукс * Уст. пакета ни к чему не ведёт, поск. vsftpd работает через xinetd. xinetd по умолчанию тв. только на запросы с лок. машины, и в его конфиге (.уес.чштуевюсщта) надо закомм. строчку only from 127.0.0.1 * Дальше можно сделать chkconfig --list, chkconfig отвечает за настр. разных сервисов. По умолч. всё в xinetd выключено. Включим vsftpd: chkconfig vsftpd on, после чего перезапустить xinetd. Если ни одна служба в нём не запущена, то он молча останавливается * После чего мы мжем туда подкл. по ftp, и увидим, что ничего там нет. Теперь туда можно складывать файлы, которые будут доступны с любой машины. |
Этих ftp-серверов так много, во-первых, потому что там есть отдельные штуки, связанные с пользователем (однако, пароль на FTP для пользователя нужен только для одного, чтобы отмазаться от того, что вы бесплатно распространяете что-то, что бесплатно распространять нельзя. В этом случае вы говорите: какое бесплатно, видите, на FTP без пароля нельзя зайти, а вот мне лично бывает нужно скачать, я же хозяин, и т.п.), а в остальном понятно -- любой FTP-пароль всегда виден. Есть другая довольно неприятная картина: пусть у вас есть не очень мощная машина, кторая раздаёт какие-то важные файлы, и есть разные категории компьютеров-клиентов этого сервера. Например, если кто-то из локальной сети подключается, то приоритет высокий, а если издалека --- то низкий, и, скажем, ограничение на число одновременных соединений. В этом случае надо использовать всякие свойства всяких крутых FTP-демонов -- proftpd или vsftpd, где по ip-адресу клиента определяются правила и ограничения его работы. Так же можно защититься от всякого множественного скачивания, когда всякими ReGet'ами качают. Вторая прблема --- протокол ftp, гад, передаёт ip-адрес сервера прямо на прикладном уровне. То есть, когда вы подключаетсь по ftp, то прямо по FTP передаются IP-адреса и порты (в случае passive ftp -- адрес и порт сервера, куда теперь нужно подключиться клиенту, в случае active ftp -- адрес и порт клиента, куда соединиться сервер и закачает файл) |
Line 65: | Line 112: |
Использовать ftp с логином и парлем польз. нехорошо. Разные клиенты требуют ввода логина и пароля, даже если он анонимный, в этом случае логин --- anonymous или ftp, пароль с @. | ftp скорей всего придётся делать пассивным, но в этом случае возникает прблема: например, по управляющему, 21-му, порту устанавливается соединение между клиентом и сервером, и клиент говорит, что хочет чего-то взять. Сервер после этого говорит ip-адрес и порт, по которому клиент сможет это взять. Если машина с этим ip-адресов находится за NAT'ом, то есть происходит трансляция адресов, то будет дан её внутренний адрес, и далеко не каждый FTP-клиент способен это проигнорировать (например, мозилла (firefox) не может. Т.е., если вы заходите на адрес с внешним ip-шником по passive ftp и просите у него закачать файлы, и внутри протокола FTP приходит ip-адрес внутренний (10.X.X.X), firefox просто не работает, он честно следует протоколу FTP, в котором написано: заходить на такой-то ip-шник). |
Line 67: | Line 120: |
Этих ftp-серверов так много, во-первых, потому что там есть штуки, связанные с пользователем (это в первую чередь для того, чтобы отмазаться от того, что вы раздаёте что-то всем подряд). Есть другая довольно непр. картина: пусть у вас есть не очень мщная машина, кторая что0то раздаёт и есть разные категории машин. Напр, если кто-то подкл. по локальной сети, то приоритет высокий, а если по удалённой --- то низкой. В этом случае потребуются фишки настройки, где ограничивается количество соединений, сеансов.... Вторая прблема --- протокол ftp, гад, передаёт ip-адрес сервера прям на прикладном уровне. То есть, когда вы подкл. по ftp, то надо иметь ip одной из сторон, чтобы к ней подкл. и передать данные. ftp скорей всего придётся делать пассивныМ, но в жтом случае взн. прблема: по упр., 21, порту уст. соед. между клиентом и сервером, и клиент говорит, что хочет чего-то взять. Сервер после этого говорит ip и порт, по которому клиент сможет это взять. Если машина за натом, то далеко не каждый клиент способен это проигнорировать (например, мозилла не мжет). Пэтому у ftp-сервера должна быть взм. в зависимости от того, с каким ip клиент пришёл, раздавать ему сотв. ip. Лектор у себя это разруливал на урвне фаервлла. Но надо иметь в виду, что если это не разрулить, т кто-то не сможет пдкл. |
Пэтому у ftp-сервера должна быть возможность в зависимости от того, с какого ip-адреса клиент пришёл, передавать ему для соединения внутри FTP-протокола подходящий (внутренний, либо внешний) ip-адрес, иначе что-то может не работать. Лектор у себя на факультете это разруливал на уровне firewall'а (соединения по 21 порту с разных ip-адресов разруливались на разные порты, где их ждали по-разному настроенные FTP-серверы, но это изврат). Но надо иметь в виду, что если FTP-сервер сидит не на внешнем ip-адресе, а находится за межсетевым экраном, на котором включена трансляция адресов (NAT), то есть реальный шанс, что соединения к нему не будут работать либо из внешней, либо из внутренней сети. ## 300708 till 03:30:00 |
Line 76: | Line 137: |
|| 10 || 1 || 1 || 1 || || 1 || PavelSutyrin, ОльгаТочилкина, VsevolodKrishchenko || || || | || 20 || 1 || 1 || 1 || || 1 || PavelSutyrin, DmitryChistikov, VsevolodKrishchenko || || || |
Установка и настройка FTP-сервера
Поставим пакет vsftpd, а также пакет anonftp. Разделение такое затем, что в репозитории есть много FTP-серверов (proftpd, vsftpd, bsdftp). У них есть нечто общее: дерево каталогов, которое нужно развернуть в домашнем каталоге этого FTP-сервера (/var/ftp, и чтобы каждый раз его не создавать, оно было вынесено в отдельный пакет. К тому же, в ALTLinux, уделяющем много внимания безопасности, есть много разных закладок для защиты от дурака, чтобы человек не поставил себе ftp-сервер, а тот сразу заработал и открыл всем доступ на запись. Поэтому нужно поставить пакет anonftp, он состоит из одного файлаa /var/ftp, при появлении этого файла ftp начинает хотя бы нормально работать. но vsftpd работает через метадемон inted.
Утилита chkconfig управляет одновременно и системными службами в стиле start/stop-ных скриптов (см. учебник), и настройками тех служб, которые цепляются к метадемону. Такой унверсальный интерфейс с единым синтаксисом.
Посмотрим, какие включены службы
# 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
Видно, что по умолчанию все выключено.
Нужно проделать еще три упражнения:
нужно включить сам метадемон inetd:
$chkconfig xinetd on
нужно включить сам vsftpd:
$chkconfig vsftpd on
в файле (/etc/xinetd.conf) надо проверить, а не ждет ли нас замечательная фича altlinux — что все сетевые сервисы по умолчанию запускаются так, что они доступны только с этой же машины. для этого закомментируем строчку
only_from 127.0.0.1
Это если вы понаставили служб, которые пользуются inetd и повключали их, то с ними соединиться можно будет только с адресе 127.0.0.1.
Нужно не забыть перезапустить xinitd, чтобы он перечитал конфиги. Он умный: при старте, если видит, что в нём нет разрешенных служб, молча останавливается.
можно зайти на ftp:
$lftp localhost lftp localhost:~> ls lftp localhost:/> exit
Сообщений об ошибках не было, а файлов на сервере пока никаких нет. Вообще, Если места на жестком диске мало (20-30 Гб), и режим работы компьютера щадящий (включил-поработал-выключил, а не круглосуточно включенный сервер с файлами), то можно не думать о разбиении диска, а весь диск сделать одним корневым разделом.
В при работе с FTP используется дисциплина: в каталоге, который является корнем для службы FTP, в нашем случае /var/ftp, должен быть подкаталог pub/, в котором файлы доступны на чтение, это файлы для публичных пользователей. В документации можно прочитать, как организовать доступ по FTP обычным пользователям системы.
Вообще говоря, уже сейчас можно этот каталог делать доступным в качестве хранилища нашего класса. Доступ по 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 |
20 |
1 |
1 |
1 |
|
1 |
|
|