• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    浅析Linux中vsftpd服务配置(匿名,用户,虚拟用户)

    vsftpd概述

    vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。

    特点

    非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高

    小巧轻快,安全易用。

    ftp、sftp、vsftp、vsftpd这四个的区别

    ftp 是File Transfer Protocol的缩写,文件传输协议,用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。

    sftp 是SSH File Transfer Protocol的缩写,安全文件传输协议;

    vsftp 是一个基于GPL发布的类Unix系统上使用的ftp服务器软件,它的全称是Very Secure FTP从此名称可以看出来,编制者的初衷是代码的安全;

    vsftpd 是very secure FTP daemon的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件;

    一,匿名用户登录ftp(文件在/var/ftp)

    1,安装vsftpd服务

    [root@localhost ~]# yum install vsftpd -y ##安装服务
    [root@localhost ~]# cd /etc/vsftpd/ ##此目录是配置文件目录
    [root@localhost vsftpd]# ls
    ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
    [root@localhost vsftpd]# systemctl start vsftpd ##开启vsftpd服务
    [root@localhost vsftpd]# systemctl stop firewalld.service ##关闭防火墙
    [root@localhost vsftpd]# setenforce 0 ##关闭增强功能
    [root@localhost vsftpd]# ls /var/ftp/ ##切换到ftp目录下
    pub
    [root@localhost vsftpd]# echo "this is test" > /var/ftp/test.txt ##添加一个文本文件

    2,用测试机cmd访问vsftpd服务(cmd连接ftp)并下载文件

    C:\Users\xy007>ftp 192.168.13.140 ##访问ftp服务
    连接到 192.168.13.140。
    220 (vsFTPd 3.0.2)
    200 Always in UTF8 mode.
    用户(192.168.13.140:(none)): ftp ##匿名访问
    331 Please specify the password.
    密码: 
    ##密码无 回车
    230 Login successful.
    ftp> pwd  ##查看当前路径
    257 "/"  ##ftp服务的根目录
    ftp> ls -a  ##查看目录中的内容
    200 PORT command successful. Consider using PASV.
    150 Here comes the directory listing.
    .
    ..
    pub
    test.txt  ##服务器中的文件
    226 Directory send OK.
    ftp: 收到 25 字节,用时 0.00秒 25000.00千字节/秒。
    ftp> get test.txt ##下载文件到本地(在哪个磁盘的访问就下载到哪里,可以切换磁盘来下载e:)
    200 PORT command successful. Consider using PASV.
    150 Opening BINARY mode data connection for test.txt (13 bytes).
    226 Transfer complete.
    ftp: 收到 13 字节,用时 0.00秒 13000.00千字节/秒。
    ftp> put test1.txt ##在c盘中创建一个test1.txt然后上传到Linux中
    200 PORT command successful. Consider using PASV.
    550 Permission denied. ##此时是权限受限的
    Linux中vsftpd服务配置(匿名,用户,虚拟用户)

    3,修改vsftpd配置文件将匿名访问开启最大权限

    [root@localhost ftp]# cd /etc/vsftpd/
    [root@localhost vsftpd]# vim vsftpd.conf
    ##在配置文件中查找开启下列选项
    anonymous_enable=YES ##开启匿名用户
    local_enable=YES ##本地用户
    write_enable=YES ##写入权限
    local_umask=022 ##本地用户反掩码
    anon_upload_enable=YES ##上传权限开启
    anon_mkdir_write_enable=YES ##开启创建目录并且能够写入
    anon_other_write_enable=YES ##添加一个other的重命名和删除的权限
    [root@localhost vsftpd]# systemctl restart vsftpd ##重启服务
    [root@localhost vsftpd]# cd /var/ftp/ ##切换到ftp目录下
    [root@localhost ftp]# ls
    pub test.txt
    [root@localhost ftp]# ls -l
    总用量 4
    drwxr-xr-x. 2 root root 6 10月 31 2018 pub
    -rw-r--r--. 1 root root 13 11月 5 19:14 test.txt
    [root@localhost ftp]# chmod 777 pub ##将pub目录权限给最大,注意不能直接给ftp权限最大

    4,用测试机cmd访问ftp并上传本地文件到Linux上

    C:\Users\xy007>ftp 192.168.13.140 ##访问ftp服务
    连接到 192.168.13.140。
    220 (vsFTPd 3.0.2)
    200 Always in UTF8 mode.
    用户(192.168.13.140:(none)): ftp
    331 Please specify the password.
    密码:
    230 Login successful.
    ftp> cd pub/    ##切换到pub目录下
    250 Directory successfully changed.
    ftp> put test1.txt   ##上传文件
    200 PORT command successful. Consider using PASV.
    150 Ok to send data.
    226 Transfer complete.
    ftp: 发送 13 字节,用时 0.03秒 0.41千字节/秒。
    ftp> by ##退出
    221 Goodbye.
    ##你也可以使用delete删除文件

    5,查看上传的文件

    [root@localhost ftp]# cd /var/ftp/pub ##切换到pub目录下
    [root@localhost pub]# ls ##查看上传的文件
    test1.txt

    二,利用本地用户登录ftp(文件在家目录)

    防止本地用户访问系统目录,限制仅访问用户家目录

    1,创建系统用户

    [root@localhost pub]# useradd zhangsan ##创建用户并设置用户密码
    [root@localhost pub]# passwd zhangsan
    [root@localhost pub]# useradd lisi ##创建用户并设置用户密码
    [root@localhost pub]# passwd lisi

    2,测试机上cmd使用用户登录ftp

    C:\Users\xy007>ftp 192.168.13.140 ##登录ftp服务
    连接到 192.168.13.140。
    220 (vsFTPd 3.0.2)
    200 Always in UTF8 mode.
    用户(192.168.13.140:(none)): zhangsan ##使用本地用户
    331 Please specify the password.
    密码:
    230 Login successful.
    ftp> ls / ##查看用户/下的目录文件,直接到系统根目录下
    200 PORT command successful. Consider using PASV.
    150 Here comes the directory listing.
    /bin
    /boot
    /dev
    /etc
    /home
    /lib
    /lib64
    /media
    /mnt
    /opt
    /proc
    /root
    /run
    /sbin
    /srv
    /sys
    /tmp
    /usr
    /var
    226 Directory send OK.
    ftp: 收到 126 字节,用时 0.02秒 7.88千字节/秒。

    3,防止本地用户访问系统目录,限制仅访问用户家目录

    [root@localhost pub]# vim /etc/vsftpd/vsftpd.conf ##修改配置文件
    chroot_local_user=YES ##开启限制本地访问系统目录模块
    allow_writeable_chroot=YES ##添加写的权限
    [root@localhost pub]# systemctl restart vsftpd ##重启服务

    4,测试机cmd访问

    C:\Users\xy007>ftp 192.168.13.140 ##访问ftp
    连接到 192.168.13.140。
    220 (vsFTPd 3.0.2)
    200 Always in UTF8 mode.
    用户(192.168.13.140:(none)): zhangsan ##用户zhangsan
    331 Please specify the password.
    密码:
    230 Login successful.
    ftp> cd / ##切换到系统根目录
    250 Directory successfully changed.
    ftp> ls ##查看发现还是在用户的家目录中,访问不到系统的其他目录了,增强了安全性
    200 PORT command successful. Consider using PASV.
    150 Here comes the directory listing.
    226 Directory send OK.
    设置允许,拒绝指定用户访问ftp
    1,设置user-list(默认拒绝),允许或者拒绝特定用户登录ftp
    [root@localhost pub]# cd /etc/vsftpd/ ##切换到vsftpd配置文件目录
    [root@localhost vsftpd]# vim vsftpd.conf
    
    userlist_enable=YES ##确认user-list开启
    
    [root@localhost vsftpd]# ls
    ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
    [root@localhost vsftpd]# echo "zhangsan" >> user-list ##将zhangsan用户添加到列表中
    [root@localhost vsftpd]# systemctl restart vsftpd ##重启服务
    2,用测试机cmd测试
    C:\Users\xy007>ftp 192.168.13.140
    连接到 192.168.13.140。
    220 (vsFTPd 3.0.2)
    200 Always in UTF8 mode.
    用户(192.168.13.140:(none)): zhangsan ##使用zhangsan登录
    530 Permission denied.
    登录失败。     ##直接拒绝登录
    ftp>

    3,设置列表为仅允许

    [root@localhost ftp]# cd /etc/vsftpd/
    [root@localhost vsftpd]# vim vsftpd.conf ##配置vsftpd配置文件
    userlist_enable=YES
    userlist_deny=NO ##添加列表允许
    
    [root@localhost vsftpd]# systemctl restart vsftpd ##重启服务

    4,测试机cmd测试

    C:\Users\xy007>ftp 192.168.13.140
    连接到 192.168.13.140。
    220 (vsFTPd 3.0.2)
    200 Always in UTF8 mode.
    用户(192.168.13.140:(none)): zhangsan ##用zhangsan去登录
    331 Please specify the password.
    密码:
    230 Login successful. ##登录成功
    ftp> by
    221 Goodbye.
    
    C:\Users\xy007>ftp 192.168.13.140
    连接到 192.168.13.140。
    220 (vsFTPd 3.0.2)
    200 Always in UTF8 mode.
    用户(192.168.13.140:(none)): lisi ##用lisi去登录
    530 Permission denied.
    登录失败。    ##登录失败

    三,建立虚拟用户账户使用ftp(文件在系统用户vuser家目录)

    1,创建虚拟用户文件

    [root@localhost vsftpd]# cd /etc/vsftpd/ ##切换到配置文件目录下
    [root@localhost vsftpd]# vim vuser ##创建虚拟用户文件
    
    lisa  ##奇数行为用户名
    123123 ##偶数行为密码
    tom
    123123
    

    2,转换数据库文件,设置安全权限

    [root@localhost vsftpd]# db_load -T -t hash -f vuser vuser.db ##将vuser转换成数据库文件
    ##T转换,t类型,f指定文件
    [root@localhost vsftpd]# chmod 600 vuser ##安全起见,不让别人看到,设置权限
    [root@localhost vsftpd]# chmod 600 vuser.db

    3,编辑pam认证模块支持虚拟用户登录

    [root@localhost vsftpd]# useradd -d /opt/vuser -s /sbin/nologin vuser 
    ##创建系统用户,指定家目录,不能登录
    [root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu ##编译pam认证模块
    
    auth required pam_userdb.so db=/etc/vsftpd/vuser ##识别转换过的数据库文件
    account required pam_userdb.so db=/etc/vsftpd/vuser ##连接的密码服务

    4,开启虚拟用户,使用pam模块认证登录

    [root@localhost vsftpd]# vim vsftpd.conf ##修改配置文件
    ##大G到末行
    #pam_service_name=vsftpd ##注释
    ##添加下面三行内容
    guest_enable=YES  ##开启来宾用户访问
    guest_username=vuser ##使用vuser用户名
    pam_service_name=vsftpd.vu ##pam模块
    [root@localhost vsftpd]# systemctl restart vsftpd ##重启服务

    5,测试机cmd测试

    C:\Users\xy007>ftp 192.168.13.140
    连接到 192.168.13.140。
    220 (vsFTPd 3.0.2)
    200 Always in UTF8 mode.
    用户(192.168.13.140:(none)): tom ##使用虚拟用户tom登录
    331 Please specify the password.
    密码:
    230 Login successful.
    ftp> put test1.txt ##上传一个文件
    200 PORT command successful. Consider using PASV.
    150 Ok to send data.
    226 Transfer complete.
    ftp: 发送 13 字节,用时 0.00秒 13000.00千字节/秒。
    ##查看文件的权限为600
    [root@localhost vsftpd]# ls -l /opt/vuser/
    总用量 4
    -rw-------. 1 vuser vuser 13 11月 5 22:51 test1.txt

    6,单独用户配置,指定上传文件的权限644

    [root@localhost vsftpd]# vim vsftpd.conf 
    ##大G末行添加
    user_config_dir=/etc/vsftpd/vu_dir ##单独用户配置文件夹
    [root@localhost vsftpd]# mkdir vu_dir ##创建文件夹
    [root@localhost vsftpd]# cd vu_dir/
    [root@localhost vu_dir]# vim lisa ##在配置文件夹里创建用户配置文件
    anon_umask=022 ##指定上传文件的权限
    [root@localhost vu_dir]# systemctl restart vsftpd ##重启服务
    
    

    7,测试机cmd使用lisa用户登录,查看上传文件权限

    C:\Users\xy007>ftp 192.168.13.140
    连接到 192.168.13.140。
    220 (vsFTPd 3.0.2)
    200 Always in UTF8 mode.
    用户(192.168.13.140:(none)): lisa ##使用lisa登录
    331 Please specify the password.
    密码:
    230 Login successful.
    ftp> put 111.txt ##上传文件
    200 PORT command successful. Consider using PASV.
    150 Ok to send data.
    226 Transfer complete.
    ftp: 发送 13 字节,用时 0.00秒 13000.00千字节/秒。
    
    [root@localhost vu_dir]# ls -l /opt/vuser/ ##查看上传文件的权限
    总用量 8
    -rw-r--r--. 1 vuser vuser 13 11月 5 22:58 111.txt ##lisa上传文件权限644
    -rw-------. 1 vuser vuser 13 11月 5 22:51 test1.txt ##tom上传文件权限600

    总结

    以上所述是小编给大家介绍的Linux中vsftpd服务配置(匿名,用户,虚拟用户),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
    如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

    上一篇:Linux虚拟机修改ip地址,查看网关,网络环境配置的教程
    下一篇:windows2008 server子域加入父域时提示错误 域已经存在
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    浅析Linux中vsftpd服务配置(匿名,用户,虚拟用户) 浅析,Linux,中,vsftpd,服务,