说起搭建ftp服务器,在Linux下面基本就是非vsftp莫属了,下面我们来配置vsftpd服务。

首先我们自己先把vsftp包安装上去。然后说明下基本情况。

 

在vsftpd中,用户主要分为三种:user(普通实体用户)guest (虚拟用户)anonymous (匿名用户)

 

通过rpm -ql |grep vsftpd 命令,我们可以查看到vsftpd都装了那些文件,其中

 

vsftpd.conf      vsftpd的主要配置文件,所有的配置都在这里修改

ftpuser   制定不能登入ftp的用户的帐号,一行一个帐号

userlist 这个文件是否生效和vsftpd.conf内的两个参数配置有关,分别是userlist_enable和userlist_deny 如果说/etc/ftpuser是PAM的阻挡访问项目,那userlist则是vsftp自定义的阻挡访问项目,默认情况下,你可以将不允许登录的帐号写入到这里,不过这个文件是否生效,则要看userlist_deny={YES|NO}的设置了。

/etc/vsftpd/chroot_list   默认情况下这个文件是不存在的,必须用户自己创建,文件的主要功能是将用户chroot建立在自己的用户主目录下面,这个文件是否生效要看vsftpd.conf中的chroot_list_enable  和chroot_list_file 的两个参数有关。

/var/sbin/vsftp  vsftp的主程序,只是一个执行程序。

/var/ftp/     匿名用户的主目录。

 

下面来看看vsftpd.conf 配置系统里面的主要的设置参数。

 

1、匿名用户登录的设置

anonymous_enable=YES(NO)                  //是否开启匿名用户登录

anon_world_readable_only=YES(NO)     // 仅允许anonymous具有下载可读文件的权限

anon_other_write_enable=YES(NO)        // 是否允许anonymous具有除了写之外的权限,包括删除和修改服务器的文件及文件名等权限,默认是NO

anon_mkdir_write_enable=YES(NO)       // 是否允许建立目录的权限。

anon_upload_enable=YES(NO)                //匿名用户是否有上传权限,当然NO。

deny_email_enable=YES(NO)                   //将某些特殊的email阻挡不让使用,基本用不到。

no_anon_password=YES(NO)                  // 当设置为YES时,匿名用户将略过密码检查那一步

anon_max_rate=0                                       // 限制匿名用户的传输速度,单位是byte/秒,0则不限制。

anon_umask=077                                        //限制匿名用户上传来的文件的权限,如果是077则权限只有-rw-------,这个选项只有在你开通了匿名用户上传的权限之后才设置,否则不需要。

 

2、与实体用户有关的设置值

local_enable=YES(NO)                               // 本地用户是否开通ftp登录权限

local_max_rate=0                                        // 同上面一样,设置实体用户的传输速度。

chroot_local_user=YES(NO)                      // 在默认情况下是否要将用户限制在自己的用户主目录之内,实际还是需要下面2个参数互相参考配置的,为了安全性,默认是YES

chroot_list_enable=YES(NO)                     // 是否启用chroot写入列表的功能,与下面的项目有关。

chroot_list_file=/etc/vsftpd/chroot_list        // 写入列表的文件的路径。

userlist_enable=YES(NO)                            //是否借助vsftpd 的阻挡机制来处理某些不欢迎的帐号。与下面的设置有关,视情况而定。

userlist_deny=YES(NO)                                //设置YES后,userlist文件内的帐号将无法登录。

userlist_file=/etc/vsftpd/user_list                   //禁止登录的文件路径

 

3、与服务器环境相关的设置项

connect_from_port_20=YES(NO)                 //是否使开启20端口做主动连接模式

listen_port=21                                                  //vsftpd的监听端口,默认是21端口

message_enable=YES(NO)                          //当用户进入某个目录时,会显示一些提示词,显示内容的文件为.message,可以通过下面的设置来自定义,一般用默认

message_file=.message                               //这个文件放在需要提示的目录的下面,隐藏文件。

use_localtime=YES(NO)                                //是否使用本地时间,默认是使用GMT(格林尼治)时间比本地时间慢8个小时。

write_enable=YES(NO)                                  //开启用户上传数据的权限,实体用户。

connect_timeout=60                                       // 但是为秒,发出信号60秒之后没回应就断掉连接

max_clients=0                                                 // 限制最大客户端连接数,0为不限制

max_per_ip=0                                                 // 限制单个IP的最大连接数,0为不限制

ftp_banner=文字说明                                     // 比如上面的 欢迎使用XX大学FTP资源

 

4、关于系统安全方面的设置

xferlog_enable=YES(NO)                              //开启记录日志功能,主要记录上传和下载动作的。

xferlog_file=/var/log/xferlog                            //日志文件的路径

tcp_wrapers=YES(NO)                                  // 是否支持tcp wrapers默认YES

pam_service_name=vsftpd                           // 这个是PAM模块的名称,放在/etc/pam.d/vsftpd中的就是

 

vsftpd.conf的主要配置内容基本都在上面了,安装好vsftp之后,进入/etc/vsftpd/vsftpd.conf中的参数进行配置,根据自己的需要开启或关闭对应的参数,上面那些可能有一些需要自己添加的,需要添加的自己在最后面添加上去就好了。设置完之后,保存,启动服务,如果没有语法错误的话,服务器是可以正常启动的。然后再通过客户端进行测试验证。

 

 

测试的时候记得关掉selinux和iptables,以免出现不必要的问题。