CentOS vsftp同时使用本地账号和虚拟账号
vsftpd下(FTP)建立虚拟用户的添加基于Centos系列Linux
本人技术有限,是根据网上搜索修改后这样操作下来的是可以实现的,如有不妥之处望指正---作者:宗国锋---如有转载请著名出处,谢谢系统环境Centos5装包(用rpm包安装也可以)[root@localhost ~]yum -y install vsftpd[root@localhost ~]yum -y install db4-utils#添加虚拟的用户帐户![root@localhost ~]cd /tmp[root@localhost ~]vi ftpuser_listzongguofengguofeng[root@localhost ~]rm -rf /etc/vsftpd_login.db //注释此文件可能不存在,首次建立的时候是不存在的不需要删除[root@localhost ~]# db_load -T -t hash -f /tmp/ftpuser_list /etc/vsftpd_lo gin.db[root@localhost ~]chmod 600 /etc/vsftpd_login.db[root@localhost ~]vi /etc/pam.d/ftp.vuauth required /lib/security/pam_userdb.so db=/etc/vsftpd_loginaccount required /lib/security/pam_userdb.so db=/etc/vsftpd_login#添加本地计算机用户名和密码;[root@localhost ~]useradd -d /ftp -s /sbin/nologin vsftp[root@localhost ~]chown -R vsftp.vsftp /ftp[root@localhost ~]touch /tmp/new_ftppwd[root@localhost ~]echo "vsftp:password" >/tmp/new_ftppwd[root@localhost ~]chpasswd < /tmp/new_ftppwd#配置vsftpd.conf全局设置:[root@localhost ~]cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak.00 然后编辑配置文件写入如下内容直接执行即可![root@localhost ~]echo "anonymous_enable=NOanonymous_enable=NO#本地帐户配置!local_enable=YESlocal_umask=022dirmessage_enable=YESconnect_from_port_20=YES#启用来宾帐号,也就是虚拟用户使用的帐号的权限用户。
CentOs下ftp虚拟用户的添加和配置
CentOs下ftp虚拟用户的添加和配置备注:前提,已经安装好ftp服务:使用yum install vsftpd步骤如下:1 .添加用户名:/usr/sbin/adduser -d /home/public/paper -g ftp -s /sbin/nologinhitcerc解释:使用命令(adduser)添加hitcerc用户,不能登录系统(-s /sbin/nologin),自己的文件夹在(-d /opt/test_ftp)),属于组ftp(-g ftp)。
/home/public/paper这个目录可以为你系统上的任意一个目录。
也就是说,可以给不同用户分配不同的目录。
2 . (可选),把上面的/home/public/paper目录挂载到某个大的硬盘下,如:mount –bind /home/public/paper /mnt/winC/3. 在/etc/vsftpd/vsftpd.conf下有这个:chroot_local_user=YES4. 使用gedit vuser_passwd.txt 加入用户名和密码,其中奇数行为用户名,偶数行为密码如下:第1行:hitcerc第2行:12345.使用db_load–T –t hash –f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db生成用户名密码数据库6. 随后,编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,再增加以下两句auth required pam_userdb.so db=/etc/vsftpd/vuser_passwdaccount required pam_userdb.so db=/etc/vsftpd/vuser_passwd7. 进入/etc/vsftpd/vuser_conf目录,使用gedi+用户名形式,如gedithitcerc。
vsftpd虚拟用户和本地用户共存
我们可以把虚拟用户的验证配置放在最前面,且把control_flag设为sufficient。
这样的话,如果遇到是虚拟用户,那么可以通过验证,如果是本地用户,忽略掉sufficient的两条配置规则,只要满足required就行,所以也能通过验证。
如下为/etc/pam.d/vsftpd的内容:
#%PAM-1.0
auth sufficient pam_userdb.so db=/etc/vsftpd/vuser_passwd //将虚拟用户验证写在前面
account sufficient pam_userdb.so db=/etc/vsftpd/vuser_passwd
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
上面两行为后面加上,虚拟用户pam认证需要的配置条目,下面为原来vsftpd的认证配置规则,可以看到,本地用户用的是password-auth,从这里可以看出如果要虚拟用户和本地用户共存,两部分都不能注释。
网上说的注释掉下面的部分,这种情况本地用户都不能登录。
Centos7中支持虚拟用户vsftpd 服务的配置word精品文档6页
Centos7中支持虚拟用户vsftpd 服务的配置vsftp是Linux系统首推的FTP服务器软件,在安全、稳定、速度上有一定优势。
本文结合单位实际介绍了FTP服务配置,最终实现这样一个功能,匿名用户仅能登录下载文件,虚拟用户能登录并能在自己的文件夹内上传文件,这些文件夹对匿名用户可见,虚拟用户的用户名、密码存储在MySQL数据库中,同时修改Firewall、SeLinux配置保护系统安全。
1软件安装考虑服务器效率及安全,Centos7选用最小安装,并配置基本编译环境。
vsftp安装采用yum安装,运行命令如下:yum install vsftpdMySQL不采用yum安装,否则在编译pam_mysql时会发生找不到mysql.h文件的错误,解决起来比较麻烦,采用源代码编译安装比较好,安装后mysql的头文件和库安装在/usr/local/mysql目录下。
pam_mysql是基于MySQL数据库的PAM认证模块,是vsftpd与MySQL 之间的桥梁,最新源代码包为pam_mysql-0.7RC1.tar.gz,在字符命令界面下,可通过wget命令下载。
下载解压后在编译时要设置两个参数:--with-pam-mods-dir=/lib64/security #pam_mysql.so安装位置。
--with-mysql=/usr/local/mysql #mysql头文件和库安装位置。
2服务配置过程2.1 pam_mysql配置配置文件在/etc/pam.d目录下,文件名用户自己确定,本文中命名为vsftpd.mysql,文件中包括pam_mysql.so文件位置,MySQL数据库用户名,密码,用户数据库名称,用户表名称,表结构,加密方式等,具体如下:auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=*** host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 verbose=1account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=*** host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 verbose=1verbose=1选项用于调试,输出信息在/var/log/secure中。
centos6.5vsftpd虚拟用户配置
centos6.5vsftpd虚拟⽤户配置⼀:基本知识1:虚拟⽤户:与系统⽆关联,不能登⼊系统,只能访问FTP服务器2:vsftp的服务进程是vsftpd3:vsftpd的配置⽂件是/etc/vsftpd/vsftpd.conf .4:vsftpd的⽤户⽂件是/etc/vsftpd/ftpusers5:vsftpd的⽤户⽂件是/etc/vsftpd/user_list6:推荐使⽤虚拟⽤户登⼊vs-FTP服务器⼆:安装1.检查是否安装过vsftpdrpm -qa vsftpd安装:(1) yum -y install vsftpd lftp(2) 关闭iptables 和 selinux/etc/init.d/iptables stop临时关闭selinuxsetenforce 0永久性的关闭selinuxvim /etc/selinux/config修改为 ————》SELINUX=disabled(3) 创建虚拟⽤户⽂本⽂件,添加⽤户及密码cd /etc/vsftpdtouch vuser.txt备注:奇数⾏是⽤户名,偶数⾏是密码。
例如:alix123456(4) ⽣成虚拟数据库⽂件(需使⽤到db_load)yum -y install db4-utils db4-devel db4-4.3db-load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db(5) 配置PAM⽂件,⽤来验证客户端vim /etc/pam.d/vsftpdauth required pam_userdb.so db=/etc/vsftpd/vuseraccount required pam_userdb.so db=/etc/vsftpd/vuser(6)修改虚拟数据库⽂件的权限chmod 700 /etc/vsftpd/vuser.db(7) 增加⼀个系统⽤户vuser,⽤于匿名⽤户的映射。
Linux vsftpd匿名用户,本地用户,虚拟用户授权同时访问不同的目录
Linux vsftpd匿名用户,本地用户,虚拟用户授权同时访问不同的目录需求描述添加三个FTP虚拟用户devadm、sales、saleadm,和一个本地用户jerry设置用户访问及文件权限控制:☐开放匿名访问,任何用户可以从/var/ftp/soft/目录下载资料☐用户devadm可以对/var/ftp/soft/目录进行管理☐用户sales可以从/var/market/目录下载资料☐用户saleadm可以对/var/market/目录进行管理☐添加本地用户jerry,可以对/var/ftproot/目录进行管理☐所有上传的文件,均去除非属主位的写(w)权限☐对服务器中没有明确授权的其他目录,均禁止以上用户访问挂载光盘ISO文件安装软件vsftpd安装软件db_utils建立3个文件夹,并建立测试文件。
编辑新文件vusers.list添加3个用户,密码都为a。
奇数行表示用户,偶数行表示密码使用工具db_load将列表文件转化为DB数据库文件-f选项用于指定用户名/密码列表文件,-T选项允许非Berkeley DB的应用程序从文本格式转化的DB数据文件,-t hash选项指定读取数据文件的基本方法。
使用命令file查看文件类型,类型为Berkeley DB格式的数据库文件降低文件权限以提高安全性查看权限,只有管理员可以写入,其他用户没有任何权限。
建立虚拟用户对应的系统账号,这个账户不能登录系统。
-s /sbin/nologin 表示指定shell环境,不让登录系统。
请注意,这个用户必须有一个宿主目录,否则虚拟用户无法登陆建立本地用户jerry配置密码建立PAM认证文件,注意/etc/pam.d/vsftpd为本地用户的验证文件,如果创建其他文件vsftpd.vu表示虚拟用户,如果说将虚拟用户的配置写入本地用户的验证文件,就可以实验本地用户和虚拟同时登录ftp。
参数如下。
auth 是authentication(认证)的缩写,account(账户) required(必须) sufficient (足够的) PAM配置文件主要用为程序提供用户认证控制,需要.pam_userdb.so文件vusers表示建立的用户数据库文件,后缀名.db 可以不用写。
Linux(Centos)配置vsftp使用账号密码(虚拟用户)登录ftp进行文件上传和修改
Linux(Centos)配置vsftp使⽤账号密码(虚拟⽤户)登录ftp进⾏⽂件上传和修改安装vsftpyum install vsftpd -y安装完成之后进⼊vsftp的配置⽂件夹cd /etc/vsftpd/⽂件夹内容如下[root@VM-0-12-centos vsftpd]# lltotal 20-rw------- 1 root root 125 Oct 1400:10 ftpusers-rw------- 1 root root 361 Oct 1400:10 user_list-rw------- 1 root root 5116 Oct 1400:10 vsftpd.conf-rwxr--r-- 1 root root 338 Oct 1400:10 vsftpd_conf_migrate.sh在当前⽬录下创建⼀个⽤户名和密码的⽂件⽂件名名称为 ftp_user.txtvim /etc/vsftpd/ftp_user.txt再ftp_user.txt⽂件⾥配置⽤户和密码yvioo123456kaifa12345678其中yvioo 是ftp登录的⽤户名123456 是ftp中yvioo⽤户登录的密码kaifa 是ftp登录的⽤户名12345678 是ftp中kaifa⽤户登录的密码以此内推,可以添加多个然后保存退出wq!执⾏命令⽣成虚拟数据库db_load -T -t hash -f /etc/vsftpd/ftp_user.txt /etc/vsftpd/ftp_login.db其中/etc/vsftpd/ftp_user.txt 是上⾯存放⽤户名和密码⽂件的绝对路径/etc/vsftpd/ftp_login.db 这个是⽣成的数据库的路径数据库名称为 ftp_login.db设置⽣成的数据库的访问权限chmod 777 /etc/vsftpd/ftp_login.db编辑账号的pam验证⽂件vim /etc/pam.d/vsftpd在最上⽅增加auth sufficient pam_userdb.so db=/etc/vsftpd/ftp_loginaccount sufficient pam_userdb.so db=/etc/vsftpd/ftp_login其中db=/etc/vsftpd/ftp_login 这个就是上⼀步⽣成的虚拟数据库(⽂件名称根据⾃⼰的来),注意:这⾥不⽤加 .db 后缀如下图所⽰创建⼀个⽂件夹mkdir /home/vsftpd新建⼀个系统⽤户vsftpd⽤户登录终端设为/bin/false(即不能登录系统)useradd vsftpd -d /home/vsftpd -s /bin/false其中vsftpd 这个就是创建的⽤户的⽤户名(这个下⾯配置⽂件⾥会使⽤)/home/vsftpd 就是刚才创建的⽂件夹根据需要创建修改/etc/vsftpd/vsftpd.conf,以下设置vim /etc/vsftpd/vsftpd.conf修改配置#禁⽤匿名登⼊anonymous_enable=YES 改为 anonymous_enable=NO#监听为专⽤模式listen=NO 改为 listen=YES#将ipv6监听注释掉listen_ipv6=YES 改为 #listen_ipv6=YES在配置⽂件底部增加#对⽤户访问只限制在主⽬录不能访问其他⽬录(这个已经有了但是默认是注释的可以取消注释或者直接新增)chroot_local_user=YES#启⽤guestguest_enable=YES#使⽤虚拟账号形式(vsftpd 就是我们上⾯创建的⽤户的⽤户名)guest_username=vsftpd#虚拟账号配置⽬录(这个还没创建我们下⾯再进⾏创建,先这样写)user_config_dir=/etc/vsftpd/user_conf#对vsftpd的⽤户使⽤pam认证(这个就是我们上⾯改的pam验证⽂件的⽂件名,这个默认已经有了,所以不⽤添加,没有的话再添加)pam_service_name=vsftpd#允许本地⽤户登录(这个默认的也有了,没有的话添加上)local_enable=YES然后保存退出接着创建虚拟账号配置⽬录mkdir /etc/vsftpd/user_conf进⼊⽂件夹cd /etc/vsftpd/user_conf/创建⽂件vim /etc/vsftpd/user_config/yvioo其中yvioo 就是我们上⾯ftp_user.txt中配置的ftp的账号的⽤户名(这⾥创建的⽂件名要对应上,如果有多个ftp⽤户就创建多个ftp⽂件对应的⽤户名⽂件,然后在⾥⾯设置权限即可)然后添加write_enable=YESanon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESlocal_root=/data/www说明如下#是否允许登陆⽤户有写权限。
vsFTPD的匿名+本地+虚拟(mysql)认证服务
这篇文章关于vsftpd知识很全,尽早对照着做了一遍vsftpd分为三种认证或者说登陆方式,1,匿名,2,本地,3,虚拟(db或mysql),1,匿名在vsftpd-2.0.3.tar.gz 解压后的目录下的 builddefs.h 头文件很关键,里面启动支持tcpwrapper和ssl,随便那种方式都行关键pam的定义 #define VSF_BUILD_PAM对于匿名和虚拟,则要把上面语句包含进来,如果采取2,本地用户登陆,就得undef PAM了修改完,make拷贝vsftpd程序和配制文件到相应目录服务器采取standalone启动的话,添加listen=YES,因为默认是采用xinetd控制启动配制conf文件:注意格式,每行的值不要有空格,然机就是conf中各项的理解了,这个好办2,本地用户登陆就是把pam的define改为undefconf中anonymous_enable=NO,local_enable=YES这样服务器本地用户就可以登陆,并且登陆到相应用户的主目录,这不安全,可以利用userlist_enable=YESuserlist_deny=YESuserlist_file=/etc/vsftpd.denyuser配制哪些用户不能登陆,或仅仅哪些用户能登陆,都是相对本地用户来的3,虚拟用户builddefs.h中的跟1匿名用户时一样,开启PAM支持虚拟用户有两种,1,DB库和mysql库DB库需要pam_userdb.so,我查看了我没有,不知通过什么安装mysql需要pam_mysql.so,我的机器只有pam_mysql.so认证模块,只能试验mysql了,我也喜欢mysql些配制文件中主要注意有:anonymous_enable=NOlocal_enable=YES //PAM方式此处必须为YES,如果不是将出现错误guest_enable=YESguest_username=vsftpd //这两行的意思是采用虚拟用户形式virtual_use_local_privs=YES //虚拟用户和本地用户权限相同然后就是mysql的设置:我建立vsftpd数据库,user表,其实就是利用pam_mysql.so模块认证,跟sock5的一样的了,mysql:create table user(name char(20) binary,passwd char(20) binary);mysql>insert into user (name,passwd) values (\'test1\',\'12345\');mysql>insert into user (name,passwd) values (\'test2\',\'54321\');mysql>grant select on er to[email=ftpd@localhost]ftpd@localhost[/email]identified by \'123456\';mysql>flush privileges; 刷新权限设置mysql>quit建立PAM认证信息:# vi /etc/pam.d/ftp ,内容如下auth required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=0account required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost db=ftpd table=userusercolumn=name passwdcolumn=passwd crypt=0应该还可以象sock5一样建立logs表格来记录log信息,怕懒了就可以启动服务器了,通过test1,test2测试通过,它们登陆后相当与conf中定义的guest_username=vsftpd 用户,我系统中vsftpd用户的主目录是/dev/null,所以出错,我改为ftp,成功到/home/ftp下,并且就是根目录备注:1、vsftpd配置参数详细整理#接受匿名用户anonymous_enable=YES#匿名用户login时不询问口令no_anon_password=YES#匿名用户主目录anon_root=(none)#接受本地用户local_enable=YES#本地用户主目录local_root=(none)#如果匿名用户需要密码,那么使用banned_email_file里面的电子邮件地址的用户不能登录deny_email_enable=YES#仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录check_shell=YES#若启用此选项,userlist_deny选项才被启动userlist_enable=YES#若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录userlist_deny=NO#如果和chroot_local_user一起开启,那么用户锁定的目录来自/etc/passwd每个用户指定的目录(这个不是很清楚,很哪位熟悉的指点一下)passwd_chroot_enable=NO#定义匿名登入的使用者名称。
vsftp添加虚拟用户
之前配置的vsftp,为了省事和方便,都是用系统用户。
今天有人找我配置一个采用虚拟用户的系统CU看了看精华帖子,然后照做之,很容易就成功了需要说明的是,如果系统已经安装了rpm,可以直接修改rpm的配置文件rpm的配置文件在/etc/vsftpd/vsftpd.conf如果是tar源码安装,配置文件在/etc/vsftpd.confrpm的可执行文件在/usr/sbin/vsftpdtar的可执行文件在/usr/local/sbin/vsftpd不要在已经安装了rpm的情况下去用tar编译,我就是这么干的,结果弄的我晕死因为默认的PATH搜索路径中,/usr/sbin/ 是比/usr/local/sbin/优先的。
rpm安装很简单,tar安装也很简单,需要做的工作就是修改配置文件如果从源码安装,我们可以打开一些功能# vi builddefs.h \\编辑builddefs.h 文件,文件内容如下:#ifndef VSF_BUILDDEFS_H#define VSF_BUILDDEFS_H#undef VSF_BUILD_TCPWRAPPERS#define VSF_BUILD_PAM#undef VSF_BUILD_SSL把需要的功能前面的undef 改成define,然后编译就可以用了。
tcp_wrappers是一个比较有用的功能,创建必要的帐号,目录:# useradd nobody //可能你的系统已经存在此帐号,那就不用建立# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立# chown root:root /var/ftp# chmod og-w /var/ftp请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL 设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin#make#make install这样就安装完成了。
Linux的FTP的三种登录方式:
Linux的FTP的三种登录方式:我们登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。
匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。
本地用户登录:使用系统用户登录,在/etc/passwd中。
虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。
FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。
本文实验的Linux系统是CentOS 5 update2一、本地数据文件方式1.添加虚拟用户口令文件[root@CentOS5 /]#vi /etc/vsftpd/vftpuser.txt添加虚拟用户名和密码,一行用户名,一行密码,以此类推。
奇数行为用户名,偶数行为密码。
将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件。
首先查看系统有没有安装生成口令认证文件所需的软件db4-utils。
[root@CentOS5 /]#rpm –qa |grep db4-utils[root@CentOS5 /]#rpm –ivh db4-utils-4.3.29-9.fc6.i386.rpm下面使用db_load命令生成虚拟用户口令认证文件。
[root@CentOS5 /]#db_load –T –t hash –f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db3.编辑vsftpd的P AM认证文件在/etc/pam.d目录下,[root@CentOS5 /]#vi /etc/pam.d/vsftpd将里面其他的都注释掉,添加下面这两行:auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuseraccount required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser4.建立本地映射用户并设置宿主目录权限所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。
VSFTPD配置(匿名——本地用户——虚拟用户)
VSFTPD配置(匿名——本地⽤户——虚拟⽤户)1,下载VSFTPD.TAR.GZ程序下载地址:ftp:///users/cevans/2,检查和建⽴相应账户和⽬录1,nobody⽤户[root@main vsftpd-2.1.0]# cat /etc/passwd |grep nobodynobody:x:99:99:Nobody:/:/sbin/nologin如不存在请建⽴相关账户。
2,/usr/share/empty ⽬录,如不存在请创建3,如允许匿名访问,需创建Ftp⽤户,家⽬录为/var/ftp(⼀般ftp⽤户存在⽽家⽬录不存在)[root@main vsftpd-2.1.0]# mkdir /var/ftp/[root@main vsftpd-2.1.0]# chown root.root /var/ftp[root@main vsftpd-2.1.0]# chmod 755 /var/ftp3,解压、编译、安装程序(其实vsftpd⽤rpm和⽤源码安装差不多,编译安装反⽽不⽅便,推荐各位RPM安装,呵呵)[root@main ~]# tar xzfv vsftpd-2.1.0.tar.gz[root@main ~]# cd vsftpd-2.1.0[root@main vsftpd-2.1.0]# make && make install4,复制相关⽂件如果是⽤RPM安装,可能会和源码安装的⽂件路径略有不同,如/etc/vsftpd.conf变成了/etc/vsftpd/vsftpd.conf,这类变动请⾃⾏ find相关⽂件。
主配置⽂件[root@main vsftpd-2.1.0]# cp vsftpd.conf /etc/vsftpd.confPAM⾝份验证⽤⽂件[root@main vsftpd-2.1.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp5,配置vsftpd.conf启⽤/禁⽌匿名⽤户访问。
Linux vsftpd配置(含匿名帐户本地用户虚拟用户)
Linux vsftpd配置Linux下的ftp最常用的一種是vsftp(very security ftp),服務名稱叫做vsftpd,檢查vsftpd是否已安裝:rpm –qa | grep vsftpd,如果未安裝通過rpm –ivh vsftpd*或yum –y install vsftpd(已製作yum)來進行安裝,service vsftpd stop/start/restart/status開啟停止等操作,chkconfig vsftpd on/off或ntsysv命令打開圖形界面來管理該服務是否開機啟動。
Vsftp的配置文檔存放于/etc/vsftpd/vsftpd.conf,它支持兩種登錄方式,一種是匿名登錄,另一種是認證登錄,其中認證登錄又分為本地帳戶認證和虛擬帳戶認證。
剛開始學習vsftpd的配置時建議備份一份默認的配置:cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak。
一.匿名登錄該方式只要安裝好了vsftpd默認就可直接使用,登錄映射到的目錄是/var/ftp/,里面只有一個pub文件夾,pub只有只讀權限,改不了的,但可以在/var/ftp目錄下新建其它的文件夾則是可以通過修改/etc/vsftpd/vsftpd.conf來設定相關權限的。
二.本地帳戶登錄該類帳戶是Linux系統本地帳戶,只要你有Linux帳號那么就可以登錄到FTP。
但有一點需要注意,該類帳號默認登錄到的ftp目錄是本地帳戶的家目錄。
所以可以通過useradd –s account_name /sbin/nologin來創建無法登錄到Linux系統的帳戶來做ftp帳戶,但是要確保該帳號的家目錄被創建了哦,不然是會登錄不了的。
1.新建ftp1帳號,密碼123456,家目錄/var/ftp1。
useradd ftp1 -d /var/ftp1 -s /sbin/nologin 創建ftp1帳號passwd ftp1 修改ftp1的密碼2.將/etc/vsftpd/vsftpd.conf配置文件修改為如下內容,#注釋被刪除了。
vsftpd下设置多个虚拟用户使用同一个目录
vsftpd 下设置多个虚拟用户使用同一个目录企业环境 公司为了能够方便和合作伙伴沟通最新的产品信息,计划搭建 FTP 服务 器, 给合作伙伴提供相关文档的下载。
内部管理员对 FTP 服务器共享目录有 上传、下载、删除和修改产品信息的权限。
公司的合作伙伴能够使用 FTP 服务器进行上传和下载,但不可以删除数据。
并且保证服务器的稳定性,进 行适当优化设置~ 需求分析 根据企业的需求,对于不同用户进行不同的权限限制,FTP 服务器需要 实现用户的审核。
考虑到服务器的安全性,关闭实体用户登录,使用虚拟帐 号验证机制,并对不同虚拟帐号设置不同的权限。
同时为了保证服务器的性 能,还需要根据用户的等级,限制客户端的连接数及下载速度。
解决方案 首先用 vi 打开/etc/vsftpd/vsftpd.conf 这个配置文件,进入编辑模式,将 anonymous_enable=YES 的 YES 改为 NO(不让匿名用户访问 ftp 服务器) 1、建立虚拟用户文件vi /etc/vsftpd/vsftpd_virtualuser.txt admin desheng_ vip desheng@ #内部管理员账号 #内部管理员账号密码 #合作伙伴账号 #合作伙伴账号密码建立完成之后保存退出。
2、生成虚拟用户数据库 要生成用户数据库,需要用到 db_load 命令,可以用 rpm -qa | grep db4 命 令来查看是否有安装。
作者: 作者:江西新华电脑学院 2012-4-18db_load -T -t hash -f /etc/vsftpd/vsftpd_virtualuser.txt /etc/vsftpd/vsftpd_virtualuser.db3、配置 PAM 文件 若要服务器能够使用数据库文件,对客户端进行身份验证,就必须要修 改 vsftpd 对应的 PAM 配置文件/etc/pam.d/vsftpd。
vsFTP 认证文件的管理和虚拟用户管理
[002] 4072 len: 9 data: xuzh***
[003] 4062 len: 9 data: xuzh***
发现果然我想删除的用户都在这里呢
重新做一个db文件。(如果是同样的db文件名,貌似无法生效,需要改个名字。生成以后在/etc/pam.d/vsftpd这个文件中需要改里面配置的文件名。内容就是上面新生成的db文件的名字。)
root
[root@localhost ~]# groups
root
[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root)
查看vuser_passwd.db的内容
[root@localhost ~]# /usr/bin/db_dump -d a /etc/vsftpd/vuser_passwd.db
[root@localhost ~]# /usr/bin/db_dump -d a /etc/vsftpd/vuser_passwd.db
In-memory DB structure:
hash: 0x48000 (open called, read-only)
meta_pgno: 0
h_ffactor: 0
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_login.db
[root@localhost ~]# /usr/bin/db_dump -d a /etc/vsftpd/vuser_login.db
vsftpd虚拟用户配置步骤
vsftpd虚拟⽤户配置步骤yum -y install vsftpd*yum -y install db4*============================================================================先建⽴⼀个包含虚拟⽤户名及其⼝令的⽂本⽂件 , 然后在此基础上⽣成虚拟⽤户⼝令库⽂件 :#vim logins.txt添加以下信息 ( 单数⾏为⽤户名 , 偶数⾏为⼝令 ) :123 // ⽤户名456 // 密码:wq // 保存并退出==================================================================================db_load -T -t hash -f logins.txt /etc/vsftpd_login.dbchmod 600 /etc/vsftpd_login.db=============================================================================vi /etc/pam.d/ftp.vuauth required /lib/security/pam_userdb.so db=/etc/vsftpd_loginaccount required /lib/security/pam_userdb.so db=/etc/vsftpd_login==============================================================================建⽴虚拟⽤户访问⽬录并设置 virtual ⽤户访问的权限#useradd -d /var/ftp/share -s /sbin/nologin virtual#chmod 700 /var/ftp/share===================================================================================================== vim /etc/vsftpd/vsftpd.conf 在最下⾯添加chroot_local_user=YESguest_enable=YESguest_username=virtualpam_service_name=ftp.vuuser_config_dir=/etc/vsftpd_user_conf==================================================================================================建⽴ user_config_dir ⽂件⽬录,并创建以⽤户名命名的配置⽂件#mkdir /etc/vsftpd/user_config_dir#vi /etc/vsftpd/user_config_dir/1anon_world_readable_only=NO # 浏览权限anon_upload_enable=YES #?write_enable=YES # 上传权限download_enable=YES # 下载权限anon_other_write_enable=YES # 删除权限anon_mkdir_write_enable=YES # 建⽴⽂件夹权限local_root=/var/ftp/share/123 # 指定⽤户登陆的默认路径其他账户配置依以上参数并根据需要设定 ..===============================================================vim /etc/vsftpd_user_conf/123anon_world_readable_only=NOanon_upload_enable=YESwrite_enable=YESdownload_enable=YESanon_other_write_enable=YESanon_mkdir_write_enable=YESlocal_root=/var/ftp/share/123mkdir -p /var/ftp/share/123================================================每当在创建⼀个虚拟⽤户的步骤1 修改⼀下vim logins.txt 添加⽤户和密码2 在⽣成数据库db_load -T -t hash -f logins.txt /etc/vsftpd_login.dbchmod 600 /etc/vsftpd_login.db3在针对每个虚拟⽤户名设置不同的权限cp -p /etc/vsftpd_user_conf/123 /etc/vsftpd_user_conf/7894 设置 vim /etc/vsftpd_user_conf/789⽤户的权限anon_world_readable_only=NOanon_upload_enable=YESwrite_enable=YESdownload_enable=YESanon_other_write_enable=YESanon_mkdir_write_enable=YESlocal_root=/var/ftp/share/789======================================================= mkdir -p /var/ftp/share/789chown -R virtual.virtual /var/ftp/share。
Centos下vsftpd多用户安装配置
添加一个用户需要重新db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db一。
安装vsftp和db4yuminstall vsftpdyum install db4-utils.x86_64 (这里操作系统版本不一样,显示的库名也不一定一样,安装不了请先yum search db查询)二。
建立虚拟用户口令库文件cd /etc/vsftpd新建名为logins.txt的用户口令文件,nano /etc/vsftpd/logins.txt奇数行为用户名。
偶数行为密码,如下用户User1的密码为123456,User2的密码为12345 User1123456User212345adminadmin三。
生成vsftpd的认证文件使用db_load命令生成认证文件:db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db将vsftpd_login.db的权限设为只对root可读写,即600chmod 600 /etc/vsftpd/vsftpd_login.db四。
建立虚拟用户所需的PAM配置文件在/etc/pam.d目录中建立vsftpd.vu内容如下nano /etc/pam.d/vsftpd.vuauth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_loginaccount required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login上面两行注意了,有的64位的机器,路役可能不一样,如/lib64/security/pam……五。
建立虚拟用户所需的系统用户和主目录#group add ftpusers#useradd -d /www -g ftpusers -s /sbin/nologin upload ftpuser#chown –R ftpuser:ftpusers /www#mkdir /www/User1#chownftpuser:ftpusersi /www/User1#mkdir /www/User2#chownftpuser:ftpusersi /www/User2#chmod 700 /www六。
Centos6.7完美搭建Vsftp实现虚拟用户登陆
Centos6.7搭建Vsftp实现虚拟用户登陆前言:1.需求用户可以访问FTP上传下载删除等权限,2.禁止用户访问除自己目录以外的所有目录———由此用到chroot_list限制虚拟用户一.安装:1.安装Vsftpd服务相关部件:[root@KcentOS5 ~]# yum -y install vsftpd*2.确认安装PAM服务相关部件:[root@KcentOS5 ~]# yum -y install pam*开发包,其实不装也没有关系,主要的目的是确认PAM。
3.安装DB4部件包:这里要特别安装一个db4的包,用来支持文件数据库。
[root@KcentOS5 ~]# yum -y install db4*4.准备环境,防火墙添加允许vi /etc/sysconfig/iptables #编辑防火墙配置文件,添加下面红色部分进入iptables,说明:21端口是ftp服务端口;6000到7000是Vsftpd被动模式需要的端口,可自定义一段大于1024的tcp端口-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 6000:7000 -j ACCEPT :wq! #保存退出5.关闭selinux或者不关闭selinux添加selinux允许(1)关闭selinx:vi /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXTYPE=targeted #注释掉SELINUX=disabled #增加:wq! #保存退出setenforce 0 #使配置立即生效(2)不关闭seliux添加允许:查询selinux使用命令开启所有跟FTP有关的:例如:setsebool -P ftp_home_dir 1 然后重启vsftpd。
在vsftp中同时使用虚拟用户和本地用户
在vsftp中同时使用虚拟用户和本地用户系统为debian testing,vsftpd为2.0.1(我的系统为debian testing)一、以前由于我的ftp只是打算作为局域网内的一个个人资源站,除了对于同一个下载目录进行不同用户权限的配置以外,不需要考虑特殊的用户问题,所以我采用了vsftpd的PAM 认证的虚拟用户完成任务,也就是很常见的vsftpd虚拟用户配置,我设置的是对同一个目录对不痛虚拟用户设定不同的权限:1 先编辑vsftpd.conf文件,设定允许虚拟用户访问的基本设置确定文件中存在或者加入以下几项guest_enable=YES //允许虚拟用户访问guest_username=virtually //虚拟用户映射为本地的用户名,随便名称pam_service_name=vsfvtpdpam //pam文件的名称,我胡乱copy的名称,只要跟在/etc/pam.d 下面的文件名称一致就可以,这个文件一会儿再提user_config_dir=/etc/vsftpd_user //设定不同虚拟用户权限的目录,名字也都是可以随便的以上就在原来配置的基础上打开了虚拟用户访问。
2 设置PAM文件将/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/下的vsftpd.pam文件copy到/etc/pam.d 下,注意拷贝过来的名称要跟 1 中设置的pam_service_name的名字一致。
要是喜欢,也可以编辑拷贝过来的pam文件,修改其中的存放db口令库文件的位置。
3 编辑虚拟用户口令文件,可以随便写一个文件,比如yourname.txt,每一行一个字符串,其中单行为用户名,其下的双行为相应用户名的口令,比如cat //用户名yudiantou //cat虚拟用户的口令rain //其他想加入的虚拟用户名wahtisit //rain的口令shot //同上,虚拟用户名youdoing //shot口令4 使用上面的文件利用db3_load 命令生成PAM的口令库文件db3_load -T -t hash -f /path/to/yourname.txt /etc/vsftpd_login.db //这个是与vsftp.pam中指定的位置相一致的修改权限为600,chmod 600/etc/vsftpd_login.db5 由于前面在.conf文件中指定了虚拟用户对应于本地用户,所以要建立或确定指定的本地用户已经存在,而且它的家目录是你所要开放的ftp目录。
Centos7搭建vsftp并配置虚拟用户,实现多用户多权限
Centos7搭建vsftp并配置虚拟⽤户,实现多⽤户多权限⼀、安装ftp服务yum install -y vsftp# 安装虚拟⽤户数据库yum -y install libdb-utils⼆、增加⼀个系统⽤户‘virftp’ ,所有虚拟⽤户都会映射到此⽤户后对⽂件系统进⾏读写操作#添加⽤户,⽤户登录时使⽤nologinuseradd -s /sbin/nologin virftp#设置⽤户密码passwd virftp三、配置vsftp主配置⽂件#备份vsftpd主配置⽂件cp /etc/vsftpd/vsftpd.conf{,.bak}#查看过滤配置⽂件注释后内容grep -v "#" /etc/vsftpd/vsftpd.confvim /etc/vsftpd/vsftpd.conf#禁⽌匿名⽤户登录anonymous_enable=NO#允许本地⽤户登录local_enable=YES#启⽤虚拟账户guest_enable=YES#把虚拟账户映射到系统账户virftpguest_username=virftp#使⽤虚拟⽤户验证(PAM验证)pam_service_name=vsftpd#设置存放各虚拟⽤户配置⽂件的⽬录(此⽬录下与虚拟⽤户名相同的⽂件为它的配置⽂件)user_config_dir=/etc/vsftpd/vsftpd_viruser#启⽤chroot时,虚拟⽤户根⽬录允许写⼊allow_writeable_chroot=YES#被动模式,⽂件传输端⼝的最⼤最⼩范围pasv_min_port=30000pasv_max_port=35000四、配置vsftpd pam验证⽂件#备份cp /etc/pam.d/vsftpd{,.bak}#将auth及account的所有配置⾏均注释掉,再添加如下两⾏vim /etc/pam.d/vsftpdauth required pam_userdb.so db=/etc/vsftpd/vir_useraccount required pam_userdb.so db=/etc/vsftpd/vir_user五、配置虚拟⽤户访问vsftpd服务#创建虚拟⽤户密码⽂件(奇数⾏为帐号,偶数⾏为密码)vim /etc/vsftpd/vir_usertest01pwd_test01test02pwd_test02六、配置虚拟⽤户各⾃的配置⽂件#创建‘虚拟⽤户配置⽂件’的存放⽬录mkdir /etc/vsftpd/vsftpd_viruser/#创建和配置虚拟⽤户各⾃的配置⽂件(⽂件名称是‘虚拟⽤户名’)vim /etc/vsftpd/vsftpd_viruser/test01# 允许写⼊write_enable=YES#允许浏览FTP⽬录和下载anon_world_readable_only=NO#禁⽌⽤户下载#download_enable=NO# 允许虚拟⽤户上传⽂件anon_upload_enable=YES# 允许虚拟⽤户创建⽬录anon_mkdir_write_enable=YES# 允许虚拟⽤户执⾏其他操作(如改名、删除)anon_other_write_enable=YES# 上传⽂件的掩码,如022时,上传⽬录权限为755,⽂件权限为644anon_umask=022# 指定虚拟⽤户的虚拟⽬录(虚拟⽤户登录后的主⽬录,即登录ftp后访问的根⽬录)local_root=/home/virftp/test01七、⽣成虚拟⽤户数据库db_load -T -t hash -f /etc/vsftpd/vir_user /etc/vsftpd/vir_user.dbchmod700 /etc/vsftpd/vir_user.db⼋、创建虚拟⽤户的根⽬录,要保证虚拟⽤户映射的系统⽤户,对这个根⽬录有读写权限#创建虚拟⽤户对应根⽬录mkdir -p /home/virftp/test01#修改⽬录权限chown -R virftp.virftp /home/virftp/test01九、重启服务systemctl restart vsftpd#开放端⼝firewall-cmd --zone=public --add-port=21/tcp --permanentfirewall-cmd --zone=public --add-port=30000-35000/tcp --permanentfirewall-cmd --reload注:若添加新虚拟⽤户,创建⽤户对应根⽬录⽂件夹、在/etc/vsftpd/vsftpd_viruser/⽬录下创建⽤户名为⽂件名的配置⽂件,/etc/vsftpd/vir_user⽂件中添加帐号密码#再执⾏db_load -T -t hash -f /etc/vsftpd/vir_user /etc/vsftpd/vir_user.db#重启服务systemctl restart vsftpd#被动模式,⽂件传输端⼝的最⼤最⼩范围pasv_min_port=30000pasv_max_port=35000。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
# directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). chroot_local_user=YES chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd/chroot_list # # You may activate the "-R" option to the builtin ls. This is disabled by # default to avoid remote users being able to cause excessive I/O on large # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume # the presence of the "-R" option, so there is a strong case for enabling it. #ls_recurse_enable=YES # # When "listen" directive is enabled, vsftpd runs in standalone mode and # listens on IPv4 sockets. This directive cannot be used in conjunction # with the listen_ipv6 directive. listen=YES # listen_port=21 # This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6 # sockets, you must run two copies of vsftpd with two configuration files. # Make sure, that one of the listen options is commented !! #listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_deny=YES tcp_wrappers=YES #cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RNT O,SIZE,STC #enable virtual user guest_enable=YES #指定虚拟用户的宿主用户 guest_username=ftp #设定虚拟用户的权限符合他们的宿主用户 virtual_use_local_privs=YES #设定虚拟用户个人 Vsftp 的配置文件存放路径,也就是说,这个被指定的目录里,将存放每个 Vsftp 虚拟用
# a different user. Note! Using "root" for uploaded files is not # recommended! #chown_uploads=YES #chown_username=whoever # # The name of log file when xferlog_enable=YES and xferlog_std_format=YES # WARNING - changing this filename affects /etc/logrotate.d/vsftpd.log xferlog_file=/var/log/vsftpd.log # # Switches between logging into vsftpd_log_file and xferlog_file files. # NO writes to vsftpd_log_file, YES to xferlog_file xferlog_std_format=YES # # You may change the default value for timing out an idle session. #idle_session_timeout=600 # # You may change the default value for timing out a data connection. #data_connection_timeout=120 # # It is recommended that you define on your system a unique user which the # ftp server can use as a totally isolated and unprivileged user. #nopriv_user=ftpsecure # # Enable this and the server will recognise asynchronous ABOR requests. Not # recommended for security (the code is non-trivial). Not enabling it, # however, may confuse older FTP clients. async_abor_enable=YES # # By default the server will pretend to allow ASCII mode but in fact ignore # the request. Turn on the below options to have the server actually do ASCII # mangling on files when in ASCII mode. # Beware that on some FTP servers, ASCII support allows a denial of service # attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd # predicted this attack and has always been safe, reporting the size of the # raw file. # ASCII mangling is a horrible feature of the protocol. ascii_upload_enable=YES ascii_download_enable=YES # # You may fully customise the login banner string: ftpd_banner=Welcome to blah FTP service. # # You may specify a file of disallowed anonymous e-mail addresses. Apparently # useful for combatting certain DoS attacks. #deny_email_enable=YES # (default follows) #banned_email_file=/etc/vsftpd/banned_emails # # You may specify an explicit list of local users to chroot() to their home
户个性的配置文件,一个需要注意的地方就是这些配置文件名必须和虚拟用户名相同。
user_config_dir=/etc/vsftpd/vconf
2.建立 Vsftpd 的日志文件,并更该属主为 Vsftpd 的服务宿主用户 touch /var/log/vsftpd.log chown ftp.ftp /var/log/vsftpd.log 3.建立虚拟账号存取文件路径 mkdir /etc/vsftpd/vconf/
# Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=YES # # Uncomment this to enable any form of FTP write command. write_enable=YES # # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) local_umask=022 # # Uncomment this to allow the anonymous FTP user to upload files. This only # has an effect if the above global write enable is activated. Also, you will # obviously need to create a directory writable by the FTP user. #anon_upload_enable=YES # # Uncomment this if you want the anonymous FTP user to be able to create # new directories. #anon_mkdir_write_enable=YES # # Activate directory messages - messages given to remote users when they # go into a certain directory. dirmessage_enable=YES # # The target log file can be vsftpd_log_file or xferlog_file. # This depends on setting xferlog_std_format parameter xferlog_enable=YES # # Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES # # If you want, you can arrange for uploaded anonymous files to be owned by