RHEL 虚拟用户 FTP服务器

vsftpd服务器同时支持匿名用户、本地用户、和虚拟用户三类用户帐号,使用虚拟用户帐号可以提供集中管理的ftp根目录,同时将用于ftp登录的用户名、密码与系统帐号区别开来,进一步增强ftp的安全性。
 
下面我们看一个实例:
 
公司对所有权互联网开放共享目录,允许下载产品信息,禁止上传。公司的合作单位能够使用FTP服务器进行上传和下载,但不可以删除数据。并且保证服务器的稳定性,进行适当优化设置??
 
分析:
 
公司的服务器对互联网都是公开的,考虑到安全性我们就可以使用vsftpd的虚拟用户帐号,而分析这个需求主要涉及到两类用户,一类是只能查看和下载不能上传,而另一类则是能查看、上传、下载但不可以删除数据,在就是为了服务器的性能我们可以根据用户的等级限制用户的连接数和下载速率!
 
解决方案:
 
1.建立虚拟用户的用户名/密码数据库
 
vim vusers.list
 
testftp                                       
 1234                                            //当总提示密码错误时检查下此处是不是多了空格
 vipftp
 
 
5678                                          //奇数行用户名,偶数行是密码
 
2.用db_load工具将其转化为DB数据库文件(适用db_load命令工具必须先安装db4-utils-4.3.29-9.fc6.i386.rpm)
 
db_load -T -t hash -f vusers.list vusers.db          //-T表示允许适用程序将文本转化为DB数据文件,-t指定读取数据的基本方法
 
                                                                              -f 指定转换文件
 
[root@localhost vsftpd]# chmod 600 vusers.*              //降低文件权限来提高安全性
 
3建立访问的根目录及虚拟用户对应的系统帐号
 
[root@localhost vsftpd]# useradd -d /var/ftp/share -s /sbin/nologin ftpuser
 [root@localhost vsftpd]# useradd -d /var/ftp/vip -s /sbin/nologin vipuser
 ll -ld /var/ftp/share/
 drwx------ 4 ftp ftp 4096 10-27 13:27 /var/ftp/share/
 [root@localhost vsftpd]# chmod -R 500 /var/ftp/share/                        //因为ftp用户只能查看和下载不能写入(上传)
 
 
[root@localhost vsftpd]# chmod -R 700 /var/ftp/vip/                            //vip用户可以下载上传等。。
 
[root@localhost ~]# touch /var/ftp/share/testftp.txt                               
 
 
[root@localhost ~]# touch /var/ftp/vip/vipftp.txt                                          //建立测试文件
 
4.建立PAM认证文件
 
vim /etc/pam.d/vsftpd.vu
 
#%PAM-1.0                                                                                            //坚决不能省掉#%PAM-1.0这个内容
 auth    required        pam_userdb.so db=/etc/vsftpd/vusers                //db指向刚才转换过来的vusers.db,扩展名.db可以省略
 account required        pam_userdb.so db=/etc/vsftpd/vusers
 
 
5建立配置文件
 
anonymous_enable=NO         
 local_enable=YES                                  // 启用虚拟用户需要启用本地用户
 guest_enable=YES                                //启用用户名映射功能
 guest_username=ftpuser                                //将映射用户指定为ftpuser
 chroot_local_user=YES                              //将本地用户禁锢在自己的宿主目录中
 user_config_dir=/etc/vsftpd/vconfig            //为不同的虚拟用户建立独立的配置文件
 max_clients=300                                        //最多允许300个客户端同时连接
 
 
max_per_ip=10                                          //来自同一IP最大连接数为10
 
anon_max_rate=50000                              //设置传输速率为50kb
 
anon_world_readable_only=NO                  //允许匿名用户浏览器整个服务器的文件系统,不写貌似浏览不到ftp资源
 
local_umask=022
 dirmessage_enable=YES
 xferlog_enable=YES
 connect_from_port_20=YES
 xferlog_std_format=YES
 listen=YES
 pam_service_name=vsftpd.vu                                        //指明PAM配置文件
 userlist_enable=YES
 tcp_wrappers=YES
 
 
6.为不同的用户建立独立的配置文件:
 
 mkdir /etc/vsftpd/vconfig
 
vim /etc/vsftpd/vconfig/vipftp
 
guest_enable=YES                      //这些就是独立配置文件的vipftp的内容
 guest_username=vipuser
 write_enable=YES
 anon_upload_enable=YES                        //允许上传
 anon_mkdir_write_enable=YES
 anon_max_rate=100000                                  //传输速率100kb
 anon_world_readable_only=NO                  //允许匿名用户浏览器整个服务器的文件系统,不写貌似浏览不到ftp资源

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/43870733c817e76cac9b2468ff9ec589.html