当前位置: 首页 > 工具软件 > Proftpd > 使用案例 >

proftpd 服务器配置

别峻
2023-12-01

编译安装

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>
 类似资料: