说起搭建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,以免出现不必要的问题。