Недавно появилась необходимость в ftp с песочницей. Первое что мне пришло в голову — это был знакомый ProFTPD.

Задача была такого рода: Завести несколько учёток для доступа по фтп с ограничением только в своих папках, остальным как и раньше — по всему серверу.

Итак, инсталим:

# cd /usr/ports/ftp/proftpd/
# make && make install

Конфиг оставил по умолчанию.

После сборки и установки, запустим его таким же образом как и стандартный FTPD демон, то есть через inetd. Для этого закоментируем старые упоминая о ftpd и допишем свою строчку, проверив где лежит proftpd.

# which proftpd
/usr/local/sbin/proftpd

Правим inetd.conf

ftp stream tcp nowait root /usr/local/sbin/proftpd proftpd
#ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
#ftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l
# cat /usr/local/etc/proftpd.conf
.....
#
# For more informations about Proftpd configuration
# look at : 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.
 
ServerName                      "WEB FTPD SERVER"
#ServerType                     standalone
ServerType                      inetd
DefaultServer                   on
ScoreboardFile                  /var/run/proftpd/proftpd.scoreboard
ServerIdent                     off
 
#RootLogin on
 
# Port 21 is the standard FTP port.
Port                            21
 
# Use IPv6 support by default.
UseIPv6                         off
 
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask                           022
 
# 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                    15
 
CommandBufferSize       512
 
# Set the user and group under which the server will run.
User                            nobody
Group                           nogroup
 
MaxClients 15 "Many connect on this server"
MaxClientsPerHost 4 "%m clients connected this server"
MaxLoginAttempts 3 "Many request from connect"
 
#Ogranichenie skorosti, vsem krome root
#TransferRate RETR,STOR,APPE 150 user !root
 
AccessDenyMsg "ATTENTION!!! ALL CONNECTIONS LOGED"
AccessGrantMsg "Now apload/download files"
DisplayGoAway "Go Away"
 
#UseHostsAllowFile /etc/proftpd.allow
#UseHostsDenyFile /etc/proftpd.deny
 
TimeoutIdle 180
TimeoutLogin 180
TimeoutNoTransfer 360
TimeoutStalled 640
 
#DefaultRoot / wheel
 
DefaultRoot /home/webts webts
DefaultRoot /dopHdd/sata8/www webex11
DefaultRoot /home/dima5kilo dima5kilo
 
SyslogLevel notice
UseReverseDNS off
TransferLog /var/log/proftpd-tranfer.log
SystemLog /var/log/proftpd-error.log
 
# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
#DefaultRoot ~
 
# Normally, we want files to be overwriteable.
AllowOverwrite          on
 
# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
  DenyAll
</Limit>

Теперь создаём недостающие файлы.

# touch /var/log/proftpd-error.log
# touch /var/log/proftpd-tranfer.log
# mkdir /var/run/proftpd/ && touch /var/run/proftpd/proftpd.scoreboard

Рестартуем inetd и смотрим логи. Проверяем работоспособность.

# killall -HUP inetd
# tail -f /var/log/proftpd-error.log
# tail -f /var/log/proftpd-tranfer.log
# tail -f /var/log/messages

У меня получилось, а у ВАС? 😉

Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:

http://noted.org.ua/2367


Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)

Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455

На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел

Add your comment now

Please note: JavaScript is required to post comments.