分类: LINUX
2011-10-27 23:10:02
vsFTP扩展
一 vsftp访问控制
1 通过两个tcp wrapper 的设置文件进行设置:/etc/hosts.allow /etc/hosts.deny
#vi /etc/hosts.allow
vsftpd:IP|网段 except IP|网段
例:
vsftpd:192.168.0. except 192.168.0.30 //除了192.168.0.30外,192.168.0.这个网段的其他用户均可链接vsftpd服务
同理也可编辑/etc/hosts.deny 配置文件,方法类似
注:仅有包含libwrap.so.0动态链接库的服务支持tcp wrapper,才能在此配置文件中设置
可使用ldd命令查看库的依赖情况
#which vsftpd //查找vsftpd的执行文件路径
#ldd /usr/sbin/vsftpd
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f16ff05a000) //发现其包含该动态链接库
2 由于vsftpd也属于超级守护进程,故也可同过xinetd来设置
#service xinetd start
#vi /etc/xinetd.conf //xinetd管理的超级守护进程的全局设置文件
或 #vi /etc/xinetd.d/vsftpd //vsftpd的单独设置文件
注:需在安装xinetd软件包的前提下,在/etc/xinetd.d/目录下,手动建立vsftpd文件并进行设置
设置语法参看该目录下的其他文件样式
二 批量添加虚拟用户
此时需使用db_load 命令,需安装相关软件包db4-utils-4.7.25-16.el6.x86_64
# yum install db4-utils-4.7.25-16.el6.x86_64 -y
#cd /etc/vsftpd/
载入数据库文件命令格式: db_load -T -t hash -f file db_file
参数说明:
-T 允许应用程序能够将文本文件转译载入进数据库
-t 追加在在-T选项后,用来指定转译载入的数据库类型,一般-t 参数后可指定的类型有 btree hash recno queue
-f 指定文本文件,其后用于设置要载入数据库的文件
db_file 为载入到的数据库名称,可自命名,多以“.db”结尾,标明其为数据库文件
注:1 db_load命令主要是用来生成db数据库使用的,系统中没有db_load命令时,需安装db4的相关软件包
2 -f 参数后面接包含用户名和密码的文本文件,格式为:
username1 //用户1
password1 //用户1的密码
username2 //用户2
password2 //用户2的密码
....... //其后,以此类推
#touch users
#vi users
内容如下:
user1
123
user2
456
#db_load -T -t hash -f users login.db
由于要批量加入用户到数据库,故需要相应的PAM模块支持
#cd /etc/pam.d/
#cat vsftpd //注意required后所接的文件,即为PAM需要的相关模块
#cd /lib64/security/
#ls |grep pam_userdb.so //查看系统是否拥有支持用户数据库的模块
#cd /etc/pam.d/
#vi virtual-user
内容如下:
auth required pam_userdb.so db=/etc/vsftpd/login
account required pam_userdb.so db=/etc/vsftpd/login
注:login为方才db_load建立的数据库,此处需省去“.db”后缀名,切忌哦!!!
#vi /etc/vsftpd/vsftpd.conf
修改如下:
pam_service_name=virtual-user //指定pam认证模块的设置文件,即为我们刚才建立过得呀!
如此,再重启服务,users文件中的用户即可用密码登录vsftp服务了
有了虚拟用户,那就为他们建立一个家目录吧!!!
# cd /var/ftp/
#mkdir user1 //为我们的user1虚拟用户建立家目录
#mkdir suer2
由于此处的目录需给vsftp的虚拟用户使用,其selinux的安全上下文需与pub目录相同
# ll -Z pub
#chcon -t public_content_rw_t user1
#chcon -t public_content_rw_t user2
#chmod 700 user*
#chown ftp user* //可以使使用ftp服务的用户能使用该目录
#touch user1/user1home
#touch user2/user2home //加入测试文件
#vi /etc/vsftpd/vsftpd.conf
添加如下:
user_config_dir=/etc/vsftpd/userconfig //指定虚拟用户的独立设置文件目录,可自命名
#mkdir /etc/vsftpd/userconfig
#cd /etc/vsftpd/userconfig
#vi user1.config //为user1设置配置文件
内容如下:
local_root=/var/ftp/user1
anon_other_write_enable=YES
#vi user2.config
local_root=/var/ftp/user2
anon_other_write_enable=YES
又设置好了耶!别怕麻烦,再次重启服务,用新建的虚拟用户登录吧!!!
注:也可启用guest_enable guest_username 参数,让虚拟用户以本机某用户登录,等录后进入该用户家目录
再次提醒:# man 5 vsftpd.conf