Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Proftpd + mod_exec + mod_vroot  (Прочитано 2100 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kobaltd

  • Автор темы
  • Активист
  • *
  • Сообщений: 273
    • Просмотр профиля
Proftpd + mod_exec + mod_vroot
« : 04 Октября 2018, 23:21:46 »
Так помогайте кто может.
Условия такие
1) каждый пользователь должен подключаться в свою директорию
2) при закачке пользователем файла он должен быть обработан скриптом
3) пользователей много

И так для пункта 3 используется mysql - тут все хорошо
А дальше приключения
для пункта 1 надо использовать DefaultRoot ~ - работает но отключается пункт 2

mod_exec/0.9.12[19985]: error: unable to open /dev/null for stdin: No such file or directory
mod_exec/0.9.12[19985]: '/usr/bin/php' terminated normally, with exit status 2
mod_exec/0.9.12[19985]: STOR ExecOnCommand '/usr/bin/php' failed: No such file or directory

если подключить mod_vroot скрипт начинает работать, но тогда у пользователя пропадает возможность создавать директории

smkdir: unable to lstat(2) parent directory '/user': No such file or directory

Права для теста установлены 777

Но это работало - предыдущий сервер был на старой убунте (12.04), но благополучно сдох - там это работало

Сейчас имеем ubuntu 16.04.04

Include /etc/proftpd/modules.conf

UseIPv6                         off
IdentLookups                    off

ServerName "XXXXXXXX"
ServerType standalone
DeferWelcome                    off

MultilineRFC2228 on
DefaultServer                   on
ShowSymlinks                    on

TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200

DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l -U"

DenyFilter                      \*.*/

DefaultRoot                     ~

RequireValidShell               off

Port                            21
MaxClientsPerUser 3
MaxClientsPerHost 3
TimesGMT off
SetEnv TZ :/etc/localtime

#<IfModule mod_vroot.c>
#    VRootEngine on
#    VRootServerRoot /
#    DefaultRoot ~
#    VRootOptions allowSymlinks
#    VRootLog /var/log/proftpd/vroot.log
#</IfModule>

<IfModule mod_exec.c>
    ExecEngine on
    ExecLog /var/log/proftpd/proftpd_exec.log
    ExecOnCommand APPE,STOR /usr/bin/php -f /usr/local/Script/test.php file=%f user=%u
</IfModule>

<IfModule mod_dynmasq.c>
</IfModule>

MaxInstances 30

User                            root
Group                           root

Umask 002 002
AllowOverwrite                  on
AllowStoreRestart               on

TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log

<IfModule mod_quotatab.c>
    QuotaEngine off
</IfModule>

<IfModule mod_ratio.c>
    Ratios off
</IfModule>

<IfModule mod_cap.c>
    CapabilitiesSet +CAP_CHOWN
</IfModule>

<IfModule mod_facts.c>
    FactsAdvertise off
</IfModule>

<IfModule mod_delay.c>
    DelayEngine on
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine        off
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
    AdminControlsEngine off
</IfModule>

<IfModule mod_lang.c>
LangPath /usr/share/locale
LangEngine on
UseEncoding UTF-8 CP1251
</IfModule>

<Global>
DefaultTransferMode binary
SQLConnectInfo          proftpd@localhost proftpd XXXXXXXXXX 
SQLAuthTypes            Crypt Backend
SQLUserInfo             users userid passwd uid gid homedir shell
SQLGroupInfo            groups groupid gid members
SQLAuthenticate         users groups
SQLLogFile              /var/log/proftpd/sql.log
SQLLog                  PASS logincount
SQLNamedQuery           logincount UPDATE "login_count=login_count+1 WHERE userid='%u'" users
SQLLog                  PASS lastlogin
SQLNamedQuery           lastlogin UPDATE "last_login=now() WHERE userid='%u'" users
SQLLog RETR             dlbytescount
SQLNamedQuery           dlbytescount UPDATE "dl_bytes=dl_bytes+%b WHERE userid='%u'" users
SQLLog RETR             dlcount
SQLNamedQuery           dlcount UPDATE "dl_count=dl_count+1 WHERE userid='%u'" users
SQLLog STOR             ulbytescount
SQLNamedQuery           ulbytescount UPDATE "ul_bytes=ul_bytes+%b WHERE userid='%u'" users
SQLLog STOR             ulcount
SQLNamedQuery           ulcount UPDATE "ul_count=ul_count+1 WHERE userid='%u'" users
SQLUserWhereClause      "disabled!=1"
SQLMinID 32
RootLogin off
AuthAliasOnly off
UseFtpUsers off
LoginPasswordPrompt off
</Global>

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7882
  • Eternally
    • Просмотр профиля
Re: Proftpd + mod_exec + mod_vroot
« Ответ #1 : 05 Октября 2018, 00:18:38 »
sftp + /etc/profile - обрабатывайте всё, что угодно.

Пользователь добавил сообщение 05 Октября 2018, 00:22:28:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 05 Октября 2018, 00:24:06 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн kobaltd

  • Автор темы
  • Активист
  • *
  • Сообщений: 273
    • Просмотр профиля
Re: Proftpd + mod_exec + mod_vroot
« Ответ #2 : 05 Октября 2018, 00:22:59 »
sftp + /etc/profile - обрабатывайте всё, что угодно.

Если б все было так просто. НАДО FTP - во многих "публичных" местах страны (гостиницы, стадионы и т.д.) открыты только стандартные порты в число которых SSH/SFTP не входит. + есть одно ПО, дорого в котором клиент FTP, а не SFTP
« Последнее редактирование: 05 Октября 2018, 00:27:55 от kobaltd »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7882
  • Eternally
    • Просмотр профиля
Re: Proftpd + mod_exec + mod_vroot
« Ответ #3 : 05 Октября 2018, 00:25:21 »
гостиницы, стадионы и т.д.
вообще не понял  :idiot2: Вам на стадион по фтп закачать надо?
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн kobaltd

  • Автор темы
  • Активист
  • *
  • Сообщений: 273
    • Просмотр профиля
Re: Proftpd + mod_exec + mod_vroot
« Ответ #4 : 05 Октября 2018, 00:30:11 »
Нет люди с разных концов страны во время проведения соревнований (со стадионов), после соревнований (из гостиниц) должны скачивать и заливать много (гигабайты) инфы. Да и вообще мы обсуждаем выбор технологии или конкретное решение. Не знаете решения не разводите пустой треп.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7882
  • Eternally
    • Просмотр профиля
Re: Proftpd + mod_exec + mod_vroot
« Ответ #5 : 05 Октября 2018, 00:32:10 »
kobaltd, http(s). Не выдумывайте лишнего.
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн kobaltd

  • Автор темы
  • Активист
  • *
  • Сообщений: 273
    • Просмотр профиля
Re: Proftpd + mod_exec + mod_vroot
« Ответ #6 : 05 Октября 2018, 00:39:09 »
kobaltd, http(s). Не выдумывайте лишнего.
Хватит тут стоить из себя - данное решение сложилось давно, больше 10 лет назад. Вы предлагаете перенастраивать/переучивать пару тысяч людей?
Есть одно ПО (6000 евро за копию, импортное), которое может общаться только по FTP - предлагаете его тоже переписывать? или создавать новое?

Ваши ответы из серии: "как накачать колеса в машине?" - "Ты что тупой - метро, автобус все твое".

