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

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

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

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Alex555
проходил мимо
Сообщения: 3
Зарегистрирован: 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)$" есть.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

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

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

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

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

Alex555
проходил мимо
Сообщения: 3
Зарегистрирован: 2017-02-01 6:09:12

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

Непрочитанное сообщение Alex555 » 2018-03-14 10:39:30

Юзеры виртуальные,
Alex555 писал(а): ################# Регистрация в SQL ####################################
Include etc/proftpd/conf/proftpd_sql.conf
Пользователь заходит после регистрации.
Так же увидел, что фильтр
Alex555 писал(а): PathDenyFilter "(\\.Ftpaccess | \\.htaccess)$"
работает только в в глобальной директории, а в под директориях не работает пользователь может сам создать данный файл.

killer67
рядовой
Сообщения: 28
Зарегистрирован: 2012-07-25 15:08:12

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

Непрочитанное сообщение killer67 » 2019-03-15 8:54:31

Всем привет, давненько меня тут не было...
ProFTPD 1.3.6
Хотел подключить mysql он просит mysql56-client: 5.6.43 - У меня стоит 5.7
Хотел подключить sqlite, все норм, установилось, нигде не заругалось, но модуль нигде не прописался...
Если насильно пытаться прописать в proftpd.conf получаю ошибку загрузки модуля, файл module.conf я нигде не нашел.

Подскажите как подключить данный модуль?

Устанавливал из пакетов:

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

pkg install proftpd-1.3.6 proftpd-mod_clamav-0.14.r2 proftpd-mod_sql_sqlite-1.3.6_3

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

proftpd -l
Compiled-in modules:
  mod_core.c
  mod_xfer.c
  mod_rlimit.c
  mod_auth_unix.c
  mod_auth_file.c
  mod_auth.c
  mod_ls.c
  mod_log.c
  mod_site.c
  mod_delay.c
  mod_facts.c
  mod_dso.c
  mod_ident.c
  mod_auth_pam.c
  mod_ctrls.c
  mod_lang.c
Не смотря на установку clamav и sqlite в списке их все равно нет.

guest
проходил мимо

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

Непрочитанное сообщение guest » 2019-03-18 16:20:12

ProFTPD 1.3.6
Хотел подключить mysql он просит mysql56-client: 5.6.43 - У меня стоит 5.7
для этого нужно самостоятельно собрать из портов и изменить default для MySQL, ибо
по умолчанию 5.6:
/etc/make.conf
DEFAULT_VERSIONS= mysql=5.7
Хотел подключить sqlite, все норм, установилось, нигде не заругалось, но модуль нигде не прописался...
Если насильно пытаться прописать в proftpd.conf получаю ошибку загрузки модуля, файл module.conf я нигде не нашел.

Подскажите как подключить данный модуль?
надо не искать, надо создавать самостоятельно, в отличие от Linux, в FreeBSD мало заготовок для
пользователей и администраторов.

proftpd.conf
...
# Load Modules, make you own modules.conf
Include /usr/local/etc/proftpd/modules.conf
...
# Include SQlite3 Back-End
Include /usr/local/etc/proftpd/sqlite.conf

/usr/local/etc/proftpd/modules.conf

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

# This file is used to manage DSO modules and features.
#
# This is the directory where DSO modules reside

ModulePath /usr/local/libexec/proftpd/

# Control
#LoadModule mod_ctrls_admin.c
#LoadModule mod_tls.c
# Install one of proftpd-mod-mysql, proftpd-mod-pgsql or any other
# SQL backend engine to use this module and the required backend.
# This module must be mandatory loaded before anyone of
# the existent SQL backeds.
LoadModule mod_sql.c

# Install proftpd-mod-ldap to use this
#LoadModule mod_ldap.c

#
# 'SQLBackend mysql' or 'SQLBackend postgres' directives are required
# to have SQL authorization working. You can also comment out the
# unused module here, in alternative.
#

# Install proftpd-mod-mysql and decomment the previous
#mod_sql.c module to use this.
#LoadModule mod_sql_mysql.c

# Install proftpd-mod-pgsql and decommen the previous
# mod_sql.c module to use this.
#LoadModule mod_sql_postgres.c

# Install proftpd-mod-sqlite and decomment the previous
# mod_sql.c module to use this
LoadModule mod_sql_sqlite.c

# Install proftpd-mod-odbc and decomment the previous
# mod_sql.c moduleto use this
#LoadModule mod_sql_odbc.c

#LoadModule mod_radius.c
LoadModule mod_quotatab.c
LoadModule mod_quotatab_file.c

# Install proftpd-mod-ldap to use this
#LoadModule mod_quotatab_ldap.c

# Install proftpd-mod-pgsql or proftpd-mod-mysql to use this
LoadModule mod_quotatab_sql.c
#LoadModule mod_quotatab_radius.c
#LoadModule mod_wrap.c
LoadModule mod_rewrite.c
#LoadModule mod_load.c
LoadModule mod_ban.c
LoadModule mod_wrap2.c
LoadModule mod_wrap2_file.c
# Install proftpd-mod-pgsql or proftpd-mod-mysql to use this
#LoadModule mod_wrap2_sql.c
#LoadModule mod_dynmasq.c

# keep this module the last one
LoadModule mod_ifsession.c

# antivirus clamav module
LoadModule mod_clamav.c
<IfModule mod_clamav.c>
  ClamAV on
  ClamServer 127.0.0.1
  ClamPort 3310
</IfModule>

/usr/local/etc/proftpd/sqlite.conf

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

#########################################################################
#                        SQlite3 backend                                #
#########################################################################

<IfModule mod_sql.c>
   SQLBackend      sqlite
   SQLEngine on
   SQLAuthenticate users
# Plaintext - unsecure non-encrypted password, Crypt - encrypted password
# SQlite does not have internal Crypt support
   SQLAuthTypes Plaintext Crypt
# Path to SQLite log file
   SQLLogFile           /var/log/proftpd/sql.log
# Path to sqlite user database
   SQLConnectInfo /usr/local/etc/proftpd/proftpd.db
   SQLUserInfo users userid passwd uid gid homedir shell
   SQLGroupInfo groups groupname gid members
</IfModule>

Создание SQLite3 DB:

# cd /usr/local/etc/proftpd
# sqlite3 proftpd.db
sqlite> CREATE TABLE users (
userid character varying(30) NOT NULL,
passwd character varying(80) NOT NULL,
uid integer,
gid integer,
homedir character varying(255),
shell character varying(255)
);

sqlite> CREATE TABLE groups (
groupname character varying(30) NOT NULL,
gid integer NOT NULL,
members character varying(255)
);

# grep zhopa /etc/passwd
смотрим uid,gid,home и login shell

теперь вставляем пользователя zhopa

sqlite> INSERT INTO users (userid, passwd, uid, gid, homedir, shell)
VALUES (
'zhopa',
'hren123',
1002,
1000,
'/home/zhopa/',
'/usr/sbin/nologin'
);
sqlite> .fullschema
sqlite> .tables
sqlite> .q

# /usr/local/etc/rc.d/proftpd onestart

вся диагностика будет в логах.

proftpd - имеет встроенные модули и подгружаемые через dso, отсюда и вывод от proftpd -l
соответствующий.

Как-то так.