您的位置:首页 > 运维架构 > Linux

CentOS vsftpd虚拟用户创建步骤

2010-12-24 11:31 393 查看
1:利用yum源安装
yum install vsftpd
2:修改配置文件
vi /etc/vsftpd/vsftpd.conf,
修改vsftpanonymous_enable=NO(不开启匿名登录)
添加
guest_enable=YES(开启虚拟用户)
guest_username=www(虚拟用户映射到本地的用户)
user_config_dir=/etc/vsftpd/vsftpd_user_conf(虚拟用户的配置文件目录)
3:建立虚拟帐号和用户口令文件
a: 建立一个包含虚拟用户名及其口令的文本文件
vi /etc/vsftpd/logins.txt,文件中奇数行为用户名、偶数行设置密码,(可以有多个用户名和密码)如下:
ftpuser #用户名
userpassword #密码
b:生成vsftpd的认证文件:
db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db
如果提示 db_load: command not found,则利用yum安装yum install db4-utils。
chmod 600 /etc/vsftpd/vsftpd_login.db
c:建立 user_config_dir 文件目录,并创建以用户名命名的配置文件
mkdir /etc/vsftpd/vsftpd_user_conf
vi /etc/vsftpd/vsftpd_user_conf/ftpuser
virtual_use_local_privs=YES 设置为 YES 时,虚拟用户使用与本地用户相同权限,
设置为 NO 时,虚拟用户使用与匿名用户相同权限
write_enable=YES
local_root=/data/www/ #此用户的ftp目录,请确保上面配置的本地用户www对此目录有相应权限。
4:配置PAM文件
vi /etc/pam.d/vsftpd输入以下内容并保存
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
5:启动vsftp
service vsftpd start
6: 防火墙相关皮配置。
FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive (
也就是PASV,被动方式)。
主动模式下FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客
户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收
数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。
Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而
是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客
户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口
进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
因为大部分ftp客户端软件都是被动模式,所以我们要根据被动模式开启防火墙中的相应端口。
首先,设置被动模式打开的
vi /etc/vsftpd/vsftpd.conf 添加
pasv_min_port=3300 #设置被动模式的端口范围
pasv_max_port=3310 #设置被动模式的端口范围
然后更改防火策略
vi /etc/sysconfig/iptables 添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3300:3310 -j ACCEPT
最后重启服务使其生效
service vsftpd rstart
service iptables restart
除了防火墙,selinux也会阻止ftp登录,可以关闭selinux。
------到此vsftp的配置完毕。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: