Воскресенье, 13 Май 2012 17:34

Настройка домашнего сервера, выполняющего роли веб-сервера, почтового сервера и фтп-сервера. Этап 4.

Автор
Оцените материал
(7 голосов)

Этап 4. Настройка ФТП-сервера.

Пожалуй, этот этап, лично для меня, был самым простым, потому что ФТП-сервер я и раньше настраивал — это описано в другой моей статье. Но здесь эта настройка будет немного отличаться. Итак, фтп-сервер будет ProFTPd. Сперва-наперво, установим его:

cd /usr/ports/ftp/proftpd
make install clean

Опции сборки:

После установки приступим к конфигурированию. Находим файл /usr/local/etc/proftpd.conf и открываем его для редактирования. Комментируем строчку:

# UseIPv6 on

А под ней добавляем вот эти строчки:

LangEngine on
LangPath /usr/share/locale
UseEncoding KOI8-R WINDOWS-1251

Затем, ниже находим параметр umask и приводим его вот к такому виду:

Umask 007

Сохраняем изменения. Дальнейшее конфигурирование начнём проводить через webmin. Но для начала, я хочу объяснить, чего мне хочется. А для начала, мне хочется немного: хочу сделать всего три папки вот по такой схеме:

Если не совсем понятно, что я хочу, то потом, когда всё настроим — будет понятнее. Сразу создадим это дерево каталогов:

mkdir /usr/home/ftpserv
mkdir /usr/home/ftpserv/admin
mkdir /usr/home/ftpserv/guest
mkdir /usr/home/ftpserv/guest/files
chown -R admin:ftp /usr/home/ftpserv

Потом заходим в вэбмин и в меню находим «Сервер ProFTP» и видим несколько разных значков.

Заходим в параметры сети:

Здесь я поставил максимальное количество одновременных подключений равное 30, разрешил повторную загрузку на сервер и повторную загрузку с сервера. Если вы обратили внимание, то на скриншоте есть два параметра называемых «разрешить повторную загрузку?». Если же смотреть английский вариант, то эти две настройки будут звучать как: «Allow restarted downloads?» и «Allow restarted uploads?», что и означает повторную загрузку с сервера и на сервер. Также, здесь я выставил тип сервера как отдельный демон и явно указал диапазон портов для пассивного режима. Остальное не трогал. Сохраняем и переходим дальше.

Параметры ведения журнала: не менял ничего.

Файлы и каталоги:

Здесь я задал начальный каталог регистрации, ограничил всех пользователей в домашних каталогах, настроил, чтобы отменённые загрузки удалялись и владеющие группы в создаваемых файлах и каталогах подделывались на группу ftp. Когда мы будем создавать пользователя, то домашний каталог будем ему указывать тот, в котором мы его хотим запереть. Подделку владеющей группы я сделал для того, чтобы не возникло путаницы с правами на уровне файловой системы.

Управление доступом, Разное: Не менял ничего.

Теперь мы дошли до значка «Аутентификация». Но перед тем, как производить эти настройки, нам надо иметь какие-либо учётные записи в системе, которые будут использоваться для фтп-доступа. Пока что, у меня будет только пользователь админ и пользователь ftp для анонимного доступа. Перейдём в вебмине в пункт «Система» и выберем подпункт «Пользователи и группы». Здесь мы подредактируем учётку админа и создадим учётку ftp.

В учётке админа изменим следующее:

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

Теперь создадим пользователя ftp для анонимного доступа:

Указываем домашнюю папку, в которой хотим запереть этого анонимуса. Оболочку выбираем nologin. Основную группу —ftp. И ставим крыжи, чтоб не создавался домашний каталог и не перемещались туда файлы.

Вот теперь, пора вернуться к настройкам ProFTPd и кликнуть на значок Аутентификация:

Здесь мы запрещаем регистрацию для рута и запрещаем регистрацию пользователям из списка /etc/ftpusers. И самое главное: мы именно здесь добавляем нашего пользователя admin для доступа к ФТП-серверу. И здесь же, мы назначаем ему пароль именно для доступа ФТП. И этот пароль очень желательно сделать отличающимся от его пароля для входа в ОС. Идём далее.

Файл опций для каждого каталога: его пока пропустим, но обязательно вернёмся позже к нему.

Запрещённые пользователи FTP:

В этот список мы прописываем тех пользователей операционной системы, которым доступ в качестве фпт будет невозможен (дополнительная мера безопасности). Я туда добавил вот этих: mysql cyrus dovecot dovenull postfix virtual dcc spamd.

Ну а сейчас приступим к настройкам для анонимуса. Наверно, вы уже обратили внимание, что помимо общих настроек для ProFTpd, в вебмине есть ещё и настройки под названием «Виртуальные серверы», в которых мы видим значок с названием «Сервер по умолчанию». Вот на него и кликнем. Нам откроются параметры виртуального сервера с такими же значками, как и в общих настройках. Но в них нас интересует только один: Настройка анонимного FTP. Кликнем на него:

Выберем ограничение каталога, в котором запрём анонимуса и нажмём кнопку «создать». После этого нам снова откроется страничка с привычными значками, но называться она уже будет «Параметры анонимного FTP». Здесь мы тоже пройдёмся по некоторым из них.

Параметры сети:

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

Аутентификация:

Здесь я запретил регистрацию для root, разрешил регистрацию пользователям только с псевдоименами (а у нас это только anonymous). Поставил крыж, чтобы не требовать пароль для анонимной регистрации и разрешил регистрацию пользователям с оболочкой /sbin/nologin.

И вот теперь вернёмся к тому, что пропустили. Нажмём на надпись «вернуться в основное меню» и кликнем на значок «Файл опций для каждого каталога».

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

Здесь нас интересует только значок «user permissions», однако если же прогуляться по остальным настройкам, то мы увидим, что тут, конкретно для этого каталога, можно задавать свои параметры «Разрешить повторную загрузку?», «Удалять отмененные загрузки?», «Устанавливаемая группа для закачанных файлов» и прочие, которые мы уже видели в глобальных настройках ProFTPd. Если здесь эти настройки не трогать, то они останутся унаследованы от глобальных параметров ProFTPd.

Итак, заходим в интересующий нас «user permissions»:

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

Сначала на /usr/home/ftpserv/guest:

Здесь нам надо сделать так, чтоб полный доступ имел только админ. Для этого, админу даём все права с помощью вэб-интерфейса, а в теле самого файла кое-что прописываем вручную. То, что прописать вручную, я указал стрелочкой (<Limit WRITE>). Таким образом, всем будет только чтение, а админу — полный доступ.

На папку /usr/home/ftpserv/guest/files доступ делаем также, только вручную уже дописываем <Limit WRITE DIRS>:

Таким образом, эта папка не будет видна гостю, и попасть он в неё не сможет. Однако, если туда положить какой-нибудь файл и дать на него прямую ссылку, например такую:

ftp://example.com/files/file1.doc

То скачать этот файл можно. Ну, а у админа туда будет, также, полный доступ. Это нужно для того, чтобы аноним мог скачать файлы по прямой ссылке, но и чтобы он не знал про остальные файлы, которые там могут находиться.

В конце всех настроек, не забудем открыть порты для пассивного режима. В /etc/ipfw.rules добавляем:

# пассивные порты для фтп
add 00175 allow tcp from any to me 49152-65534 via em0

Перезапускаем ipfw, потом попробуем запустить ProFTPd-сервер:

service proftpd onestart

Если ругани никакой не вылезло, то всё в порядке, можно пользоваться. Только не забываем в rc.conf добавить строчку:

proftpd_enable="YES"

И на этом настройку всего сервера можно завершить. Возни, конечно же, очень много было, но мне кажется, что оно того стоило Улыбаюсь 

Вернуться обратно на:
Этап 1
Этап 2
Этап 3 

Прочитано 6298 раз Последнее изменение Воскресенье, 27 Май 2012 13:19

Добавить комментарий

Защитный код
Обновить

Вы здесь: Home Мои статьи FreeBSD Настройка домашнего сервера, выполняющего роли веб-сервера, почтового сервера и фтп-сервера. Этап 4.