FTP-Сервер в Ubuntu\Debian\Mint. Простое пошаговое руководство
Простое пошаговое руководство для новичков по установке ftp — сервера proftpd.
Из многих приложений для организации такого сервиса был выбран пакет proftpd. Ниже — подробно и пошагово описан процесс установки и настройки.
ProFTPd — FTP-сервер для Linux и UNIX-подобных операционных систем. ProFTPd использует лишь один конфигурационный файл «proftpd.conf», который располагается по умолчанию в:
Linux — «/etc/proftpd/proftpd.conf»
FreeBSD — «/usr/local/etc/proftpd.conf»
Установка proftpd:
sudo apt-get install proftpd
Выйдет вопрос о способе запуска. Для чистоты эксперимента я выбрал: «самостоятельно».
Создаем в /HOME каталоге папку studylinuxftp ( не обязательно такое имя папки, это имя просто для удобства, — можно использовать любое и не корень домашней папки.:
sudo mkdir /home/studylinuxftp
Теперь создаем пользователя с именем studylinux (с домашней папкой \home\studylinuxftp):
sudo useradd studylinux -p пароль -d /home/studylinuxftp
Вместо «пароль» – ввести свой пароль ВНИМАНИЕ!!! Пароль только из цифр РАБОТАТЬ НЕ БУДЕТ!!! Проверено! (времязатраты — минут около 30-40ка(((.)
В папке studylinuxftp создаем две вложенные папки(называем как хотим):
sudo mkdir /home/studylinuxftp/public
sudo mkdir /home/studylinuxftp/upload
Им необходимо присвоить права:
sudo chmod 755 /home/studylinuxftp
sudo chmod 755 /home/studylinuxftp/public
sudo chmod 777 /home/studylinuxftp/upload
Public – только чтение. upload – запись. Подробнее о правах на файлы в Linux тут.
Для резервной копии переименовываем имеющийся конфигурационный файл proftpd.conf (очень удобно делать так при правке файлов сайта или конфигов — без скачивания и последующей закачки бекапа вы делаете быстро резервную копию и в три секунды можете ее восстановить) и создаем новый:
sudo mv /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.old
sudo nano /etc/proftpd/proftpd.conf
Добавляем в него:
# ненужный протокол UseIPv6 off
AllowOverwrite on AuthAliasOnly on
# Здесь присваивается alias пользователю (в качестве примера присвоено имя test, его нужно изменить на свое) UserAlias test studylinux
ServerName "server" ServerType standalone DeferWelcome on
MultilineRFC2228 on DefaultServer on ShowSymlinks off
TimeoutNoTransfer 600 TimeoutStalled 100 TimeoutIdle 2200
DisplayChdir .message ListOptions "-l"
RequireValidShell off
TimeoutLogin 20
RootLogin off
# пути для логов ExtendedLog /var/log/ftp.log TransferLog /var/log/xferlog SystemLog /var/log/syslog.log
#DenyFilter \*.*/
UseFtpUsers off
# Allow to restart a download AllowStoreRestart on
# Стандартный порт - 21,но можно выбрать любой: Port 21
# повышение безопасности MaxInstances 8
# пользователь и группа User nobody Group nogroup
# Umask 022 ограничение на создание файлов и папок Umask 022 022
PersistentPasswd off
MaxClients 8 "Достигнут предел на количество клиентов" MaxClientsPerHost 8 "Достигнут предел на количество клиентов с Вашего хоста" MaxClientsPerUser 8 "Достигнут предел на количество подключений (%m)" MaxHostsPerUser 8 "Больше нельзя"
# вывод приветствия после успешного входа AccessGrantMsg "Добро пожаловать на ftp сервер studylinux.ru" # идентификация ServerIdent on "Мой домашний сервер"
# делаем /home/studylinuxftp папку домашней DefaultRoot /home/studylinuxftp
# запрещаем выходить пользователям за пределы домашней папки (строго рекомендуется) DefaultRoot ~
MaxLoginAttempts 5 "Количество попыток входа исчерпано"
#VALID LOGINSAllowUser studylinux DenyALL Umask 022 022 AllowOverwrite off DenyAll Umask 022 022 AllowOverwrite off DenyAll /home/studylinuxftp/upload/> Umask 022 022 AllowOverwrite on # # анонимный доступ #DenyAll AllowAll # User studylinux # Group nogroup # UserAlias anonymous studylinux # MaxClients 8 "Извините, максимум %m пользователей - попробуйте подключиться позже" # DisplayChdir .message # # # ## DenyAll # #
После произведенных действий фтп-сервер будет иметь следующие параметры доступа:
user (пользователь): test
password (пароль): pass (тот, что присвоен для studylinux)
Пользователей можно создать хоть все 65 примерно тысяч, но все они должны быть прописаны в файле proftpd.conf. Если нужно сделать анонимный доступ, следует закомментировать обе секции для test и раскомментировать секцию для Anonymous. Рестарт сервера нужен для вступления в силу конфига:
sudo /etc/init.d/proftpd restart
Очень просто можно подключить любую папку к фтп-серверу без редактирования конфига:
sudo mount -o bind /здесь/путь/папки/что/я/хочу/расшарить/ /home/studylinuxftp/public
или:
sudo mount -o bind /здесь/путь/папки/что/я/хочу/расшарить/ /home/studylinuxftp/upload
Таким образом можно в срочном порядке временно подключить папку или диск и потом отмонтировать командой:
sudo umount /home/studylinuxftp/public
sudo umount /home/studylinuxftp/upload
Надеюсь, было просто и понятно — по крайней мере, у меня получилось. Основные трудности — необходимость создания аллиаса пользователю системы в конфиге сервера и четкая простановка прав на папки. Есть вещи весьма не очевидные, как-то что пароль не может состоять из одних цифр, из соображений безопасности proftpd с таким паролем работать отказывается.
Добавить комментарий