Недавно появилась необходимость в 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 |
У меня получилось, а у ВАС? 😉
Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:
Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)
Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455
На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел