proftpd проблемы и настройка

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Alex555
проходил мимо
Сообщения: 2
Зарегистрирован: 2017-02-01 6:09:12

proftpd проблемы и настройка

Непрочитанное сообщение Alex555 » 2017-05-25 10:50:53

Добрый день.
Прошу помочь разобраться почему не работает как задумывалось.
Т.е. не получается расставить права пользователям и группам на определенные каталоги в домашнем каталоге, который один на всех.
Стандартная часть конфига.

Код: Выделить всё

#
# For more information about Proftpd configuration
# see http://www.proftpd.org/
#
# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use.  It establishes a single server
# and a single anonymous login.  It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.

######### Подгружаем модули недостающие
LoadModule       mod_tls.c
LoadModule       mod_sftp.c
LoadModule       mod_sql.c
LoadModule       mod_sql_mysql.c

# имя сервера - показывается коннектящимся клиентам
ServerName      "Maine FTP Servant :)))"

# тип сервера (даже не тип самого сервера, а тип его запуска,
# standalone/inetd - сам или через inetd)
ServerType      standalone

# смысл следующей директивы такой: если клиент коннектится не на имя
# а на IP или на виртуальный хост, не описанный в конфиге, то при
# установке в `off` он получит отлуп, если же установлено `on` то
# он будет обслужен `сервером по-умолчанию`
DefaultServer      on

# e-mail администратора (по идее для каждого ВиртуалХоста его можно
# поставить разный - но я делаю один сервер без извращений с
# виртуальными хостами)
ServerAdmin             mail@mail.ru

# Сообщать свою версию сервера или нет
#ServerIdent             off

# файло где хранится инфа о сессиях
ScoreboardFile      /var/run/proftpd/proftpd.scoreboard

# порт на котором работает сервер
Port         0

# если вылезет проблема, типа тормозов при подключении
# (в момент установления коннекта `задумывается` на 10-20 секунд)
# то раскомментируйте следующие две строки
UseReverseDNS     off
IdentLookups      off

# Use IPv6 support by default.
# UseIPv6      off

# Маска с которой создаются новые файлы (не совсем маска - маска получается
# из этого значения, путём его вычитания из 777 - т.е. в даном случае получится
# маска 755)
Umask         022

# Максимальное число `детей` (работает только в standalohe режиме)
# необходимо для защиты от атак типа `отказ в обслуживании` да и
# от перегрузки сервера поможет :)
MaxInstances      30

CommandBufferSize   512

# Юзер от которого работает сервер
User         nobody

# группа, под которой работает сервер
Group         nogroup

# Автоматическое удаление недогруженного файла.
#DeleteAbortedStores   on

# Включаем поддержку докачки и дозагрузки файлов
AllowRetrieveRestart            on
AllowStoreRestart               on

# Включаем использование sendfile() функциональности, что снижает затраты на ресурсы,
# но его включение нарушает отображение статистики в таких утилитах как ftptop и ftpwho
#UseSendfile yes
# Задаем временную зону, соответствующую настройкам сервера
TimesGMT off
SetEnv TZ :/etc/localtime

# Включаем поддержку более безопасной загрузки файлов. Вначале файл загружается с именем .in.filename.ext
# И только после успешной и полной загрузки он переименовывается в filename.ext. Позволяет избежать проблем
# частичной загрузки файлов, а так же случаев, когда частично загруженный файл начинает использоваться системой
HiddenStores on


tcpBackLog 5
#где находятся логи
Include etc/proftpd/conf/proftpd_log.conf

<IfModule mod_ctrls.c>
ControlsEngine          on
        ControlsACLs            all allow user root
        ControlsMaxClients      2
ControlsLog             /var/log/proftpd/proftpd_controls.log
        ControlsInterval        5
        ControlsSocketOwner     root wheel
        ControlsSocketACL       allow user root
</IfModule>


Глобал часть.

Код: Выделить всё

<Global>

<IfModule mod_cap.c>
# Allow root to use chown(2)
CapabilitiesEngine off
CapabilitiesSet -CAP_CHOWN
</IfModule>

#########################################################################
#                                                                       #
# На FreeBSD 11.0 установлена локаль UTF-8, при доступе к файлу,        #
# которые именован русскими буквами произошла ошибка.                   #
#                                                                       #
#########################################################################
<IfModule mod_lang.c>
LangEngine  on
UseEncoding   utf8  utf8
</IfModule>

################# Регистрация в SQL ####################################
Include etc/proftpd/conf/proftpd_sql.conf

################## Конец регистрации в SQL #############################

#AllowFilter ^[-A-Za-z0-9_\.(),/]*$ # на всякий случай ;)
PathDenyFilter "(\\.Ftpaccess | \\.htaccess)$"
#PathDenyFilter "(^\.ftpaccess$)" # чтобы не порождать иллюзий
DenyFilter \*.*/

#######################################################################
# описание директивы на смену прав файлов
#по умолчанию запрещено всем менять права на файлы

<Limit SITE_CHMOD>
  DenyAll
</Limit>
######################################################################

# если надо чтобы ВСЕ пользователи по ftp были ограниченны
# своей домашней директорией, то надо раскомментировать
# следующую строку:
#DefaultRoot            ~
# у меня хитрее сделано - себе я разрешил шариться по всему серверу
# а остальных за`chroot`ил. Если, например, надо чтобы пользователи
# могли по серверу шариться а анонимоусы нет, то надо указать !users
# также можно указать определённую группу.
DefaultRoot             ~       !admin

# Разрешаем перезаписывать файлы
AllowOverwrite         on
# Директории
<Directory ~>
   <Limit Write>
      DenyAll
      AllowUser   admin, petya
    </Limit>
   <Limit READ>
      AllowAll
    </Limit>
          <Limit DELE>
      DenyAll
      AllowUser   admin, petya
    </Limit>
</Directory>
<Directory ~/qw/*>
   <Limit READ>
      AllowAll
    </Limit>
   <Limit Write STOR>
      AllowGroup   proftpd
      DenyAll
    </Limit>
</Directory>

</Global>

И часть включения sftp и tls

Код: Выделить всё

<VirtualHost 192.168.01.01>
#      MasqueradeAddress myhost.mydomain.com

#########################################################################
# Включаем SFTP
Include /usr/local/etc/proftpd/conf/proftpd_sftp.conf
#########################################################################
</VirtualHost>

<VirtualHost 192.168.01.01>
#########################################################################
# Включаем шифрование TLS/SSL
Include /usr/local/etc/proftpd/conf/proftpd_tls_ssl.conf
#########################################################################
</VirtualHost>


Если указать <Directory ~/qw> или <Directory ~/qw/> то папку не видно
А при указанном выше в qw никто записать ничего не может.
Даже те кому разрешена запись в корень.
Если удалить <Directory ~/qw/*> то кому разрешена запись везде могут сохранять.
Т.е. цель запретить всем кроме разрешенных запись в корень, а на определенных папках разрешена запись определенным группам, а всем остальным пользователям только чтение всего.
Так же не могу понять почему в тотале показывается .htaccess, хотя фильтр PathDenyFilter "(\\.Ftpaccess | \\.htaccess)$" есть.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 34889
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

proftpd проблемы и настройка

Непрочитанное сообщение Alex Keda » 2017-09-09 12:42:08

Юзеры системные?
Права смотрите на директории
Убей их всех! Бог потом рассортирует...


Вернуться в «FreeBSD/UNIX для начинающих»

Кто сейчас на конференции

Сейчас этот форум просматривают: YandexBot[Bot] и 2 гостя