在RHEL5下构建vsftpd文件传输服务器

一.FTP连接及传输模式:
FTP服务器默认使用使用TCP协议的20、21端口与客户端进行通信。21端口用于建立控制连接,并传输FTP控制命令;20端口用于建立数据连接,并传输文件数据。
主动模式:服务器主动发起数据连接。使用20端口。
被动模式:服务器被动等待数据连接。使用1024以上端口。
二.vsftp用户类型:
1.匿名用户      2.本地用户     3.虚拟用户
三.vsftp下的一些重要文件:
1.用户控制列表文件ftpusers和user_list
ftpusers:该文件中含的用户账户将被禁止登录vsftpd服务器,不管该用户是否在user_list文件中出现。通常将root、bin、daemon等特殊用户列在该文件中,禁止用于登录FTP服务。
user_list:该文件中包含的用户账户可能被禁止登录,也可能被允许登录,具体在主配置文件vsftpd.conf中决定。当存在“userlist_enable=YES”的配置项时,user_list文件生效,如果配置“userlist_deny=YES”,则仅禁止列表中的用户账户登录,如果配置“userlist_deny=NO”,则允许列表中的用户账户登录。
2.主配置文件vsftpd.conf
3.用户名/密码列表文件:用于建立虚拟账户
4.用户名/密码DB数据库文件
5.PAM认证文件:用于虚拟用户认证控制
6.不同用户的虚拟用户的独立配置文件
四.vsftpd服务启动和终止:
/etc/init.d/vsftpd     start/stop      或 service vsftpd start/stop
五.vsftpd.conf的常用配置项:
全局配置项

listen=YES :是否以独立运行的方式监听服务
listen_port :设置监听FTP服务的端口号
write_enable=YES :启用任何形式的写入权限(如上传、删除文件等)都需要开启此项
download_enable=YES/NO :是否允许下载文件(建立仅限于浏览、上传的FTP服务器时可将其设为NO)
dirmessage_enable=YES/NO:用户切换进入目录时显示.message文件(如果存在)的内容
xferlog_enable=YES :启用xferlog日志,默认记录到“/var/log/xferlog”文件
xferlog_std_format=YES :启用标准的xferlog日志格式,若禁用此项,将使用vsftpd自己的日志格式
connect_from_port_20=YES :允许服务器主动模式(从20端口建立数据连接)
pasv_enable=YES :允许被动模式连接
pasv_max_port=端口号:设置用于被动模式的服务器最大端口号(1024以上)
pasv_min_port=端口号:设置用于被动模式的服务器最小端口号(1024以上)
userlist_enable=YES /NO:是否启用user_list用户列表文件
userlist_deny=YES/NO:是否禁止user_list列表文件中的用户账号
max_clients=0 :最多允许多少个客户端同时连接(0为无限制)
max_per_ip=0 :对来自相同IP地址的客户端,最多允许多少个并发连接(0为无限制)
tcp_wrappers=YES/NO:是否启用TCP_Wrappers主机访问控制
匿名用户(也适用于虚拟用户)配置
anonymous_enable=YES /NO:是否允许匿名访问
anon_umask=022 :设置匿名用户所上传文件的默认权限掩码值
anon_root=/var/ftp:设置匿名用户的FTP根目录(缺省为/var/ftp)
anon_upload_enable=YES/NO :是否允许匿名用户上传文件
anon_world_readable_only=YES/NO:匿名用户是否可以浏览
anon_mkdir_write_enbale=YES/NO:是否允许匿名用户有创建目录的写入权限
anon_other_write_enable=YES/NO :是否允许匿名用户有其他写入权限。如对文件改名、覆盖、删除文件
anon_max_rate=0:限制匿名用户最的最大传输速率(0为无限制,单位为字节)
guest_enable=YES:启用用户映射功能(做虚拟用户访问时使用)
guest_username=虚拟帐号对应的系统帐号 :将映射用户指定为该系统帐号
pam_service_name=认证文件名:设置用于用户认证的PAM文件位置(/etc/pam.d/目录中对应的文件名)
user_config_dir=虚拟用户配置文件目录 :设置虚拟用户的配置文件的目录

  本地用户配置项:
