proftpd 下载http://www.proftpd.org/
./configure --prefix=/usr/local/proftpd/ --sysconfdir=/usr/local/proftpd/etc
make && make install
Starting proftpd: 2020-08-17 16:42:27,286 ton.tom proftpd[29558]: warning: unable to determine IP address of 'ton.tom'
2020-08-17 16:42:27,286 ton.tom proftpd[29558]: error: no valid servers configured
2020-08-17 16:42:27,287 ton.tom proftpd[29558]: fatal: error processing configuration file '/etc/proftpd.conf'
DefaultAddress 192.168.1.131
指定IP地址
详细参考
https://blog.csdn.net/weixin_34186931/article/details/89770070
https://www.cnblogs.com/lixigang/articles/4813758.html
chown pftp:pftp -R /var/ftp/upload 更改目录权限到pftp用户
ServerName:当客户端连接到FTP服务器时,ProFTPd显示在客户端的一些信息。
port:ProFTPd使用的FTP端口。
UseIPv6 on|off:是否支持IPv6。
DefaultRoot 目录 用户|组:限制用户或组登录到FTP服务器后所在的目录,在默认情况下每个用户登录到ProFTPd后,会被引导到该用户的家目录。
RootLogin on|off:是否允许root用户登录,默认是不允许的,安全起见不推荐将此选项设置为on。
ServerIdent on|off:是否屏蔽服务器的版本等相关信息,安全起见推荐将此选项设置为on。
DefaultServer on|off:默认主机,只有在需要配置虚拟主机时需要将该参数配置为off。
IdentLookups on|off:是否开启反向查询客户端的用户名的操作。
UseReverseDNS on|off:是否开启DNS反向查询。
DeleteAbortedStores on|off:是否自动删除未传完的文件。
DirFakeUser on|off:是否显示真实的文件所有者信息。
DirFakeGroup on|off:是否显示真实的文件的拥有组信息。
DirFakeMode on|off:是否显示真实的文件的读写操作信息。
HideNoAccess on|off:是否隐藏没有访问权限的文件。
RequireValidShell on|off:用户是否可以执行shell。
AllowRetrieveRestart on|off:下载时是否允许断点续传。
AllowStoreRestart on|off:上传时是否允许断点续传。
WtmpLog on|off:是否要把FTP记录在日志中。
Umask Umask值:通过ProFTPd上传文件的默认Umask值。
UserAlias 别名 用户名:为用户名指定一个别名。
TransferRate STOR|RETR 速率(Kbytes/s)user|group 用户或组:指定用户或组上传(STOR)或下载(RETR)传输速率,user表示其后指定的是用户,group表示其后指定的是组。
#表示hr组所有用户最大下载速率为50Kbytes/s。
TransferRate RETR 50 group hr
#表示用户user2、user1最大上传速率为100Kbytes/s。
TransferRate STOR 100 user user2,user1
UserRatio 用户 fileratio filequota byteratio bytequota:指定用户上传、下载的比例。fileratio指定以文件为准的比例(该参数一般很少使用,所以通常设置为0),filequota指定可以下载多少文件(设置为0表示不限制),byteratio指定上传、下载比例(该设置一个整数,表示当上传为1时,下载的比例),bytequota可以下载多少KB的数据。
#表示user2上传、下载比率为1:2,最多允许下载100000的数据。
UserRatio user2 0 0 2 100000
#表示user1上传、下载比率为1:1,最多允许下载30000的数据。
UserRatio user1 0 0 1 30000
#表示userN上传、下载比率为2:1,最多允许下载30000 的数据。
UserRatio userN 0 0 -2 30000
GroupRatio 组 fileratio filequota byteratio bytequota:指定一个组的所有用户上传、下载的比例。该参数配置方法与UserRatio相同。
MaxHostsPerUser 数量 [返回信息]:每个用户最多允许来源IP的个数,为了提高FTP用户账号的安全,将此参数配置为1。
MaxClientsPerUser 次数 [返回信息]:每个用户在每个客户端最多可以同时登陆的次数,可以防止多线程软件下载对服务器的破坏。
MaxClientsPerHost数量 [返回信息]:同一个客户端最多允许多少个线程连接到FTP服务器。
MaxClients数量 [返回信息]:指定最大客户端数。
MaxLoginAttempts次数 [返回信息]:指定最大尝试连接次数。
TimeoutIdle 秒数:客户端空闲断开时间设置,默认就是600秒。
TimeoutNoTransfer秒数:客户端数据传输超时设置。
PassivePorts 最小端口 最大端口:被动模式端口范围。
DisplayLogin 文件名:指定记录FTP客户端登录时显示欢迎信息的文件。
DisplayChdir 文件名:指定记录当FTP客户端进入某个目录时显示欢迎信息的文件。
在DisplayLogin、DisplayChdir二个参数所所指定的文件中,可以使用一些ProFTPd预设的变量,通过这些变量可以显示一些更友好的欢迎信息或者提示.
%T(当前时间)
%F(所在硬盘剩下的空间)
%C(当前所在的目录)
%R(客户端的主机名称)
%L(服务器端的主机名称)
%U(用户账户名称)
%M(允许最大连接数)
%N(目前服务器连接数)
%E(FTP服务器管理员的Email)
%i(本次上传的文件数量)
%o(本次下载的文件数量)
%t(本次上传+下载的文件数量)
CMD:Change Working Directory 改变目录
MKD:MaKe Directory 建立目录的权限
RNFR: ReName FRom 更改目录名的权限
DELE:DELEte 删除文件的权限
RMD:ReMove Directory 删除目录的权限
RETR:RETRieve 从服务端下载到客户端的权限
STOR:STORe 从客户端上传到服务端的权限
READ:可读的权限,不包括列目录的权限,相当于RETR,STAT等
WRITE:写文件或者目录的权限,包括MKD和RMD
DIRS:是否允许列目录,相当于LIST,NLST等权限,还是比较实用的
ALL:所有权限
LOGIN:是否允许登陆的权限针对这些设置,又有如下具体的配置:AllowUser 针对某个用户允许的Limit
DenyUser 针对某个用户禁止的Limit
AllowGroup 针对某个用户组允许的Limit
DenyGroup 针对某个用户组禁止的Limit
AllowAll 针对所有用户组允许的Limit
DenyAll 针对所有用户禁止的Limit同时,可以针对单独的用户来限制速度TransferRate STOR|RETR 速度(Kbytes/s) user 使用者
vim /etc/hosts.deny 可以屏蔽指定ip及网段访问proftpd
proftpd:192.168.3.7
proftpd:192.168.1.0/24
vi /etc/proftpd.conf
# Set the user and group under which the server will run.
User pftp
Group pftp
DefaultAddress 192.168.1.131
# 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
UseReverseDNS off #DNS反查
MaxLoginAttempts 3 #最大尝试连接次数
MaxClientsPerHost 2 #每用户线程
MaxClients 20 #最大用户数
DirFakeUser On pftp
DirFakeGroup On pftp
DeferWelcome On
SystemLog /var/log/proftpd.log #日志文件位置
ServerIdent off
#限制pftp组的pftp用户登录时不能切换到其他目录(只能呆在他的home目录)
DefaultRoot /var/ftp/upload pftp,pftp
#设置只允许192.168.0的用户登录
#<limit LOGIN>
#Order allow,deny
#Allow from 192.168.0.
#Deny from all
#</limit>
#设置只允许pftp用户登录,否则系统用户也可以登录ftp
<limit LOGIN>
Order allow,deny
DenyUser !pftp
</limit>
# AllowForeignAddress on #允许FXP
#设置pftp用户在upload的限制
<Directory /var/ftp/upload>
<Limit DELE RNFR RNTO RMD XRMD >
DenyUser pftp
</Limit>
</Directory>
# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
DenyAll
</Limit>
# A basic anonymous configuration, no upload directories. If you do not
# want anonymous users, simply delete this entire <Anonymous> section.
<Anonymous /var/ftp>
User ftp
Group ftp
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# Limit the maximum number of anonymous logins
MaxClients 10
# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayChdir .message
# Limit WRITE everywhere in the anonymous chroot
<Limit WRITE>
DenyAll
</Limit>
<Directory test>
<Limit STOR MKD>
AllowALL
</Limit>
</Directory>
<Directory server>
<Limit STOR MKD WRITE>
AllowALL
</Limit>
</Directory>
<Directory data>
AllowOverwrite no
<Limit CMD>
Deny User admin
</Limit>
<Limit WRITE DELE STC>
DenyUser testO1
</Limit>
Transfer Rate RETR 500 user testO1
Transfer Rate STOR 500 user testO1
</Directory>
</Anonymous>