【centos7-Proftpd服务】

centos7-Proftpd服务

它是什么?它为什么来?它有什么用?它是如何实现的?

一个ftp服务程序, 和vsftpd一样,主要是针对wu-ftp(没用过)应用程序的一些缺点进行改进后开发的软件,它有以下特点:
1.高定制化(有许多参数可以设置,具体可百度)
2.配置比较简单(下文有具体提到)
3.可以配合md5模块使用
4.目录访问权限配置灵活,配置简单
5.能够不依赖系统用户,可以使用独立的虚拟用户系统(使用过Serv-U的朋友应该深有体会,配置非常方便,对原有系统环境影响较小)
6.对中文的支持良好,vsftpd有个比较严重的bug,对中文中一些字符的支持不是很好(目前只碰到对中文的双引号支持不是很好

软件安装方式

  • yum仓库安装
yum -y install proftpd proftpd-utlis

注意:通过yum仓库安装与通过源码安装的proftpd,它们各自所生成的配置文件有许多区别

  • 源码安装(推荐,因为网上可参考文件多)
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.9rc2.tar.gz #安装1.3.9rc2最新版

下载之后,tar解压到想要的目录,接着配置./config 编译make 安装make install三部曲

tar -xzvf proftpd-1.3.9rc2.tar.gz
cd proftpd-1.3.9rc2
./configure --enable-nls --prefix=/usr/local/proftpd #(其中nls是mod_lang,文档:http://www.proftpd.org/docs/modules/mod_lang.html )
make
make install

客户端登录模式及相关配置

proftpd有两种用户登录模式:1.匿名登录 2.虚拟用户登录

  1. 匿名登录(不建议使用,生产环境中很少这么搞)
    基本不用配置,但是可能需要留意一下RequireValidshell参数

  2. 虚拟用户登录

    1、先用ftpasswd命令生成虚拟用户和用户组
    
/usr/local/proftpd/bin/ftpasswd --passwd --uid=2001 --gid=201 --home=/home/shawn --shell=/sbin/nologin --file=/usr/local/proftpd/etc/ftpd.passwd --name=shawn
 
#name是登陆ftp的用户名 file是密码文件位置  home是ftp用户的根目录
 
/usr/local/proftpd/bin/ftpasswd --group --file=/usr/local/proftpd/etc/ftp.group --gid=101 --name=ftpuser --member=shawn
#创建用户组,生成配置文件 member将创建的用户添加到用户组中
  2、接着修改配置文件
# 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			"ProFTPD Default Installation"
ServerType			standalone
DefaultServer			on

# Port 21 is the standard FTP port.
Port				21

# Don't 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				000

# 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			30

# Set the user and group under which the server will run.
User				nobody  #启动时所使用的用户和组
Group				nobody  #组一定要存在

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~ #chroot机制

# Normally, we want files to be overwriteable.
AllowOverwrite		on

# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
  AllowAll
</Limit>

PassivePorts 50000 65534 #被动模式监听端口

#UseReverseDNS off

AuthOrder mod_auth_file.c #认证模块
AuthUserFile /usr/local/proftpd/etc/ftpd.passwd #认证模块
RequireValidShell off #虚拟用户必须配置这一条参数
#<Limit Login>
#	AllowAll
#</Limit>
<Directory /home/shawn>  #目录权限设置
	<Limit ALL>
		AllowAll
	</Limit>
</Directory>
# A basic anonymous configuration, no upload directories.  If you do not
# want anonymous users, simply delete this entire <Anonymous> section.
# <Anonymous ~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>
# </Anonymous>
3、启动软件
/usr/local/proftpd/sbin/proftpd         #启动服务
ps -ef | grep proftpd              #检查服务进程是否启动

需要注意的地方

  1. 配置文件中应当尽可能指定被动模式,并且防火墙开放相应端口
  2. 如果是公网环境向外提供服务,需要注意:客户端与服务器通过21命令端口连接后,客户端发送PASV请求,已告知服务器使用被动模式。服务器响应客户端PASV请求时,会把服务器地址和端口封装在ftp应用层协议里,如果配置文件中没有配置“Address 公网ip” 参数,则服务器可能封装私有ip,导致数据端口无法连接,进而发生异常。
  3. 虚拟用户登录后,并不会像vsftpd一样,映射到一个本地用户上
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值