Fedora core 3 下vsftpd 虚拟用户配置step by step

发布于 2022-10-03 00:25:57 字数 5157 浏览 12 评论 0

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下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文