Задача.
Установить ftp сервер ProFTPD на базе Ubuntu в локальной сети. Сервер не анонимный, имеет авторизацию по выдаваемому администратором логину и паролю. Базы данных для авторизации не используются в данном случае, то есть никаких умопомрачительных конструкций с mysql не будет :)
От себя: Есть несколько вариантов установки и настройки ProFTPD. В этом мне понравилась реализация виртуальных пользователей.
Устанавливаем сам сервер. Я поставил тот, что идёт с репозиториев, кому хочется поставить более свежую версию - собирайте его сами с сайта.
В терминале.
Переходим в домашний каталог:
Выставим права на каталог ftp в который будем заливать файлы:
Первая команда - создаём группу ftp2 пользователем которой является пользователь с именем user, автоматически будет также создан файл ftpd.group
Последние две команды выше повторяем столько раз сколько пользователей вам нужно. Кому очень хочется посмотреть куда пишутся пароли и прочее (они там будут в виде хэша) велком в каталог/etc/proftpd
Ещё раз для понимания - это не UNIX пользователи, это фактически учётные записи вашего фтп-сервера.
Далее настраиваем конфиг сервера
От себя: FTP сервер находится в офисе, т.к. не все работники умели пользоваться ftp клиентом, для добавления файлов была прикручена samba и расшарен доступ. Об этом будет небольшая статья.
Установить ftp сервер ProFTPD на базе Ubuntu в локальной сети. Сервер не анонимный, имеет авторизацию по выдаваемому администратором логину и паролю. Базы данных для авторизации не используются в данном случае, то есть никаких умопомрачительных конструкций с mysql не будет :)
От себя: Есть несколько вариантов установки и настройки ProFTPD. В этом мне понравилась реализация виртуальных пользователей.
Устанавливаем сам сервер. Я поставил тот, что идёт с репозиториев, кому хочется поставить более свежую версию - собирайте его сами с сайта.
В терминале.
sudo aptitude install proftpd-basicСервер устанавливаем как standalone (должно вылететь соответствующее окошко с запросом).
Переходим в домашний каталог:
cd /homeСоздаем в нём каталог ftp в котором и будут храниться наши файлы
sudo mkdir ftpДалее вам необходимо зайти в файл
/etc/shells и проверить, есть ли там строчка /bin/falseесли нет, то добавьте её туда (здесь и далее я разжёвывать не буду уж такие простые вещи, как редактирование файла под sudo хорошо?, всё же если вы ставите сервер, то потрудитесь перед этим изучить самые основы).
Выставим права на каталог ftp в который будем заливать файлы:
cd /home sudo chmod 777 ftpТеперь нам надо создать пользователей с их логинами и паролями. Делается это через команду. Обратите внимание, что первой командой мы создаём группу и присваиваем данной группе конкретного пользователя, второй пользователя, хранятся эти данные в соответствующих файлах рядом с файлом конфигурации сервера в каталоге /etc/proftpd
Первая команда - создаём группу ftp2 пользователем которой является пользователь с именем user, автоматически будет также создан файл ftpd.group
sudo ftpasswd --group --name=ftp2 --gid=50 --member=user --file /etc/proftpd/ftpd.groupВторая команда - создаём самого пользователя user. Обратите внимание, ещё раз, что user - это логин пользователя, он может быть маша, вася, петя и так далее, короче это логин. В этой же команде задан каталог пользователя. Автоматически также при первом использовании команды будет создан файл ftpd.passwd
sudo ftpasswd --passwd --name=user --home=/home/ftp --shell=/bin/false --uid=1003 --file /etc/proftpd/ftpd.passwdПри вводе команды будет запроше пароль для пользователя, ну придумайте уж какой-нибудь.
Последние две команды выше повторяем столько раз сколько пользователей вам нужно. Кому очень хочется посмотреть куда пишутся пароли и прочее (они там будут в виде хэша) велком в каталог/etc/proftpd
Ещё раз для понимания - это не UNIX пользователи, это фактически учётные записи вашего фтп-сервера.
Далее настраиваем конфиг сервера
/etc/proftpd/proftpd.confПривожу свой рабочий конфиг полностью. Добавил также некоторые комментарии.
AllowOverwrite on RequireValidShell off AuthUserFile /etc/proftpd/ftpd.passwd AuthGroupFile /etc/proftpd/ftpd.group # Don't use IPv6 support by default. UseIPv6 off ServerName "ftp-server" ServerType standalone DeferWelcome on # Эти две команды убыстряют работу сервака, гуглите для подробностей. UseReverseDNS off IdentLookups off MultilineRFC2228 on DefaultServer on ShowSymlinks off TimeoutNoTransfer 600 TimeoutStalled 100 TimeoutIdle 2200 DisplayChdir .message ListOptions "-l" TimeoutLogin 20 #Запрещаем подключаться на сервер как root, полезно для безопасности RootLogin off # Создаём журналы ExtendedLog /var/log/ftp.log TransferLog /var/log/xferlog SystemLog /var/log/syslog.log #Запрещаем заливать на сайт файлы начинающиеся с точки, полезно для безопасности DenyFilter \*.*/ # Используем файлик /etc/ftpusers в нём перечислены те пользователи, которым запрещено входить на сервер, полезно для безопасности UseFtpUsers on # Разрешаем докачивать файлы AllowStoreRestart on # задаём порт, на котором будет работать сервак, обычно 21 Port 21 # Против DDOS атаки, полезно для безопасности MaxInstances 8 # Сервер запускается и работает под этим пользователем и группой User nobody Group nogroup # Umask 022 is a good standard umask to prevent new files and dirs # (second parm) from being group and world writable. Umask 022 022 MaxClients 8 MaxClientsPerHost 8 MaxClientsPerUser 8 MaxHostsPerUser 8 # Сообщение после успешного захода на сервер AccessGrantMsg "Welcome to Server" #Идентификатор сервера, показывается всем при заходе на сервер ServerIdent on "privet :))" # Запираем всех в домашнем каталоге, чтобы не могли просмотреть каталоги выше, важно для безопасности DefaultRoot ~ MaxLoginAttempts 5 #VALID LOGINS Добавляем пользователей, которым разрешен доступ к серверу <Limit LOGIN> AllowUser user DenyALL </Limit> Umask 022 022 AllowOverwrite onПерезапускаем сервер:
/etc/init.d/proftpd start
От себя: FTP сервер находится в офисе, т.к. не все работники умели пользоваться ftp клиентом, для добавления файлов была прикручена samba и расшарен доступ. Об этом будет небольшая статья.
Комментариев нет:
Отправить комментарий