list1234 发表于 2012-9-17 08:49:36

ftp 虚拟账号(pam)

ftp 采用明文的数据传输方式,如果使用本地账户登录ftp服务器,若该用户的用户名和密码被别人抓包抓到,其他人就可以使用该账号登录ftp服务器,产生不安全的情况。
可以使用虚拟账号,在ftp服务器上将该虚拟账号映射为本地账号,这样即使账号在网络上被截获,也只是在系统上不存在的账号,无法登录系统。
1.新建挂载点,挂载光盘
# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom
2.安装vsftpd
# rpm -ivh /mnt/cdrom/Server/vsftpd-2.0.5-16.el5.i386.rpm
3.产生文本文件,用于存放虚拟账号和密码
# vim /etc/vsftpd/vuser.txt
test1 ##虚拟账号test1
123 ##虚拟账号test1的密码
test2 ##虚拟账号test2
456 ##虚拟账号test2的密码

4.安装db_load 工具,使刚刚产生的账号和密码文件变为数据库文件,该工具位于软件包db4_util中。
# rpm -ivh /mnt/cdrom/Server/db4-utils-4.3.29-10.el5.i386.rpm
5。使用db_load --help使用帮助。将uni账号文件变为数据库文件
# 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
# vim /etc/pam.d/vsftpd
该文件需要使用模块/lib/security/pam_userdb.so
查看该模块的手册:
# man /usr/share/doc/pam-0.99.6.2/txts/README.pam_userdb
可以看到pam_userdb模块是用来验证存放在数据库中的用户名和密码的。

db=/path/database ##用来说明数据库文件的位置
7.再次打开/etc/pam.d/vsftpd文件
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

虚拟账号验证成功后,需要将虚拟账号和本地账号进行映射
8.新建本地账户user1
# useradd user1
# passwd user1
9.查看vsftpd.conf手册
查找guest关键字,guest_enable :所有的非匿名用户登录后将作为guest用户,guest用户映射成为guest_username定义的用户名。

10.在vsftpd.conf中添加如下语句:
guest_enable=YES
guest_username=user1

11.重启ftp服务
# service vsftpd restart
关闭 vsftpd: [确定]
为 vsftpd 启动 vsftpd: [确定]
12.测试:

13.给user1 的家目录添加r权限
# ll -d user1/
drwx------ 3 user1 user1 4096 09-16 16:58 user1/
# chmod o+r user1/

14.再次访问


15.设置用户的最大速率
anon_max_rate=100 匿名用户的最大速率为100B/s
local_max_rate=10000 本地用户的最大速率为10M/s
max_clients=2 客户端的最大数量为2
max_per_ip=1 每个ip可以开启的连接数量
16.磁盘配额:
将test1 和test2 账户上传的总文件大小不能超过15MB
创建新分区

使用partprobe命令使linux内核重新读取分区表:
# partprobe /dev/sda

格式化该分区
# mkfs -t ext3 /dev/sda5
新建挂载点,将该分区永久性挂载到挂载点上
# mkdir /mnt/partion
# vim /etc/fstab

mount -a

执行quotacheck -augvc 后,在/mnt/5文件夹内产生文件:aquota.user,所有用户的配额文件。
编辑user1的配额文件
# edquota -u user1

quotaon /dev/sda5 使配额生效
# quotaon /dev/sda5
在开机脚本文件/etc/rc.d/rc.local中添加命令:quotaon /dev/sda5使开机时配额自动生效
由于user1 的家目录在“/”下,不在/dev/sda5分区上,也就是/mnt/partion上。将user1 的家目录复制到/mnt/partion /home下,修改/etc/passwd 中user1 的家目录位置为/mnt/partion/home/user1.由于虚拟账号test1 和test2 登录到系统中后变为guest账户,所有要修改vsftpd.conf文件,使匿名用户具有上传权限。再修改/mnt/partion/home/user1的权限,使other用户据哟上传权限。
# mkdir /mnt/partion/home
# mv * /mnt/partion/home/
# chmod -R o+rw home
# vim /etc/passwd
user1:x:501:502::/mnt/partion/home/user1:/bin/bash

# vim /etc/vsftpd/vsftpd.conf

上传文件

文件大小只有15M

再次上传,上传失败

配额生效

旃麒雅 发表于 2013-3-13 21:53:58

路过,学习下

buser 发表于 2013-5-15 21:33:14

老天,你让夏天和冬天同房了吧?生出这鬼天气!

gmdzxx 发表于 2013-5-16 10:50:54

男人偷腥时的智商仅次于爱因斯坦!

小时? 发表于 2013-5-16 21:23:37

走自己的路,让别人打车去吧。

cencenhai 发表于 2013-5-17 09:16:34

读书读到抽筋处,文思方能如尿崩!

szs 发表于 2013-5-17 19:41:31

生,容易。活,容易。生活,不容易。
页: [1]
查看完整版本: ftp 虚拟账号(pam)