设为首页 收藏本站
查看: 1275|回复: 0

[经验分享] linux vsftpd 虚拟目录

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-12 09:01:35 | 显示全部楼层 |阅读模式

环境:CentOS6.5+vsFTP vsftpd-2.2.2-13.el6_6.1.x86_64


第一步:安装vsftp pam db4
yum install vsftpd pam* db4*  -y

关闭防火墙

#/etc/init.d/iptables stop
#chkconfig –level 35 iptables off

关闭setenforce

#setenforce 0

在多用户和界面模式vsftpd开机启动
#chkconfig --level 35 vsftpd on

第二步:创建虚拟用户验证数据库

先创建文本文件再通过ddb_load生成数据库,要使用db_load必须安装下述三个包

#rpm -qa |grep db4

db4-utils-4.7.25-18.el6_4.x86_64   

db4-4.7.25-18.el6_4.x86_64  

db4-devel-4.7.25-18.el6_4.x86_64

先创建用户文件

    #vi /etc/vsftpd/vsftpd_login.txt
    ftp01     ##用户名
    123123 ##密码,奇数行为用户名,偶数行为密码
    ftp02
    321321
生成数据库
db_load -T -t hash -f vsftpd_logins.tst /etc/vsftpd/vsftpd_login.db
第三步:修改/etc/pam.d/vsftpd内容
注释掉所有的行,然后在最后添加两行即可。这个文件主要是指定验证的配置文件,如果需要ftpusers起作用,则把第三行的#去掉即可,注释掉原有配置后,则系统本地用户名不能再登陆vsftpd,如果需要登陆,则需要按照上重新生成数据库
[iyunv@localhost vsftpd_user_conf]# cat /etc/pam.d/vsftpd
#%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     password-auth
#account    include     password-auth
#session    required     pam_loginuid.so
#session    include     password-auth
auth       required     /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account    required     /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
第四步:建立ftp虚拟宿主帐户

#useradd -d /var/ftp/ftpuser ftpuser -s /sbin/nologin  这ftpuser只个虚拟帐户的宿主,本身是不用登录的
由于linux的权限控制是以用户ID来区分,所以vsftpd创建的虚拟账号linux并不认同,必须给这些虚拟账号分批载体


第五步:配置vsftpd.conf
修改下面红色字体的部分为蓝色字体的形式,紫色字体是配置原有的
anonymous_enable=YES  -->  anonymous_enable=NO   //不允许匿名用户访问,默认是允许。
#chroot_list_enable=YES  -->  chroot_list_enable=YES   //不允许FTP用户离开自己主目录,默认是被注释掉的。
#chroot_list_file=/etc/vsftpd/chroot_list --> chroot_list_file=/etc/vsftpd/chroot_list  //如果开启了chroot_list_enable=YES,那么一定要开启这个,这条是锁定登录用户所在的主目录的位置
注意:

1:如果设置为
chroot_local_user=YES
chroot_list_enable=YES(这行可以没有, 也可以有)
chroot_list_file=/etc/vsftpd.chroot_list
那么, 凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户
即可以浏览其主目录的上级目录。
所以, 如果不希望某用户能够浏览其主目录上级目录中的内容,可以如上设置, 然后在文件vsftpd.chroot_list中不添加该用户即可(此时, 在该文件中的用户都是可以浏览其主目录之外的目录的).
或者, 设置如下
chroot_local_user=NO
chroot_list_enable=YES(这行必须要有, 否则文件vsftpd.chroot_list不会起作用)
chroot_list_file=/etc/vsftpd.chroot_list
然后把所有不希望有这种浏览其主目录之上的各目录权限的用户添加到文件vsftpd.chroot_list(此时, 在该文件中的用户都是不可以浏览其主目录之外的目录的)中即可(一行一个用户名).
/etc/vsftp/chroot_list本身是不存在的,这要建立vim /etc/vsftp/chroot_list,然后将帐户输入一行一个,保存就可以了
local_enable=YES      //允许本地用户访问,默认就是YES,不用改
write_enable=YES      //允许写入,默认是YES,不用改
local_umask=022       //上传后文件的权限掩码,不用改
dirmessage_enable=YES //开启目录标语,默认是YES,开不开无所谓,我是默认就行
xferlog_enable=YES    //开启日志,默认是YES,不用改
connect_from_port_20=YES   //设定连接端口20
xferlog_std_format=YES   //设定vsftpd的服务日志保存路径,不用改
(这步后面要有几个操作才能运行,也就是touch这个文件(见第五步),因为它本身不存在,而且还要给文件写入的权限)
#idle_session_timeout=600  -->  idle_session_timeout=600  //会话超时,客户端连接到ftp但未操作,默认被注释掉,可根据个人情况修改
#async_abor_enable=YES  -->   async_abor_enable=YES     //支持异步传输功能,默认是注释掉的,去掉注释
#ascii_upload_enable=YES  -->   ascii_upload_enable=YES   //支持ASCII模式的下载功能,默认是注释掉的,去掉注释
#ascii_download_enable=YES  -->   ascii_download_enable=YES   //支持ASCII模式的上传功能,默认是注释掉的,去掉注释
#ftpd_banner=Welcome to blah FTP service  //FTP的登录欢迎语,本身是被注释掉的,去不去都行
#chroot_local_user=YES  --> chroot_local_user=YES    //禁止本地用户登出自己的FTP主目录,本身被注释掉,去掉注释
pam_service_name=vsftpd  //设定pam服务下vsftpdd的验证配置文件名,不用改
userlist_enable=YES    //是否启用user_list
TCP_wrappers=YES    //限制主机对VSFTP服务器的访问,不用改(通过/etc/hosts.deny和/etc/hosts.allow这两个文件来配置)

#userlist_deny

userlist_deny=NO   //只user_list里面的用户登陆,如果为YES,则不允许登陆
user_config_dir=/etc/vsftpd/vsftpd_user_conf   //指定虚拟用户的个人配置文件



第六步:建立虚拟账号的配置文件以及虚拟账号的主目录
在user_config_dir指定路径下,建立与虚拟帐号同名的配置文件并添加相应的配置字段

[iyunv@localhost vsftpd]# mkdir vsftpd_user_conf
[iyunv@localhost vsftpd]#mkdir /var/ftp/public
[iyunv@localhost vsftpd]#mkdir /var/ftp/personal
[iyunv@localhost vsftpd]#chown ftpuser:ftpuser /var/ftp/public
[iyunv@localhost vsftpd]#chown ftpuser:ftpuser /var/ftp/personal
[iyunv@localhost vsftpd]#chmod -R 700 /var/ftp/public
[iyunv@localhost vsftpd]#chmod -R 700 /var/ftp/personal
[iyunv@localhost vsftpd_user_conf]# touch /etc/vsftpd/vsftpd_login/ftp01
[iyunv@localhost vsftpd_user_conf]# touch /etc/vsftpd/vsftpd_login/ftp02


修改ftp01的配置文件
guest_enable=yes              开启虚拟帐号登录
guest_username=ftp01     设置ftp对应的系统帐号为ftp01anon_world_readable_only=no  不允许匿名用户浏览器整个服务器的文件系统
local_root=/var/ftp/public  指定该虚拟账号的主目录(如果没有这条,这默认会进入系统用户ftp01的主目录,如果ftp01的主目录的其他人权限不允许读,则看不到一个文件)

修改ftp02的配置文件

guest_enable=yes 开启虚拟帐号登录
guest_username=ftp02l设置ftp对应的系统帐号为ftp02

anon_other_write_enable=YES: 允许匿名账号具有删除.更名权限

anon_mkdir_write_enable=yes:允许创建文件夹

anon_upload_enable=yes开启匿名帐号的上传功能

anon_world_readable_only=no:不允许匿名用户浏览整个服务器的文件系统
local_root=/var/ftp/personal   指定该虚拟账号的主目录




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-28247-1-1.html 上篇帖子: Linux 源代码 安装 vsftpd 3.0.2 下篇帖子: 本地和异地ftp传输备份脚本 linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表