Chinaunix
标题:
Fedora core 3 下vsftpd 虚拟用户配置step by step
[打印本页]
作者:
yunqing
时间:
2005-03-24 18:33
标题:
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下。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2