Linux学习(六):proftpd搭建,完美解决vsftpd中文引号bug

一、proftpd简介:

        proftpd软件和vsftpd一样是一个开放源代码的ftp服务器软件,但是可配置项比vsftpd要多,是目前比较流行的ftp软件,proftpd的配置和apache的配置相似,因此该软件也十分容易配置和管理。

        proftpd的全称是Professional FTP daemon,是针对Wu-FTP的弱项而开发的,软件在经过多年的发展之后完善了很多功能,ProFTP已经成为继Wu-FTP之后最为流行的FTP服务器软件,越来越多的站点选用它构筑安全高效的FTP站点。

        个人觉得该软件比较好用的功能有一下几点:

        1)目录访问权限配置灵活,配置简单。

        2)能够不依赖系统用户,可以使用独立的虚拟用户系统(使用过Serv-U的朋友应该深有体会,配置非常方便,对原有系统环境影响较小)

        3)对中文的支持良好,上篇博客写道vsftpd有个比较严重的bug,对中文中一些字符的支持不是很好(目前只碰到对中文的双引号支持不是很好)。

二、软件下载安装配与配置

        1、软件下载

        我使用的安装方式为源码安装,从http://www.proftpd.org/网站中能够下载到profptd源码,点击左侧的gz能够下载到最新的proftpd源码。ftp://ftp.proftpd.org/distrib/source/这个是软件源码ftp地址,在这个地址中能够下载到想要的软件的各个版本。

        2、软件安装

        将软件下载完成后放到linux系统下的某个目录中,使用root账户登录系统,进入的该软件目录下,输入如下命令进行安装:

tar -zxvf proftpd-1.3.6.tar.gz  #将源码压缩包解压到当前目录中
cd proftpd-1.3.6/               #进入到解压目录中
./configure --enable-nls --prefix=/usr/local/proftpd #(其中nls是mod_lang,文档:http://www.proftpd.org/docs/modules/mod_lang.html )
make
make install

        上面的源码编译安装过程成功完成后,在/usr/local/proftpd的目录下会生成配置文件目录以及相应服务的二进制可执行文件。

       3)软件配置

        我倾向于使用虚拟用户的方式,创建独立的用户密码文件,这样相对安全些,下面是创建虚拟用户的命令:

/usr/local/proftpd/bin/ftpasswd --passwd --uid=1001 --gid=101 --home=/home/shareroot --shell=/sbin/nologin --file=/usr/local/proftpd/etc/ftpd.passwd --name=proftptest

#name是登陆ftp的用户名 file是密码文件位置  home是ftp用户的根目录

/usr/local/proftpd/bin/ftpasswd --group --file=/usr/local/proftpd/etc/ftp.group --gid=101 --name=ftpman --member=proftptest
#创建用户组,生成配置文件 member将创建的用户添加到用户组中

       在网上找了下没有看到完整的配置文件,下面我贴出我proftpd的完整的配置文件

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

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

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

TimeoutLogin 120
TimeoutNoTransfer    900 
AllowStoreRestart       on     
 #允许断点续上传 
AllowRetrieveRestart    on      
#允许断点续下载
PassivePorts 50000 65534        
#指定数据端口的范围 
UseReverseDNS        off   
#关闭DNS反向查询,节省连接时间
TransferLog          /var/spool/syslog/proftpd/xferlog.legacy  
#数据传输记录
# Bar use of SITE CHMOD by default
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /usr/local/proftpd/etc/ftpd.passwd
AuthGroupFile /usr/local/proftpd/etc/ftpd.group
MaxClients 100
IdentLookups off
UseReverseDNS off
DeleteAbortedStores on
DirFakeGroup on
DirFakeUser on
DirFakeMode 0600
RequireValidShell off
LangOptions PreferServerEncoding    #在编译时加入 --enable-nls才能用
UseEncoding utf8 gbk                #在编译时加入 --enable-nls才能用

	Order deny,allow
	AllowGroup ftpman


#显示~/welcome.msg中的欢迎信息,可以编辑welcome.msg自己制定欢迎信息 
#       %T 当前的时间 
#       %F 所在硬盘剩下的空间 
#       %C 当前所在的目录 
#       %R:客户的主机名 
#       %U:客户登陆的帐号 
#       %M:允许最大连接数 
#       %N:当前的连接人数 
#       %E:FTP服务器管理员的email 
#       %i:本次上传的文件数量 
#       %o:本次下载的文件数量 

#AllowOverwrite  YES              
#允许文件可以重新写 

#IdentLookups    off      
#查找客户的远程用户名,关掉节省连接时间 

#ExtendedLog     /var/spool/syslog/proftpd/access.log WRITE,READ write 
#以write的日志格式记录READ,WRITE的日志 

#ExtendedLog     /var/spool/syslog/proftpd/auth.log AUTH auth 
#以auth的日志格式记录AUTH的日志 

	
		Order deny,allow
		AllowUser share
	


  AllowAll


# A basic anonymous configuration, no upload directories.  If you do not
# want anonymous users, simply delete this entire  section.

        按照上面的参数配置完成之后,下面开始启动服务

        4)启动服务

cd /usr/local/proftpd/sbin         #进入到服务运行文件目录
./proftpd                          #启动服务

ps -ef | grep proftpd              #检查服务进程是否启动

        好啦,profptd的源码整体部署就是上面这个流程,下一篇介绍源码安装的软件,将service添加到systemctl管理中(CentOS7.*之后的系统中才有这个命令),并做到开机启动。

你可能感兴趣的:(Linux)