这应该是非常著名的一个ftp软件了,废话不多,直接上步骤:
1、安装vftpd,加-y是因为出现提示默认直接按Y。
yum -y install vsftpd
2、查看状态,默认是关闭的
service vsftpd status
3、开启vsftpd服务
service vsftpd start
4、设置为开机启动
chkconfig vsftpd on
5、进行相关配置,配置修改在/etc/vsftpd/vsftpd.conf里面,还是先备份这个文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup
vim /etc/vsftpd/vsftpd.conf
只需要修改如下几个就好了,如有其他需要自定义就好
anonymous_enable=NO (不允许匿名登陆)local_umask=022 (FTP上本地的文件权限,默认是022)
ftpd_banner=XXXXX (欢迎信息)
listen=NO (独立的VSFTPD服务器,这里我设置成NO为了避免端口被占用等问题导致vsftpd无法打开)
anon_upload_enable=NO ( 不开放匿名上传权限)
anon_mkdir_write_enable=yes (不开放匿名新建文件夹权限)
local_enble=yes (本地帐户能够登陆)
write_enable=yes (开放本地用户写的权限)
//接下来是关于ftp用户的相关配置,根据我自己尝试总结出来的
//首先是利用当前目录下的ftpusers文件和user_list文件来设置可以使用FTP的账户,因为在Centos下系统用户和FTP用户是用相同的方式增加的,一般来说FTP用户不能登录 //系统,但是能不能还是看自己的设置。ftpusers这个文件里面默认是不允许登录FTP的用户列表,一个用户名一行,里面已经预先设定了一些系统用户;user_list里面是可以 //登录FTP的用户列表,前提是你得启用这个文件,下面会说到。另外,当前目录下并没有chroot_list这个文件,这是要手动建立的,这个文件主要是限制用户能不能切换到别 //的目录,要通过相应的设置来生效。
//下面的设置是配置启用user_list文件并且只有该文件中的用户才可以登录FTP
userlist_enable=YES(启用user_list文件)
userlist_deny=NO(user_list中列出的帐户不阻止登录,换言之就是可以登录,而且只有文件中的用户才可以登录)
//下面的设置是配置启用chroot_list文件并且设置该文件中的用户可以切换到其他目录
chroot_list_enable=yes (启用chroot_list文件)
chroot_local_user=yes (chroot_list中列出的帐户可以切换到其他目录,其他的用户不行)
//通过上面的配置,可以知道,先用user_list设置可以登录FTP的用户,再用chrrot_list限制这些用户的切换目录权限,整个过程中ftpusers这个文件就是用来把不想登录FTP的用户扔进去、
//额外的一些配置,知道你在干什么的情况下再去修改
Idle_session_timeout=600(秒) (用户会话空闲后10分钟)
data_connection_timeout=120(秒) (将数据连接空闲2分钟断)
accept_timeout=60(秒) (将客户端空闲1分钟后断)
connect_timeout=60(秒) (中断1分钟后又重新连接)
local_max_rate=50000(bite) (本地用户传输率50K)
anon_max_rate=30000(bite) (匿名用户传输率30K)
pasv_min_port=50000 (将客户端的数据连接端口改在
pasv_max_port=60000 50000—60000之间)
max_clients=200 (FTP的最大连接数)
max_per_ip=4 (每IP的最大连接数)
listen_port=5555 (从5555端口进行数据连接)
ls_recurse_enable=NO (不允许执行 ls命令)
xferlog_enable=yes (激活上传和下载的日志)
xferlog_std_format=yes (使用标准的日志格式)
6、文件配置好了,重启vsftpd服务
service vsftpd restart
7、现在来增加一个用户测试一下
useradd -d /usr/local/apache/htdocs -s /sbin/nologin dev #创建用户 ,-d是指定登录之后的目录,-s是配置账户属性,这里是nologin,不能登录控制台,用户名是dev
passwd dev #设置密码
8、用户添加好了,现在去编辑 user_list ,前面预定义的那些用户可以在前面加个 # 号注释掉(也可以不注释,因为ftpusers的优先级比较高--意味着他里面的用户不能登录FTP,就是不能)加入刚才添加的 dev 账户
9、同理,新建并编辑chroot_list ,加入 dev 账户,加不加看你自己,可以试试配置有没有生效。
10、现在就可以随便打开一个ftp客户端测试了。按道理应该可以了
根据别处的经验,有可能ftp的进程或者端口被SELinux限制了,需要开个后门,就按下面的来,此处不多做赘述。
修改SELinux设置,使vsftp在enforcing security enhance模式下正常运行
本文还有很多没有涉及,比如虚拟用户,用户组,相关用户(组)的权限等等,读者可以自己去查阅学习。
建议阅读文章: