Не претендую на звание крутого линуксоида.
Всего лишь расскажу о решении типичной задачи.
Необходимо было поднять обычный Apache+MySql+php+ftp сервер.
Иными словами на каждый сайт заводится виртуальный хост апача, и выдается логин-пароль на ftp.
С настройками апача и мускула, проблем не возникло. А вот с FTP сервером пришлось поебаться знатно.
Начался сей романтический вечер с того, что vsftpd поставить не удалось. Не хочу и не могу разбирать причины сего. Зла не хватает. Объектом для танцев с бубном стал proftpd.
Начало простое
Шайтан-машина сама заводит юзверей и запускается.
Добавляем группу для FTP юзверей
Создаем своего юзвера, даем ему доступ к директории с сайтом и запрещаем доступ в шел.
/var/mysite – путь к директории с сайтом
Вместо qazwsx – наш пароль.
Запуск, перезапуск сервера:
До этого момента все гладко.
Далее, обращаем внимание на ./etc/ftpusers
Там НЕ должно быть нашего пользователя mysite. Это список тех юзверей, которых на FTP не пускают.
Идем в /etc/proftpd/proftpd.conf
Когда я говорю «Идем», это означает, идем с помощью:
mc
#apt-get install mc
#mc
И вспоминаем детство и NortonCommander
Либо с помощью редактора vim
#vim в /etc/proftpd/proftpd.conf
В режиме редактирования, по окончанию, тупо набираем:
- :q для выхода
- :wq для сохранения и выхода
Первый подводный камень. Не смотря на настоятельные рекомендации советчегов на форумах поставить его в режиме standalone, делать этого не следует. По крайней мере для задачи такого типа.
И ниипет.
Далее на всевозможных хабрахи форумах идут советы как следует хранить пользователей в мускуле, сертификатах, уборной на потолке. Нам этого не нужно. Proftpd по-умолчанию использует /etc/passwd и /etc/group
На всякий случай.
Можно завести отдельные файлы в таком же формате, используя директивы:
AuthGroupFile /config/ftp.group
Но делать этого не надо.
Самая главная проблема, которая возникла передо мной: ftp сервер категорически отказывался авторизовать существующего пользователя.
Как сообщил мне гугл, не один я страдаю похожей херней.
Однако ответы матерых линуксоидов, звучат примерно так:
https://www.opennet.ru/openforum/vsluhforumID15/2243.html
Равно, как ответы моих друзей той же секты.
Линуксоиды – вы хамствующее снобье. Гореть Вам в аду.
Ответ на данный вопрос:
Кто-то с причудливой фантазией решил не пускать на фтп юзверей, у которых shell = /bin/false. Не положено тебе в шел, будь добр освободи фтп. Логику сего я так и не понял.
Итак. Добавляем директиву.
Вся беда в ней.
Далее, отключаем нах IPv6
Запираем юзера в домашней директории
И отключаем еще одно «чудо», именуемое PAM.
Отключаем не той командой, что написана в мануале (она не работает), а:
Усе. Сохраняемся и рестаруем.
#/etc/init.d/proftpd restart
Если что-то не получилось, текст моего конфига целиком.
#
# /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 off
ServerName «Debian»
ServerType inetd
DefaultServer on
DeferWelcome off
DefaultRoot ~
RequireValidShell off
AuthPAM off
RequireValidShell off
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
<IfModule mod_tls.c>
TLSEngine off
</IfModule>
<IfModule mod_quota.c>
QuotaEngine on
</IfModule>
<IfModule mod_ratio.c>
Ratios on
</IfModule>
# Delay engine reduces impact of the so-called Timing Attack described in
# https://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default.
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
ControlsEngine on
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine on
</IfModule>
Пы.сы. Еще раз:для снобов: гореть Вам в аду. Для тех, кто не понял прикола с мануалами яркий пример: https://www.proftpd.org/localsite/Userguide/linked/x535.html. Попробуй почитай называецо.
https://blog.weltkind.com/ru/secrets/?id=164
Просмотров: 1525
Спасибо!
Помогло.
«Линуксоиды – вы хамствующее снобье. Гореть Вам в аду.
Ответ на данный вопрос:
Кто-то с причудливой фантазией решил не пускать на фтп юзверей, у которых shell = /bin/false. Не положено тебе в шел, будь добр освободи фтп. Логику сего я так и не понял.»
+500!!!!!!!!!!!!!