免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1663 | 回复: 0
打印 上一主题 下一主题

Fedora core 3 下vsftpd 虚拟用户配置step by step [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-24 18:33 |只看该作者 |倒序浏览
Fedora core 3 下vsftpd 虚拟用户配置step by step
作者:yunqing 首发:http://bbs.chinaunix.net 转贴,修改请引用此行

今天在我的fedora core3 的服务器上开了一个ftp服务给有关人员上传文件资料。下面是配置的详细过程,
记录下来防止自己将来忘了怎样设置的,同时也可供有同样需求的朋友共享,快速设置,免去查找的麻烦。
如果有人发过了,请见谅

目的:配置一个ftp服务器,要求尽量安全,用户使用密码登陆,同时打开上传的功能。
策略:使用Fedora core 3 自带的vsftpd,同时使用虚拟用户(virtual user),这样即使该用户资料被泄漏,
仍只能使用ftp,而无法登入系统.

过程:

以下命令均需要root权限

1. 安装vsftpd 包。
先看一下有没有安装:
  1. # rpm –q vsftpd
复制代码

如果没有,可以从安装盘上安装,或者:
  1. # yum –y install vsftpd
复制代码


2. 编辑 /etc/vsftd/vsftpd.conf,成为这个样子

  1. anonymous_enable=NO
  2. chroot_local_user=YES
  3. guest_enable=YES
  4. guest_username=ftp

  5. hide_ids=YES
  6. listen=YES
  7. listen_address=your server ip address
  8. local_enable=YES
  9. max_clients=100
  10. max_per_ip=4
  11. nopriv_user=ftp
  12. pam_service_name=ftp
  13. pasv_max_port=50100
  14. pasv_min_port=50000
  15. session_support=NO
  16. use_localtime=YES
  17. user_config_dir=/etc/vsftpd/users
  18. userlist_enable=YES
  19. userlist_file=/etc/vsftpd/denied_users
  20. virtual_use_local_privs=YES
  21. async_abor_enable=YES
  22. connect_from_port_20=YES
  23. dirlist_enable=NO
  24. download_enable=NO
  25. local_umask=0022
复制代码


3. 关闭所有本地系统用户的访问。
在上面的配置中,系统设置成了不允许匿名登陆,我们需要关掉所有本地系统用户的登录权限。上面的配置中有
  1. userlist_file=/etc/vsftpd/denied_users
复制代码

我们只需要把系统所有的用户名称放到这个文件中就行了。
作为root,键入:
  1. # cat /etc/passwd | cut -d ":" -f 1 | sort >; /etc/vsftpd/denied_users
复制代码

4.生成虚拟用户.
假设你想开两个虚拟用户zhangsan和lisi,口令分别为zhangsan_password和lisi_password,先编辑一个文本文件
比如说v_users.tmp,在其中写上
  1. zhangsan
  2. zhangsan_password
  3. lisi
  4. lisi_password
复制代码

将zhangsan_password和lisi_password换成你想要设置的真正的口令

看一下db工具包有没有装:
  1. # rpm -q db4-utils
复制代码

如没有:
  1. # yum -y install db4-utils
复制代码


然后执行下面的命令生成帐户的DB文件:
  1. # db_load -T -t hash -f v_users.tmp /etc/vsftpd/v_users.db
复制代码

删除掉原来的文件
  1. # rm -f v_users.tmp
复制代码

让db文件更安全
  1. # chmod 0600 /etc/vsftpd/v_users.db
复制代码


5. 设置pam
注意到我们的vsftpd.conf中的
  1. pam_service_name=ftp
复制代码

所以我们要编辑/etc/pam.d/ftp这个文件,内容如下:

  1. auth    required /lib/security/pam_userdb.so db=/etc/vsftpd/v_users
  2. account required /lib/security/pam_userdb.so db=/etc/vsftpd/v_users
复制代码


6.设置单个虚拟用户的配置文件。
在上面的设置中,允许为每个用户定制一个配置文件
  1. user_config_dir=/etc/vsftpd/users
复制代码

这句的意思是所有用户的配置文件都放在了/etc/vsftpd/users这个目录下。
注意每个用户的配置文件的名字要和用户名一样。所以,以zhangsan为例,对应
的配置文件是/etc/vsftpd/users/zhangsan

开个目录
  1. # mkdir /etc/vsftpd/users
复制代码

编辑文件:
  1. # vim  /etc/vsftpd/users/zhangsan
复制代码

输入下面的内容

  1. dirlist_enable=YES
  2. download_enable=YES
  3. local_root=/home/zhangsan
  4. write_enable=YES
复制代码

上面的配置中:
  1. local_root=/home/zhangsan
复制代码

的意思是zhangsan这个虚拟用户的ftp的根目录是/home/zhangsan,并且是可写的。
修改属性:
  1. # chmod 0600 /etc/vsftpd/users/zhangsan
复制代码


7. 设置目录权限。

  1. mkdir /home/zhangsan
  2. chown ftp:ftp /home/zhangsan
复制代码


8. 防火墙设置

如果你使用了FC3中默认的防火墙设置,请编辑/etc/sysconfig/iptables,并将下面语句加入,
以打开需要的端口。

  1. -A RH-Firewall-1-INPUT -m state --state NEW,ESTABLISHED,RELATED -m tcp -p tcp --dport 50000:50100  -j ACCEPT
  2. -A RH-Firewall-1-INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 21  -j ACCEPT
复制代码

重启防火墙使新规则生效:
/sbin/service iptables restart

9. 启动vsftpd服务并测试。
/sbin/service vsftpd start
在另外的机器上对服务器进行测试。用户zhangsan使用口令应能访问并能上传和下载文件。所有的文件都在
/home/zhangsan下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP