ftp的虚拟账号
ftp 简介:
ftp 采用明文的数据传输方式,如果使用本地账户登录
ftp服务器,若该用户的用户名和密码被别人抓包抓到,其他人就可以使用该账号登录ftp服务器,产生不安全的情况可以使用虚拟账号,在ftp服务器上将该虚拟账号映射为本地账号,这样即使账号在网络上被截获,也只是在系统上不存在的账号,无法登录系统.
1.实验步骤:
1.新建挂载点,挂载光盘。
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
[root@localhost ~]# cd /mnt/cdrom/Server
2.安装vsftpd
[root@localhost Server]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm
3. 产生文本文件,用于存放虚拟账号和密码。
[root@localhost Server]# vim /etc/vsftpd/vuser.txt
Test1 //虚拟账号test1
123 //虚拟账号test1的密码
Test2 //虚拟账号test2
123 //虚拟账号test2的密码
4. 安装db_load 工具,使刚刚的账号和密码文件变为数据库文件,该工具位于软件包 db4_util 内
[root@localhost Server]# rpm -ivh db4-utils-4.3.29-10.el5.i386.rpm
5. 使用db-load –help使用帮助。将虚拟账号文件变为数据库文件。
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
6. 当用户登录ftp服务器时,默认到/etc/passwd下进行账户验证,在/etc/vsftpd/vsftpd.conf中有一条语句:pam_service_name=vsftpd ,说明可是使用pam进行验证,验证文件叫vsftpd。该文件为接口文件,告诉pam,验证时要调用哪些模块,以及模块的参数。
打开接口文件vsftpd
root@localhost vsftpd]# vim /etc/pam.d/vsftpd
该文件需要使用模块/lib/security/pam_userdb.so
查看该模块的手册:
[root@localhost txts]# man /usr/share/doc/pam-0.99.6.2/txts/README.pam_userdb
可以看到pam_userdb模块是用来验证存放在数据库中的用户名和密码的。
7. 再次编辑Vim /etc/pam.d/vsftpd文件
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
虚拟账号验证成功后,需要将虚拟账号和本地账号进行映射
8. 新建本地账户user1
[root@localhost home]# useradd user1
[root@localhost home]# passwd user1
9. 查看vsftpd.conf手册
查找guest关键字,guest_enable :所有的非匿名用户登录后将作为guest用户,guest用户映射成为guest_username定义的用户名。
10.在/etc/vsftpd/vsftpd.conf中添加如下语句:
guest_enable=YES
guest_username=user1
11.重启ftp服务
[root@localhost txts]# service vsftpd restart
12.给user1 的家目录添加r权限
[root@localhost home]# ll -d user1/
drwx------ 3 user1 user1 4096 09-16 16:58 user1/
[root@localhost home]# chmod a+r user1/
[root@localhost home]# ll
drwxr-xr-x 3 user1 user1 1024 12-19 15:29 user1
12测试虚拟账户test1与test2 能否登陆成功: