首页 > 代码库 > Linux vsftp 配置

Linux vsftp 配置

1. 配置vsftpd虚拟用户登录及权限

2. 配置vsftp系统用户登录及控制用户访问

3. 配置vsftp+pam+mysql及权限设置


实验 /etc/init.d/iptables stop  setenforce 0 (关闭防火墙,以免出错误。)

首先安装  yum install vsftpd -y

/etc/init.d/vsftpd start  这个装好其实就可以启动的。

可以用 ss -tnlp | grep :21 查看启动没。

cd /etc/vsftpd  进入目录后可以看到有个 vsftpd.conf配置文件

cp vsftpd.conf{,.bak} 拷贝一份在当前目录

vim(vi) vsftpd.conf 进入配置文件

下面是一些主要配置文件内容

匿名用户
   anonymous_enable=YES          #是否允许匿名账户登录FTP服务器               
   anon_upload_enable=YES        #匿名用户的上传操作;生效要依赖于write_enable=YES;
   anon_mkdir_write_enable=YES   #匿名用户创建目录的权限
   anon_other_write_enable=YE    #匿名用户的删除及重命名操作权限

系统用户
   local_enable=YES              #是否允许本地账户登录FTP服务器
   write_enable=YES              #是否开启目录上次权限(控制所有账户)
#虚拟用户
   guest_enable=YES             #定启用虚拟用户功能
   guest_username=vsftpd        #指定虚拟用户的宿主用户
   virtual_use_local_privs=YES  #设定虚拟用户的权限符合他们的宿主用户
   user_config_dir=/etc/vsftpd/vconf    #设定虚拟用户配置文件存放路径

上传文件的属主设置
   chown_uploads=YES            #是否修改;
   chown_username=USERNAM       #启用chown_uploads指令时,将文件属主修改为此指令指定的用户;默认为root;

系统用户chroot()
chroot_local_user=YES   #所有用户都锁定,不予许在其家目录有写权限,即那ftp用户      
                       #不用于登录系统的账号对于"home-user"的根没有写权限
                       #或针对用户对家目录有些权限的账户开启白名单
                       #YES开启白名单,NO开启黑名单

chroot_list_enable=YES  #开启名单功能,不开启则禁锢所有用户,要先开启锁定
chroot_list_file=/etc/vsftpd/chroot_list    #白/黑名单              

userlist_enable=YES #user_list控制用户访问
userlist_deny=YES   #vsftpd自带的用户登录控制,默认为YES/黑名单,NO为白名单,黑名单直接无法输入密码pam则是给允许登录用户的认证

认证服务:
       pam_service_name=vsftpd         #/etc/pam.d/vsftpd

日志记录
   xferlog_file=/var/log/vsftpd.log   #文件要手动建立,vsftpd用户对日志文件vsftpd.log的读写权限,否则服务将启动失败。

其他
   #idle_session_timeout=600    #设定空闲连接超时时间,单位秒
   #data_connection_timeout=120   #设定单次最大连续传输时间,单位秒
   #ftpd_banner=Welcome to blah FTP service.  #设定Vsftpd的登陆标语
   ls_recurse_enable=NO     #禁止"ls -R"的命令,安全设定
   listen=YES     #设Vsftpd独立守护进程,否则由xinetd代理

已创建一个系统用户 user1

 local_enable=YES   控制是否允许本地用户登录 YES 为是 NO 为否

技术分享

技术分享

技术分享

技术分享

控制用户访问: vsftpd.conf配置文件里倒数第二行有 userlist_enable=yes 默认开启。

然后 vsftpd文件夹内就有user_list文件 可用cat user_list查看文件内容。

技术分享

在红框内的用户是不能登录的。想要其他用户也登录不了,可以自行加进去用户名。

(如果你把第一个红框内的内容输入到vsftpd.conf文件里,则只有第二个红框内的用户可登录)


首先去找一个    pam_mysql的epel源 下载 安装。

yum install mysql-server mysql-devel pam_mysql -y 

下载其他包 安装。

/etc/init.d/mysqld start   启动服务

ss -tnlp | grep :3306   可以用这个命令来查看这个服务开启没

接下来就直接输入 mysql 就能登录进去了

下图是一些操作命令

技术分享

下图是授权

技术分享

接着 exit; 退出即可。

然后输入命令 进入mysql

技术分享

创建2个虚拟用户 要来测试技术分享

现在即可 配置vsftpd

首先 建立pam认证所需文件

技术分享

建立虚拟用户映射的系统用户及对应的目录

useradd -s /sbin/nologin -d /var/ftproot vuser

chmod go+rx /var/ftproot


请确保/etc/vsftpd.conf中已经启用了以下选项

anonymous_enable=NO

local_enable=YES

write_enable=YES

anon_upload_enable=NO

anon_mkdir_write_enable=NO

chroot_local_user=YES

而后添加以下选项

guest_enable=YES

guest_username=vuser


然后启动vsftpd服务。查看下端口开启情况

技术分享

接下来用虚拟用户登录 检测配置结果

技术分享

配置vsftpd为虚拟用户使用配置文件目录

vim /etc/vsftpd/vsftpd.conf

在里面添加一项

user_config_dir=/etc/vsftpd/vusers_config 

创建所需要目录,并为虚拟用户提供配置文件

mkdir /etc/vsftpd/vusers_config/

cd /etc/vsftpd/vusers_config/

touch lan drr

然后在 lan drr 文件里添加一些内容  如下图

技术分享

接下来检测 结果了这是 drr 用户的

技术分享

技术分享

技术分享

现在测试 lan用户的

技术分享

技术分享

技术分享

这个是补的 lftp的 drr 用户

技术分享

这样就OK了。也说明lftp是没问题的。是我设置的权限 限制了用户。

以上就是 这是实验结果了。

Linux vsftp 配置