local_enable=YES/NO:是否允许本地系统用户访问
local_umask=022:设置本地用户所上传文件的默认权限掩码值
local_root=/var/ftp:设置本地用户的FTP根目录(缺省为用户的宿主目录)
chroot_local_user=YES/NO:是否将FTP本地用户禁锢在宿主目录中
local_max_rate=0:限制本地用户的最大传输速率(0为无限制,单位为字节)

六.实验案例:
环境:根据公司的开发部门和市场部门的业务发展要求,需要面向Internet搭建一台FTP文件服务器,以提供公测版软件、市场资料的下载与上传、文件管理等应用,同时要对用户访问和下载/上传流量进行控制。考虑到服务器的运行效率及稳定、安全性,选择在RHEL5操作系统中构建Vsftpd服务器实现。
需求描述:
采用FTP虚拟用户的方式,添加三个用户devadm、sales、saleadm。
用户访问及文件权限控制:
1.开放匿名访问,任何用户均可以下载服务器“/var/ftp/soft/“目录中的软件资料。
2.用户devadm可以对服务器“/var/ftp/soft"目录进行管理(上传文件、创建目录、删除文件等)。
3.用户sales可以下载服务器“/var/market/”目录中的市场活动销售方案等资料。
4.用户saleadm可以对服务器“/var/market/”目录进行管理(上传文件、创建目录、删除文件等)。
5.所有经FTP账户上传的文件,均去除非属主位的写权限(即将权限掩码设为022)。
6.对服务器中没有明确授权的其他目录,均禁止以上用户访问。
下载、上传流量及带宽控制:
最多允许150个并发用户连接,每IP并发连接数不超过5个。
匿名用户及sales用户的下载带宽限制为100KB/s。
devadm、saleadm用户的下载、上传带宽限制为500KB/s。
实验步骤:
1.建立虚拟用户的用户名/密码数据库
# vi /etc/vsftpd/login.txt
#db_load -T -t hash -f login.txt  login.db                  //将列表文件转换为数据库文件,如果db_load命令工具没有装,从RHEL5光盘中装db4-utils-4.3.29-9.fc6.i386.rpm软件包可获得该工具。
#chmod 600 /etc/vsftpd/login.*                                   //降低账户文件权限,提高安全性
2.建立FTP访问的根目录及虚拟用户对应的系统账号
# useradd -s /sbin/nologin  vivi
#cd /var/ftp
#mkdir soft
#cd /var
#mkdir market
#chmod  755 /var/market
#chmod  755 /var/ftp/soft
#chown vivi /var/market
#chown vivi /var/ftp/soft
3.建立PAM认证文件
# vi /etc/pam.d/renzheng
auth                      required                 pam_userdb.so                 db=/etc/vsftpd/login
account
4.修改vsftpd.conf配置文件,添加虚拟用户及匿名用户支持
# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES                              //允许匿名用户访问
anon_root=/var/ftp/soft                               //允许匿名用户访问的FTP目录为/var/ftp/soft
anon_max_rate=102400                             //匿名用户下载带宽限制为100KB/s
max_clients=150                                           //最多允许150个用户并发连接
max_per_ip=5                                               //每个IP并发连接数不超过5个
anon_umask=022                                      
local_enable=YES                                         //设置虚拟用户需要启用本地用户
guest_enable=YES                                        //启用用户映射功能
guest_username=vivi                                    //将映射用户指为vivi
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=renzheng                    //修改使用的PAM文件位置
userlist_enable=YES                                   
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/conf
chroot_local_user=YES                           
5.为不同的虚拟用户建立独立的配置文件
5.1.主配置文件中一定要添加这一条:
user_config_dir=/etc/vsftpd/conf
5.2.为用户devadm、sales、saleadm建立独立的配置文件
# mkdir /etc/vsftpd/conf
#cd /etc/vsftpd/conf
#vi devadm
local_root=/var/ftp/soft
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=512000
#vi saleadm
local_root=/var/market
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=512000
# vi sales
local_root=/var/ftp/market
anon_world_readable_only=NO
anon_max_rate=102400
6.启动vsftpd服务
service vsftpd start
 









本文转自 kk5234 51CTO博客,原文链接:http://blog.51cto.com/kk5234/386647,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值