一、(1)首先安装vsftpd
yum install -y vsftpd
(2)安装完vsftpd后启动vsftpd服务
/etc/init.d/vsftpd start
(这时启动的时候可能会失败,原因是上面我们pure-ftpd已经占用了21端口,ftp服务使用的都是21端口,所以这时候出现冲突,这时候vsftpd服务自然无法启动起来;这时我们就得先把pure-ftpd先kill掉,再次启动就可以了)
(3)切换到客户端直接用系统用户登录
lftp (www是创建的一个用户)
(这时候登录的你会发现在ftp里可以自由的切换目录,甚至etc啊tmp啊等等目录下的内容你都能看到并下载,这是个很危险的情况,所以我们要禁止用户切换到其它目录下去,也就是要把用户限制到某个目录下)
(4)将用户限制到某个目录下:
修改配置文件: vim /etc/vsftpd/vsftpd.conf
在配置文件中找到: chroot_local_user=YES 这一行,将其前面的注释去掉即可,然后再去客户端测试是否还能切换目录操作。
(5)生成一个虚拟的用户来操作ftp(正常我们配置ftp一般是不能用系统用户来使用的,要不然都知道你系统用户了那都可以通过sshd来登录系统了,这也是一个安全隐患,所以我们需要配置一个虚拟用户来操作)
二、1、创建一个虚拟用户对应的那个系统用户:useradd virftp -s /sbin/nologin
2、创建一个虚拟用户存放用户名密码的文件:vim /etc/vsftpd/vsftpd_login
写入内容:
test1
111222aaa
test2
aaa111bbb
然后更改其权限:chmod 600 /etc/vsftpd/vsftpd_login
3、将vsftpd_login这个文件生成一个vsftpd这个服务能识别的一个二进制的库文件:
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
4、创建虚拟用户:
(1)创建一个虚拟用户配置文件存放的一个目录: mkdir /etc/vsftpd/vsftpd_user_conf
(2)进入到这个目录下进行配置文件的创建: cd /etc/vsftpd/vsftpd_user_conf
(3)创建一个跟第2步配置文件中用户名同名的一个配置文件: vim test1
写入内容: local_root=/home/virftp/test1
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
(4)既然在上面配置文件中我们有限制test1的家目录到/home/vsftpd/test1下,我们自然要去创建这个目录:
mkdir /home/virftp/test1
然后更改其属主以及属组为我们的系统用户:
chown -R virftp:virftp /home/virftp/test1
(5)编辑认证相关的一个配置文件:(告诉配置文件你得用哪种方式去认证,要不然会用系统默认的用户名和密码,
现在我们要用虚拟用户的来认证,这时候就需要告诉配置文件他的这些密码库文件这些在哪里,要去用它)
vim /etc/pam.d/vsftpd
添加两行信息即可:
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
保存之前我们要先去确认下/lib/security/pam_userdb.so这个文件存在不存在
(因为这个关系到系统是32位还是64位的问题,32位的系统是存放在上面所说的路径下的,但是如果是64位操作系统的话
是存放在/lib64/security/pam_userdb.so里的) 可以用uname -a查看系统是多少位的操作系统
(6)编辑vsftpd的配置文件: vim /etc/vsftpd/vsftpd.conf
(将一些关于匿名用户信息行的选项打开并将其改成NO;注:local_enable=YES这一行就是默认的YES别去改)
并在配置文件最底下添加一些配置信息:
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
(7)重启vsftpd服务: /etc/init.d/vsftpd restart
5、接下来就是登陆测试了
(1)可以在本服务器上进行测试:
lftp test1@127.0.0.1