`

在centos中安装vsftp服务及配置

阅读更多

       今天在现场做系统迁移,原来准备采用SCP做文件下载,后发现有这安全隐患:SCP的用户必须是系统用户,用户登陆上来后,看到了非文件下载目录,这样就带来了安全问题。于是放弃了这种方式,改用了VSFTP,很遗憾这个服务安装系统的时候没有安装,机器也不能上网,不能用yum在线安装。幸好个人机器中有centos镜像,经查找发现了VSFTP的RPM安装包,在第一张盘的/Packages下面。复制过来,进行安装,非常简单。安装完毕,开始配置,不会,上网baidu,找了一些文档,发现都有问题,都是采用系统用户的方式登陆VSFTP,这也会存在安全问题。也有些文章谈到了虚拟用户方式,主要参考了:http://www.cnblogs.com/killkill/archive/2011/01/05/1926230.htmlhttp://jingyan.baidu.com/article/f96699bb9036f7894e3c1be1.html,http://blog.chinaunix.net/uid-24250828-id-3760115.html
       现假设FTP的根目录是/data/ftp,所有脚本如下:

   rpm -ivh vsftpd-2.2.2-11.el6_4.1.x86_64.rpm     ---安装VSFTP服务
   useradd overlord -s /sbin/nologin ---添加系统用户,后面会把虚拟用户与系统用户做映射
   vi /etc/vsftpd/virtusers ---建立虚拟用户数据库,奇数行是用户,偶数行是密码。在此文件中添加xinwen和cgx,cgx具备所有FTP权限,xinwen仅具有下载权限,下面配置会实现。
   db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db ---生成虚拟用户口令认证文件
   vi /etc/pam.d/vsftpd  ---配置虚拟用户认证,把该文件中已有配置全部注释,并添加如下配置:
       auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
       account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
   vi /etc/vsftpd/vsftpd.conf ---配置主配置文件,并开启虚拟用户支持
       anonymous_enable=NO  ---修改此配置,禁止匿名登陆
       ---在最后添加如下配置
       guest_enable=YES
       guest_username=overlord  ---映射到系统用户 
       virtual_use_local_privs=NO ---必须为NO,很多文章都是YES,导致虚拟用户权限配置不能生效。YES=虚拟用户和本地用户有相同的权限,NO=虚拟用户和匿名用户有相同的权限
       user_config_dir=/etc/vsftpd/vconf  ---虚拟用户认证的配置文件目录
   vi /etc/vsftpd/vconf/xinwen ---建立每个虚拟用户的配置文件,必须与虚拟用户同名,添加如下配置:
       local_root=/data/ftp  ---用户登陆后主目录
       anon_world_readable_only=NO
       write_enable=YES
       local_umask=022
       anon_upload_enable=NO
       anon_mkdir_write_enable=NO
   vi /etc/vsftpd/vconf/cgx
       local_root=/data/ftp
       anon_world_readable_only=NO
       write_enable=YES
       local_umask=022
       anon_upload_enable=YES
       anon_mkdir_write_enable=YES
       cmds_allowed=FEAT,REST,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,RNFR,RNTO,RETR,DELE,SIZE,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,STOR 

   chmod 777 -R /data/ftp/* ---非常重要,操作权限的认证先是根据虚拟文件权限,再根据系统权限,仅仅在虚拟文件中配置是不够的,就会导致cgx用户不能建立目录,删除,上传文件等。
   service vsftpd restart ---重启服务

解释:
     cmds_allowed:是指这个用户可以执行的FTP命令,这个非常重要,vsftpd控制权限方法不是很好,例如想要达到目录不能删除,
仅允许上传、下载和删除文件,浏览目录。如果不通过cmds_allowed控制,就很难达到。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics