Недавно появилась необходимость в 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/?p=2367


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

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

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

Add your comment now

You must be logged in to post a comment.