Есть конкретный вопрос - знаете ответ подскажите, не знаете не надо давать людям советы из серии "я умне всех, а вы лохи не то делаете" :(

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7882
  • Eternally
    • Просмотр профиля
Re: Proftpd + mod_exec + mod_vroot
« Ответ #7 : 05 Октября 2018, 00:49:49 »
Это ваши запросы из серии "почему я не могу накачать шины, я ведь купил их десять лет назад".
Конкретный вам ответ: FTP устарел и небезопасен.

А с вашим ПО (за 6000 евро) должны разбираться создатели ПО, а не рядовые пользователи Ubuntu. Которые про ваше ПО ни слухом, ни духом не слышали.
« Последнее редактирование: 05 Октября 2018, 00:52:24 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн kobaltd

  • Автор темы
  • Активист
  • *
  • Сообщений: 273
    • Просмотр профиля
Re: Proftpd + mod_exec + mod_vroot
« Ответ #8 : 05 Октября 2018, 00:58:00 »
Это ваши запросы из серии "почему я не могу накачать шины, я ведь купил их десять лет назад".
Конкретный вам ответ: FTP устарел и небезопасен.

Т.е. Вы хотите сказать что так как "FTP устарел и небезопасен" то ему не надо работать?
Если у меня все с настройками правильно - это "баг", а Вы взяли и решили этот "баг" - обозвали "устаревшей технологией" и "баг превратился в фичу" - браво. :2funny: :2funny: :2funny: :2funny: :2funny:


А с вашим ПО (за 6000 евро) должны разбираться создатели ПО, а не рядовые пользователи Ubuntu. Которые про ваше ПО ни слухом, ни духом не слышали.

А причем тут ПО - Оно есть, просто есть и работает. Просто Ваша логика умоляет - т.к. я не могу/не хочу/не знаю FTP все сразу должны кинуться и подстраивать под меня "волшебного"? круто :2funny: :2funny: :2funny: :2funny: И для справки это не мое ПО, этим ПО как раз пользуется часть из этих людей, для которых должен работать данный FTP сервер.
« Последнее редактирование: 05 Октября 2018, 01:03:36 от kobaltd »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7882
  • Eternally
    • Просмотр профиля
Re: Proftpd + mod_exec + mod_vroot
« Ответ #9 : 05 Октября 2018, 01:12:01 »
А причем тут ПО - Оно есть, просто есть и работает.
Логика в том, что ваше ПО из 100% пользователей видел 0,0...1%

FTP все сразу должны кинуться и подстраивать под меня "волшебного"?
ознакомьтесь, для начала, а потом уже ставьте клеймо.
https://ru.wikipedia.org/wiki/FTP
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 05 Октября 2018, 01:13:40 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн kobaltd

  • Автор темы
  • Активист
  • *
  • Сообщений: 273
    • Просмотр профиля
Re: Proftpd + mod_exec + mod_vroot
« Ответ #10 : 05 Октября 2018, 01:26:30 »
Логика в том, что ваше ПО из 100% пользователей видел 0,0...1%
Нет порядка 8-9% из тех для кого этот FTP сервер.

ознакомьтесь, для начала, а потом уже ставьте клеймо.
https://ru.wikipedia.org/wiki/FTP

Я не спорю что FTP устарел, уязвим, "не феншуй" и т.д. Я говорю про другое - без разницы устарел/не устарел - он должен работать в рамках заложенных в него возможностей, он не машина "если древний, то заржавел и на помойку". XP и 95 маздаи тоже устарели, уязвимы и т.д., однако продолжают успешно работать даже сегодня.

Устаревание и уязвимость технологи не повод от нее отказываться, если это устаревание и уязвимость не играют особой роли. А в моем случаи, в связи с исторически сложившемся обстоятельствами и экономической целесообразностью, просто нет выбора - ДОЛЖЕН ИСПОЛЬЗОВАТЬСЯ FTP сервер, с функционалом choot и mod_exec - и он работал на предыдущем сервре, но сервер благополучно сдох, а на новом сервере (новая версия убуты и т.д.) не хочет с таким же функционалом. 
« Последнее редактирование: 05 Октября 2018, 01:32:11 от kobaltd »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28512
    • Просмотр профиля
Re: Proftpd + mod_exec + mod_vroot
« Ответ #11 : 05 Октября 2018, 01:49:29 »
должны скачивать и заливать много (гигабайты) инфы.
Цитировать
вообще мы обсуждаем выбор технологии или конкретное решение
При такой постановке вопроса надо обсуждать именно технологии, а не конкретное ущербное решение.
Но учитывая отношение ТС к людям, пытающимся помочь, желания помогать не возникает.

Пользователь добавил сообщение 05 Октября 2018, 01:51:44:
он должен работать в рамках заложенных в него возможностей
Так он и работает в этих рамках.
Вот только в "эти рамки" не укладываются "стадионы, гостиницы и аэропорты".
Потому что FTP  в принципе не создавался как протокол, способный преодолевать NAT.
« Последнее редактирование: 05 Октября 2018, 01:51:44 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн kobaltd

  • Автор темы
  • Активист
  • *
  • Сообщений: 273
    • Просмотр профиля
Re: Proftpd + mod_exec + mod_vroot
« Ответ #12 : 05 Октября 2018, 02:11:43 »
При такой постановке вопроса надо обсуждать именно технологии, а не конкретное ущербное решение.
Но учитывая отношение ТС к людям, пытающимся помочь, желания помогать не возникает.
Если бы прочитали ветку то поняли
1) ТЕХНОЛОГИЯ НЕ ОБСУЖДАЕТСЯ - никто не будет переписывать ПО, которое использует протокол FTP на который завязаны ВСЕ СЕРВИСЫ КОМПАНИИ которое выпускает это ПО, как следствие использование чего либо другово просто не возможно.
2) Помощь - это ответы на поставленные вопросы, а не попытка уйти от них сменив поход - я же не спрашивал как сделать доступ людям для ......, а спрашивал ПОЧЕМУ НЕ РАБОТАЕТ.

Так он и работает в этих рамках.
НЕ РАБОТАЕТ - mod_exec, по мануалу не работает с chroot? для этого того чтобы заработал нужен mod_vroot, с mod_vroot, работает, однако перестает частично работать сам функционал FTP - в частности перестают создаваться директории. Так что НЕ РАБОТАЕТ.


Вот только в "эти рамки" не укладываются "стадионы, гостиницы и аэропорты".
Потому что FTP  в принципе не создавался как протокол, способный преодолевать NAT.

Разницу между Пассивным и Активным режимом FTP знаете? что такое ip_nat_ftp, ip_conntrack_ftp знаете? Может и не создавался, но работает и прекрасно.


З.Ы. Почему столько умных людей вместо того чтобы ответь на один вопрос - почему не работает, придумывают решения которые не подходят и считаю что, тот кто спрашивает, не знает их и не разбирается. А когда им говорят что это не подходит и надо именно так и никак иначе решить этот вопрос - обижаются и встают в "позу". Если не знаете ответа не пишите, а пытаться "тыкать меня носом в то что я и без Вас знаю" не надо - не тупее, можно было бы решил по другому, решил бы.
« Последнее редактирование: 05 Октября 2018, 02:19:29 от kobaltd »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7882
  • Eternally
    • Просмотр профиля
Re: Proftpd + mod_exec + mod_vroot
« Ответ #13 : 05 Октября 2018, 03:10:42 »
Если не знаете ответа не пишите, а пытаться "тыкать меня носом в то что я и без Вас знаю" не надо - не тупее, можно было бы решил по другому, решил бы.

Давайте решим:

1) каждый пользователь должен подключаться в свою директорию
chroot # не команда, а параметр ftpd
2) при закачке пользователем файла он должен быть обработан скриптом
inotify # обрабатывает события файловой системы
3) пользователей много
не имеет смысла. Обработка происходит в реальном времени. Хватит ли у вас мощности на "стадион"?
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн kobaltd

  • Автор темы
  • Активист
  • *
  • Сообщений: 273
    • Просмотр профиля
Re: Proftpd + mod_exec + mod_vroot
« Ответ #14 : 05 Октября 2018, 13:50:14 »
chroot # не команда, а параметр ftpd
А я другое утверждал?

