Пробую первый раз поднять ftp-сервак c помощью proftpd, на базе Debian 5.o
вот листинг файла proftpd.conf:
——————
#
# /etc/proftpd/proftpd.conf — This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
#
# Includes DSO modules
Include /etc/proftpd/modules.conf
# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6 on
ServerName «Debian»
ServerType standalone
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayFirstChdir .message
ListOptions «-l»
DenyFilter \*.*/
# Port 21 is the standard FTP port.
Port 21
# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts 49152 65534
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User proftpd
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
# Normally, we want files to be overwriteable.
AllowOverwrite on
# Uncomment this if you are using NIS or LDAP to retrieve passwords:
# PersistentPasswd off
# Be warned: use of this directive impacts CPU average load!
#
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
# UseSendFile off
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
TLSEngine off
QuotaEngine on
Ratios on
# Delay engine reduces impact of the so-called Timing Attack described in
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default.
DelayEngine on
ControlsEngine on
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
AdminControlsEngine on
# A basic anonymous configuration, no upload directories.
#
# User ftp
# Group nogroup
# # We want clients to be able to login with «anonymous» as well as «ftp»
# UserAlias anonymous ftp
# # Cosmetic changes, all files belongs to ftp user
# DirFakeUser on ftp
# DirFakeGroup on ftp
#
# RequireValidShell off
#
# # Limit the maximum number of anonymous logins
# MaxClients 10
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayFirstChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
#
#
# DenyAll
#
#
#
# # Uncomment this if you’re brave.
# #
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# #
# # DenyAll
# #
# #
# # AllowAll
# #
# #
#
#
———————
(пробовал и с раскоментированным разделом Anonymos)
Пытаюсь подключиться с другого компа, из под винды, через Total Commander, в настройках указываю в качестве сервера ip компа с Debian, как анонимный пользователь. При попытке подключения выдает что неверный логин.
Подскажите, как быть, что исправить, чтобы можно было подключаться анонимно. И где в случае чего смотреть логи proftpd.
Заранее спасибо!
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Где смотреть логи? Вы же сами написали :-)
Для анонимного логина нужно раскомментировать секцию Anonymous. И можно начинать смотреть логи…
Она должна быть раскомментирована так:
#
User ftp
Group nogroup
# We want clients to be able to login with «anonymous» as well as «ftp»
UserAlias anonymous ftp
# Cosmetic changes, all files belongs to ftp user
DirFakeUser on ftp
DirFakeGroup on ftp
# RequireValidShell off
? И подключаться как просто анонимный пользователь, или пользователь с логином ftp без пароля?
С логином anonymous и любым email’ом в качестве пароля (хоть a@a.a).
Спасибо! А как-то можно это проверить, самому к своему компу подключиться что-ли?
Да, конечно. Можно смело заходить на ftp://127.0.0.1/
P.S. В зависимости от используемых клиентов может понадобиться включение пассивного режима. Но если логин/пароль спрашивают и отказывают в авторизации, то проблема не в этом.
Всем спасибо, разобрался. Но опять возник вопрос. Я сделал авторизацию пользователей через MySQL, по этой инструкции:
http://forum.ubuntu.ru/index.php?action=dlattach;topic=37507.0;attach=9555
При авторизации пользователя для него создается папка, и только в этой папке он может что-либо делать. Как сделать чтобы была 1 общая папка с файлам, и юзеры могли из неё скачивать, и в подпапке Incoming создавать любые папки и в них закачивать файлы.
Не могу понять — это делается в БД MySQL или же в конфигах ProftpD?
Это делается в конфиге proftpd.
1) Куда (в какой каталог) пользователи будут изначально попадать и как они будут ограничены в рамках файловой системы — это см. директивы DefaultRoot и DefaultChdir.
2) Для создания Incoming с правами на upload нужно сделать что-то вроде:
(тут разрешены заливка любых файлов и создание любых каталогов, но запрещено удаление любых файлов)
Этот блок должен оказаться внутри «» — если выражаться точнее, то внутри блока конфига, посвященного каким-то пользователям.
Получается тут принцип такой: что НЕ описано в блоке — то разрешено?
Ага. Из ProFTPD mini HOWTO: Configuring s: «By default, all commands are allowed in a directory».
Тем не менее, в примере разрешается STOR и MKD во избежание потенциальных проблем с унаследованием запрета этих команд из родительского блока. В общем, рекомендую почитать упомянутое HOWTO для понимания. Вот оттуда пример для реализации принципа UNIX («по умолчанию запрещено все[, что не разрешено]»).
Огромное спасибо, Дмитрий. Еще вот пытаюсь вникнуть в аутентификацию через файл, директивы AuthUserFile и AuthGroupFile указал, в моем примере мне немного непонятен формат файла с паролями:
Строка:
joe:$1$2KdLsLL1G$LNq21xp91/4vhF/l/0N1. :20000:20000:Joe User:/srv/ftp/joe:
Это пользователь joe с паролем qwerty, хешированным утилитой ftpasswd. И что означает:
/4vhF/l/0N1. :20000:20000:Joe ?
Также неясно, после какого символа начинается шифрованный пароль и где заканчивается?
Здесь разделителем является знак «:». Пароль — вот он: «$1$2KdLsLL1G$LNq21xp91/4vhF/l/0N1. » (второй элемент в строке).
20000 и еще раз 20000 — uid и gid пользователя, Joe User — его полное имя…
По формату файла можно почитать в:
(ftpasswd — он по сути тот же passwd.)