Fedora core 3 下vsftpd 虚拟用户配置step by step
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 包。
先看一下有没有安装:
- # rpm –q vsftpd
复制代码
如果没有,可以从安装盘上安装,或者:
- # yum –y install vsftpd
复制代码
2. 编辑 /etc/vsftd/vsftpd.conf,成为这个样子
- anonymous_enable=NO
- chroot_local_user=YES
- guest_enable=YES
- guest_username=ftp
- hide_ids=YES
- listen=YES
- listen_address=your server ip address
- local_enable=YES
- max_clients=100
- max_per_ip=4
- nopriv_user=ftp
- pam_service_name=ftp
- pasv_max_port=50100
- pasv_min_port=50000
- session_support=NO
- use_localtime=YES
- user_config_dir=/etc/vsftpd/users
- userlist_enable=YES
- userlist_file=/etc/vsftpd/denied_users
- virtual_use_local_privs=YES
- async_abor_enable=YES
- connect_from_port_20=YES
- dirlist_enable=NO
- download_enable=NO
- local_umask=0022
复制代码
3. 关闭所有本地系统用户的访问。
在上面的配置中,系统设置成了不允许匿名登陆,我们需要关掉所有本地系统用户的登录权限。上面的配置中有
- userlist_file=/etc/vsftpd/denied_users
复制代码
我们只需要把系统所有的用户名称放到这个文件中就行了。
作为root,键入:
- # cat /etc/passwd | cut -d ":" -f 1 | sort >; /etc/vsftpd/denied_users
复制代码
4.生成虚拟用户.
假设你想开两个虚拟用户zhangsan和lisi,口令分别为zhangsan_password和lisi_password,先编辑一个文本文件
比如说v_users.tmp,在其中写上
- zhangsan
- zhangsan_password
- lisi
- lisi_password
复制代码
将zhangsan_password和lisi_password换成你想要设置的真正的口令
看一下db工具包有没有装:
- # rpm -q db4-utils
复制代码
如没有:
- # yum -y install db4-utils
复制代码
然后执行下面的命令生成帐户的DB文件:
- # db_load -T -t hash -f v_users.tmp /etc/vsftpd/v_users.db
复制代码
删除掉原来的文件
- # rm -f v_users.tmp
复制代码
让db文件更安全
- # chmod 0600 /etc/vsftpd/v_users.db
复制代码
5. 设置pam
注意到我们的vsftpd.conf中的
- pam_service_name=ftp
复制代码
所以我们要编辑/etc/pam.d/ftp这个文件,内容如下:
- auth required /lib/security/pam_userdb.so db=/etc/vsftpd/v_users
- account required /lib/security/pam_userdb.so db=/etc/vsftpd/v_users
复制代码
6.设置单个虚拟用户的配置文件。
在上面的设置中,允许为每个用户定制一个配置文件
- user_config_dir=/etc/vsftpd/users
复制代码
这句的意思是所有用户的配置文件都放在了/etc/vsftpd/users这个目录下。
注意每个用户的配置文件的名字要和用户名一样。所以,以zhangsan为例,对应
的配置文件是/etc/vsftpd/users/zhangsan
开个目录
- # mkdir /etc/vsftpd/users
复制代码
编辑文件:
- # vim /etc/vsftpd/users/zhangsan
复制代码
输入下面的内容
- dirlist_enable=YES
- download_enable=YES
- local_root=/home/zhangsan
- write_enable=YES
复制代码
上面的配置中:
- local_root=/home/zhangsan
复制代码
的意思是zhangsan这个虚拟用户的ftp的根目录是/home/zhangsan,并且是可写的。
修改属性:
- # chmod 0600 /etc/vsftpd/users/zhangsan
复制代码
7. 设置目录权限。
- mkdir /home/zhangsan
- chown ftp:ftp /home/zhangsan
复制代码
8. 防火墙设置
如果你使用了FC3中默认的防火墙设置,请编辑/etc/sysconfig/iptables,并将下面语句加入,
以打开需要的端口。
- -A RH-Firewall-1-INPUT -m state --state NEW,ESTABLISHED,RELATED -m tcp -p tcp --dport 50000:50100 -j ACCEPT
- -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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论