inotify # обрабатывает события файловой системы
А Вы считаете что сервер занимается только работай с FTP? не слишком ли вешать обработку на события файловой системы, только для того чтобы отловить запить данных через FTP? тем более что у ProFTPD для этого есть функционал - называется mod_exec который как раз для этого и сделан?

не имеет смысла. Обработка происходит в реальном времени. Хватит ли у вас мощности на "стадион"?
# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                56
On-line CPU(s) list:   0-55
Thread(s) per core:    2
Core(s) per socket:    14
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 79
Model name:            Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz
Stepping:              1
CPU MHz:               3199.929
CPU max MHz:           3500.0000
CPU min MHz:           1200.0000
BogoMIPS:              5201.87
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              35840K
NUMA node0 CPU(s):     0-13,28-41
NUMA node1 CPU(s):     14-27,42-55
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb invpcid_single intel_pt ibrs ibpb stibp kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdseed adx smap xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts

~# cat /proc/meminfo
MemTotal:       32824040 kB
MemFree:         7350092 kB
MemAvailable:   25917772 kB
Buffers:          283300 kB
Cached:         18662204 kB
SwapCached:        69060 kB
Active:         13798188 kB
Inactive:       10329700 kB
Active(anon):    4513708 kB
Inactive(anon):  1047508 kB
Active(file):    9284480 kB
Inactive(file):  9282192 kB
Unevictable:       22244 kB
Mlocked:           22128 kB
SwapTotal:       4194300 kB
SwapFree:        3329864 kB
Dirty:             62672 kB
Writeback:            32 kB
AnonPages:       5142428 kB
Mapped:           124352 kB
Shmem:            367472 kB
Slab:             734852 kB
SReclaimable:     433480 kB
SUnreclaim:       301372 kB
KernelStack:       14976 kB
PageTables:        41860 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    20475248 kB
Committed_AS:   12051748 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
HardwareCorrupted:     0 kB
AnonHugePages:    149504 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:     128
HugePages_Free:       68
HugePages_Rsvd:       39
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      299980 kB
DirectMap2M:    16361472 kB
DirectMap1G:    18874368 kB

+ Xyratex f5412e с 3 полками расширения, т.е. 48 шпинделей

я думаю с головой хватит.

Вы опять не помогаете РЕШИТЬ проблему некорректной работы mod_vroot для proftpd, а пытаетесь УЙТИ от проблемы. Решить это значит подсказать где косяк у меня с конфигурацией (если он есть), или допустим "в последнем обновлении косяк в коде модуля. Вот тут заплатка или надо откатить версию или наоборот перейти на 18.04", даже тупо "я попробовал - у меня работает я настраивал так и так и версия у меня такая" или на оборот "я попробовал - у меня такие же проблемы" или "попробуйте вот такой ХХХХХ ftp server, у него такой же функционал - авторизация по mysql, chroot для пользователей, аналог mod_exec" и т.д. Эта связка (Proftpd+mod_exec+mod_vroot) прекрасно работала в Ubuntu 12.04, но "железо не вечно", а в Ubuntu 16.04 не работает - ВОТ В ЧЕМ ПРОБЛЕМА.



ВСЕ "профи" проблемам решена. После изучения исходников кода mod_vroot было выявлено что в коде версии 0.9.2 которая устанавливается в 16.04.04 для ProFTPD Version: 1.3.5a не корректная обработка в функции vroot_fsio_mkdir при проверки наличия "маскируемого пути" при наличии пути прописанного в VRootServerRoot в конфиге. Правка и сборка помогли. Так же если попробовать более новую версию модуля - проблема тоже исчезает.

З.Ы. Баг надо решать, а не бегать от него по другим технологиям.
« Последнее редактирование: 05 Октября 2018, 16:55:37 от kobaltd »

 

Страница сгенерирована за 0.023 секунд. Запросов: 21.