Proftpd для тех кому некогда | Proftpd

Набросаю рецепт быстрой конфигурации proftpd для тех кому нужен ftp сервер за пять минут.

Добавить пользователя (просто системного, в качестве шела – /usr/sbin/nologin)

Поправить конфиг:

ServerName			"ftp.server.ru"
ServerType			standalone
ServerIdent			 off  "FTP Server ready."
#DefaultServer			on
AllowStoreRestart		on
Port				21
Umask				002
MaxInstances			160
MaxClientsPerHost		15 "Sorry, you may not connect more then 15 time"
User				nobody
Group				nogroup
DefaultServer			off
#SocketBindTight		on
DefaultAddress			19.12.15.11
#MaxConnectionRate		16

<IfModule mod_tls.c>
TLSProtocol SSLv23.
</IfModule>

<Directory />
  AllowOverwrite	on
</Directory>


PersistentPasswd	off
DenyFilter	\*.*/


UseReverseDNS	off
DeferWelcome	off
TransferLog	/var/log/proftpd/xferlog.legacy
LogFormat	default "%h %l %u %t \"%r\" %s %b"
LogFormat	auth    "%v %h %t \"%r\" %s"
LogFormat	write   "%h %l %u %t \"%r\" %s %b"
DefaultRoot	/usr/local/ftp
 
<Limit LOGIN>
    Order allow,deny
     DenyAll
</Limit>

<Limit SITE_CHGRP SITE_CHMOD>
   Order deny,allow
   AllowUser zakachka
</Limit>

PathDenyFilter "(^\.ftpaccess$)"
RequireValidShell	no
ServerAdmin	support@mcnet.ru

<Limit WRITE>
    DenyAll
</Limit>

<Global>
AllowOverwrite		on
IdentLookups		off
TimesGMT		off
IdentLookups		off
TimesGMT off
AllowForeignAddress	on
AllowOverride		off
ExtendedLog		/var/log/proftpd/access.log WRITE,READ write
ExtendedLog		/var/log/proftpd/auth.log AUTH auth
</Global>

<VirtualHost 19.12.15.14>
 ServerAdmin		admin@server.ru
 ServerName		"ftp.server.ru"
 ServerIdent		on  "FTP Server ready."
 MaxLoginAttempts	3
 RequireValidShell	no
 TransferLog		/var/log/proftpd/xferlog.log
 MaxClients		25
 DefaultServer		on
 DefaultRoot		/ftp
 AllowOverwrite		yes
 TimeoutLogin		120
 TimeoutIdle		600
 TimeoutNoTransfer	900
 AllowRetrieveRestart	on
 AllowStoreRestart	on
 DeferWelcome		on
 DirFakeGroup		on ~
 DirFakeUser		on ~
 AccessDenyMsg		"Please mail to support@server.ru"
 RootLogin		off

#TransferRate APPE,RETR,STOR,STOU 0
#tcpNoDelay on
#TimeoutIdle 600
#UseIPv6 off
#UseSendfile on
#DelayEngine on
#SocketOptions maxseg 500 sndbuf 16384 rcvbuf 16384


<Limit LOGIN>
    Order allow,deny
      AllowUser your-user-name
      DenyAll
   </Limit>


<Limit SITE_CHGRP SITE_CHMOD>
   Order deny,allow
   AllowUser your-user-name
   DenyAll
</Limit>

<Directory /ftp/users-dir>
	<Limit WRITE>
		Order allow,deny
		AllowUser your-user-name
		DenyAll
	</Limit>
</Directory>
</VirtualHost>

Поправить права на папки к которым даем доступ – владелец и группа позволяют более менее гибко настраивать доступ.

Проверить что порты не блокируются фаерволлом.

По дефолту у нас ftp в пассвном режиме. В тотал коммандере ставим галочку – passv (поведение как у браузера).

Некоторые директивы у дефолтного и у виртуального могут перекрываться – смотрим вывод ошибок (в /var/messages) если не запустился.