vsftpd_vsftpd 安装包 - CSDN
vsftpd 订阅
vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。此外,本文还介绍了FTP基本原理,以及FTP用户管理方面的基础知识。 [1] 展开全文
vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。此外,本文还介绍了FTP基本原理,以及FTP用户管理方面的基础知识。 [1]
信息
缩    写
vsftpd
特    点
安全性
性    质
服务器的名字
外文名
very secure FTP daemon
vsftpd简介
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。 [2]  vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。在开源操作系统中常用的FTPD套件主要还有ProFTPD、PureFTPd和wuftpd等
收起全文
精华内容
参与话题
  • Linux:FTP服务器 vsftpd 的搭建和配置

    万次阅读 2019-01-09 15:41:06
    Vsftpd(Very Secure FTP Daemon)是一个在 Linux/Unix 系统上运行的一款开源免费的 FTP 服务器软件。 Vsftp 支持支持 匿名用户、本地用户、虚拟用户 3种登录方式。 Vsftp 高速安全,支持带宽限制,支持IPV6,可分配...

    本文链接: https://blog.csdn.net/xietansheng/article/details/84145618

    vsftpd(Very Secure FTP Daemon)是一个在 Linux/Unix 系统上运行的一款开源免费的 FTP 服务器软件。vsftpd 支持支持 匿名用户、本地用户、虚拟用户 3种登录方式。vsftpd 高速安全,支持带宽限制,支持IPv6,可分配虚拟IP,支持创建虚拟用户。

    相关网站:

    1. FTP 服务器搭建

    1.1 安装 vsftpd(Ubuntu)

    sudo apt-get install vsftpd
    

    查看 vsftpd 是否正在运行并监听 21 端口

    netstat -npl | grep :21
    

    其他 vsftpd 服务管理命令

    sudo service vsftpd start             # 启动 vsftpd 服务
    sudo service vsftpd stop              # 关闭 vsftpd 服务
    sudo service vsftpd restart           # 重新启动 vsftpd 服务
    sudo service vsftpd status            # 查看 vsftpd 服务状态
    

    vsftpd 服务安装完成并启动后,即可直接使用当前 Liunx 系统用户名和密码进行访问:

    ftp localhost       # 回车后输入 Linux系统 用户名 和 密码,登录
    ls                  # 登录后默认显示的是用户主目录,输入 help 回车查看所有操作命令
    

    1.2 vsftpd 配置

    vsftpd 配置文件路径: /etc/vsftpd.conf

    # 先备份原配置文件
    sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_backup
    
    # 打开配置文件
    sudo vim /etc/vsftpd.conf
    
    # 打开配置文件后, 配置下面的字段, 如果字段被注释, 则打开注释
    listen=YES
    local_enable=YES
    write_enable=YES
    

    配置完成后,sudo service vsftpd restart重启服务,用本地用户(Linux系统标准用户)的 用户名 和 密码 登录FTP。

    1.3 限制用户登录 /etc/ftpusers

    /etc/ftpusers文件内的用户名禁止登录 FTP,文件内已有的默认禁止的用户名有 root、daemon、bin、sys 等。如果需要禁止某个用户登录,可将用户名添加到该文件(每行一个用户名)。该文件由 PAM 模块的/etc/pam.d/vsftpd配置文件指定:

    # Standard behaviour for ftpd(8).
    auth	required	pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
    
    # Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.
    
    # Standard pam includes
    @include common-account
    @include common-session
    @include common-auth
    auth	required	pam_shells.so
    

    vsftpd 也有自己的限制用户登录的管理机制,详见/etc/vsftpd.conf文件中userlist_file字段介绍。

    PS: 如果有本地用户没有在 /etc/ftpusers 文件内,却依然无法登录,打开sudo vim /etc/pam.d/vsftpd,找到下面这句话,注释掉,重启服务,再尝试登录:

    #auth	required	pam_shells.so
    

    1.4 其他 vsftpd 配置字段说明(vsftpd.conf)

    #
    # 1. 监听相关
    #
    listen=<YES/NO>                     # YES: 服务以独立运行方式运行; NO: 运行在 xinetd 内。 默认为 YES
    listen_address=<ip address>         # 服务监听地址, 如果有多个网卡, 需要将服务绑定到指定 IP 地址
    listen_port=<port>                  # 服务监听端口, 默认为 21
    
    #
    # 2. 匿名用户相关
    #
    anonymous_enable=<YES/NO>           # 是否允许匿名用户访问, 默认 NO
    anon_mkdir_write_enable=<YES/NO>    # 是否允许匿名用户创建文件夹, 默认 NO
    anon_other_write_enable=<YES/NO>    # 是否允许匿名用户其他的写权限, 创建文件、重命名、删除文件等权限(默认为 NO, 基于安全性考虑这个权限一般不打开)
    anon_upload_enable=<YES/NO>         # 是否允许匿名用户上传, 默认 NO
    anon_umask=<nnn>                    # 匿名用户上传的文件的生成掩码, 默认为077
    anon_max_rate=<n>                   # 匿名用户的最大传输速率, 单位为 Byte/s, 值为 0 表示不限制
    anon_world_readable_only=<YES/NO>   # 是否允许匿名用户只读浏览
    
    #
    # 3. 本地用户(Linux标准系统用户)相关
    #
    local_enable=<YES/NO>               # 是否支持本地用户帐号访问
    write_enable=<YES/NO>               # 是否开放本地用户的写权限
    local_umask=<nnn>                   # 本地用户上传的文件的生成掩码, 默认为077
    local_max_rate=<n>                  # 本地用户最大的传输速率, 单位为 Byte/s,值为 0 表示不限制
    local_root=<file>                   # 本地用户登陆后的目录,默认为 本地用户 的 主目录
    
    chroot_local_user=<YES/NO>          # 本地用户是否可以执行 chroot, 默认为 NO
    chroot_list_enable=<YES/NO>         # 是否只有指定的用户才能执行 chroot, 默认为 NO
    chroot_list_file=<filename>         # 当 chroot_local_user=NO 且 chroot_list_enable=YES 时,
                                        # 只有 filename 文件内指定的用户(每行一个用户名)可以执行 chroot,
                                        # 默认值为 /etc/vsftpd.chroot_list
    
    #
    # 4. 本地用户 黑/白名单管理
    #
    userlist_enable=<YES/NO>    # 是否启用 userlist_file 白/黑名单用户列表, 默认为 NO
    
    userlist_deny=<YES/NO>      # 当 userlist_enable=YES(即启用 userlist_file )时, 则该字段才有效。
                                # userlist_deny=YES: userlist_file 为 黑名单, 即在该文件内的用户均不可登录, 其他用户可以登录
                                # userlist_deny=NO:  userlist_file 为 白名单, 即在该文件内的用户才可以登录, 其他用户均不可登录
    
    userlist_file=<filename>    # 黑/白名单用户列表文件(每行一个用户名), 
                                # 是黑名单还是白名单, 根据 userlist_deny 的值决定,
                                # 默认值为 /etc/vsftpd.user_list
    
    #
    # 5. 连接相关
    #
    ftpd_banner=<message>               # 客户端连接服务器后显示的欢迎信息
    connect_timeout=<n>                 # 远程客户端响应端口数据连接超时时间, 单位为秒, 默认 60
    accept_connection_timeout=<n>       # 空闲的数据连接超时时间, 单位为秒, 默认 120
    data_connection_timeout=<n>         # 空闲的用户会话超时时间, 单位为秒, 默认 300
    max_clients=<n>                     # 在独立模式运行时, 最大连接数, 0 表示无限制
    max_per_ip=<n>                      # 在独立模式运行时, 每 IP 的最大连接数, 0表示无限制
    

    其他详细配置介绍参考:

    2. 守护程序 xinetd

    上面所说的 vsftpd 服务均是以比较常用的 standalone 模式独立运行,除此之外还可以以 super daemon 的模式由 xinetd 管理运行。

    xinetd 是 Linux 守护进程服务程序,将服务集中管理。许多服务进程只有偶尔才需要用到,为了节省资源,可以交由 xinted 代理监听相应的端口,一旦有请求到达这个端口,先到达 xinted,xinted 根据请求的端口,临时启动相应的服务进程处理请求,响应完成后,xinted 再关闭相应进程,继续监听端口。

    • 使用 super daemon 模式,必须修改/etc/vsftpd.conf中的配置
    # 必须改为 NO, 否则连接 FTP 时会报错: 500 OOPS: could not bind listening IPv4 socket
    listen=NO
    
    • 安装 xinetd
    sudo apt-get install xinetd
    
    • 配置守护进程
    sudo vim /etc/xinetd.conf
    

    把下面配置添加到文件尾部:

    service ftp
    {
            socket_type             = stream
            wait                    = no
            user                    = root
            server                  = /usr/sbin/vsftpd
            log_on_success          += DURATION USERID
            log_on_failure          += USERID
            nice                    = 10
            disable                 = no
    }
    
    • 停止 vsftpd 服务,启动 xinetd 服务
    sudo service vsftpd stop
    sudo service xinetd restart
    
    • 查询端口是否在监听
    sudo netstat -npl | grep :21
    

    3. 访问 FTP

    3.1 命令行 FTP 客户端

    • 登录 FTP
    ftp [host [port]]       # 例如: ftp 192.168.0.100(默认端口号为21可不填写)
    
    # 输入 用户名
    # 输入 密码
    # 登录成功进入 FTP 管理界面
    
    ls                      # 查看文件夹下的文件
    cd dir                  # 进入文件夹
    
    help                    # 查看更多命令, 大部分命令和 Linux 本地文件管理命令相同
    
    • 上传文件
    put LocalFile [RemoteFile]          # 不指定 RemoteFile, 则以原文件名保存到当前FTP目录
    mput LocalFile [LocalFile ...]      # 上传多个本地文件, 默认以原文件名保存到当前FTP目录
    
    • 下载文件
    get RemoteFile [LocalFile]          # 不指定 LocalFile, 则以原文件名保存到本地(默认保存到当前工作目录下)
    mget RemoteFile [RemoteFile ...]    # 下载多个文件, 默认以原文件名保存到当前本地工作目录
    
    • 创建目录、删除目录/文件、重命名
    mkdir dir_name                      # 创建文件夹
    rmdir dir_name                      # 删除文件夹
    delete file                         # 删除文件
    rename FromFile ToFile              # 重命名
    

    3.2 图形界面 FTP 客户端

    FTP图形界面客户端,推荐使用 FileZilla,支持 Windows、Linux、MAC 多个平台,免费开源,界面友好,使用简单。

    FileZilla 官网: https://filezilla-project.org

    4. vsftpd.conf

    最后附上 /etc/vsftpd.conf 配置文件的默认原文, 供配置参考(不同版本,不同系统安装后,默认值和默认状态可能不一样):

    # Example config file /etc/vsftpd.conf
    #
    # The default compiled in settings are fairly paranoid. This sample file
    # loosens things up a bit, to make the ftp daemon more usable.
    # Please see vsftpd.conf.5 for all compiled in defaults.
    #
    # READ THIS: This example file is NOT an exhaustive list of vsftpd options.
    # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
    # capabilities.
    #
    #
    # Run standalone?  vsftpd can run either from an inetd or as a standalone
    # daemon started from an initscript.
    listen=YES
    #
    # Run standalone with IPv6?
    # Like the listen parameter, except vsftpd will listen on an IPv6 socket
    # instead of an IPv4 one. This parameter and the listen parameter are mutually
    # exclusive.
    #listen_ipv6=YES
    #
    # Allow anonymous FTP? (Disabled by default)
    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
    #
    # If enabled, vsftpd will display directory listings with the time
    # in  your  local  time  zone.  The default is to display GMT. The
    # times returned by the MDTM FTP command are also affected by this
    # option.
    use_localtime=YES
    #
    # Activate logging of uploads/downloads.
    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
    # a different user. Note! Using "root" for uploaded files is not
    # recommended!
    #chown_uploads=YES
    #chown_username=whoever
    #
    # You may override where the log file goes if you like. The default is shown
    # below.
    #xferlog_file=/var/log/vsftpd.log
    #
    # If you want, you can have your log file in standard ftpd xferlog format.
    # Note that the default log file location is /var/log/xferlog in this case.
    #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 restrict local users to their home directories.  See the FAQ for
    # the possible risks in this before using chroot_local_user or
    # chroot_list_enable below.
    #chroot_local_user=YES
    #
    # You may specify an explicit list of local users to chroot() to their home
    # directory. If chroot_local_user is YES, then this list becomes a list of
    # users to NOT chroot().
    # (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
    # the user does not have write access to the top level directory within the
    # 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
    #
    # Customization
    #
    # Some of vsftpd's settings don't fit the filesystem layout by
    # default.
    #
    # This option should be the name of a directory which is empty.  Also, the
    # directory should not be writable by the ftp user. This directory is used
    # as a secure chroot() jail at times vsftpd does not require filesystem
    # access.
    secure_chroot_dir=/var/run/vsftpd/empty
    #
    # This string is the name of the PAM service vsftpd will use.
    pam_service_name=vsftpd
    #
    # This option specifies the location of the RSA certificate to use for SSL
    # encrypted connections.
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    # This option specifies the location of the RSA key to use for SSL
    # encrypted connections.
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    
    展开全文
  • vsftpd的安装和使用

    万次阅读 2019-04-08 00:57:12
    1、vsftpd的简介... 2 2、特点... 2 3、安装... 2 4、创建虚拟用户... 2 5、vsftpd服务器的配置... 4 6、vsftpd配置文件说明... 7 7、防火墙的配置... 8 8、vsftpd的验证... 9 9、vsftpd的常用命令... 10 ...

    目录

    1、vsftpd的简介... 2

    2、特点... 2

    3、安装... 2

    4、创建虚拟用户... 2

    5、vsftpd服务器的配置... 4

    6、vsftpd配置文件说明... 7

    7、防火墙的配置... 8

    8、vsftpd的验证... 9

    9、vsftpd的常用命令... 10

    10、反复需要验证ftp身份问题解决... 10

    1、vsftpd的简介

    vsftpd是“very secure TTP daemon”的缩写,是一个完全免费的、开放源代码的ftp服务器软件

    2、特点

    vsftpd是一款在Linux发行版中最受推崇的ftp服务器程序,小巧轻快,安全易用,支持虚拟用户,支持带宽限制等功能

    3、安装

    检查Linux系统是否安装了vsftpd的命令:rpm -qa|grep vsftpd

    卸载vsftpd的命令yum remove vsftpd

    执行yum -y install vsftpd

    [root@localhost ~]# yum -y install vsftpd

    使用whereis vsftpd 查看安装路径

    [root@localhost ~]#whereis vsftpd

    注:

    (1)是否使用sudo权限执行,请根据具体环境决定

    (2)yum安装vsftpd的默认配置文件在/etc/vsftpd/vsftpd.conf

    4、创建虚拟用户

    (1)选择在根目录或用户目录下创建ftp文件目录:mkdir ftpfile,如/ftpfile,

    [root@localhost ~]# cd /

    [root@localhost /]# mkdir ftpfile

    [root@localhost /]# ls

    通过ftp上传时就会传到这个文件夹下

    (2)添加匿名用户:useradd ftpuser -d /ftpfile/ -s /sbin/nologin      #添加用户没有登录机器的权限,只有上传ftpfile有权限.

    [root@localhost ftpfile]# useradd ftpuser -d /ftpfile/ -s /sbin/nologin

    (3)修改ftpfile权限:chown -R ftpuser.ftpuser /ftpfile/ #把创建的用户和创建的文件夹的权限对应上。-R表示遍历,把用户或者用户组赋予到/ftpfile这个文件夹的权限上

    [root@localhost ftpfile]# chown -R ftpuser.ftpuser /ftpfile/

    查看该文件目录的权限

    此时的用户名和用户组的权限都为ftpuser

    (4)重设ftpuser密码:passwd ftpuser 123456(这里设置的密码为123456)

    [root@localhost /]# passwd ftpuser

    (5)在vsftpd文件目录下创建测试文件zxr.txt

    [root@localhost /]# cd ftpfile/

     [root@localhost ftpfile]# touch zxr.txt

    [root@localhost ftpfile]# ls

    zxr.txt

    [root@localhost ftpfile]# vi zxr.txt

    5、vsftpd服务器的配置

    (1)vsftpd.conf文件

    查看ftp服务器的安装路径

    [root@localhost ftpfile]# whereis vsftpd

    进入/etc/vsftpd/目录下

    [root@localhost ftpfile]# cd /etc/vsftpd/

    编辑vsftpd.conf文件,把创建的用户配置上

    修改客户端登录,提示的欢迎信息(vi打开文件输入/然后将banner输入,再点击enter键,能快速找到banner信息)

    需要将注释取消掉,改为自己想要的提示信息

    还需要添加一些重要的属性节点

    local_root=/ftpfile                      #把本地账户指向创建的ftpfile文件夹

    anon_root=/ftpfile            #添加匿名账户访问ftpfile目录

    use_localtime=YES            #ftp服务器用到的是本地的时间

    查找chroot_list节点

    #chroot_local_user=YES                    #这个节点为是否锁定创建的/ftpfile为根目录,不解除注释,默认为chroot_local_user=NO,锁定创建的/ftpfile为根目录,如果解除后设置为chroot_local_user=YES,那么就没有锁定创建的/ftpfile为根目录,在命令行是可以访问到/ftpfile的上级目录,也就是系统的根目录,这是绝对不安全的。所以这个节点不用解除注释,或者解除更改为chroot_local_user=NO。

    编辑该节点,解除

    chroot_list_enable=YES

    chroot_list_file=/etc/vsftpd/chroot_list

    添加节点

    allow_writeable_chroot=YES                     #加上这行解决了无法登陆的问题

    两条命令的注释,将新建的用户添上。

    查找节点anonymous_enable

    将该节点改为anonymous_enable=NO,不允许匿名用户登录

    在该文件的末尾添加传输接口的范围,最大接口61001,最大接口62000,限定严格的设置防火墙。

    添加范围

    pasv_min_port=61001

    pasv_max_port=62000

    编辑完成保存退出。

    (2)配置chroot_list文件

    该文件目录的节点在上一步配置vsftpd.conf文件中已解除注释。

    进入到/etc/vsftpd/目录下创建文件chroot_list

    [root@localhost vsftpd]# cd /etc/vsftpd/

    [root@localhost vsftpd]# vi chroot_list                    

    #用编辑器打开文件时,如果没有这个文件,会默认自动创建一个该文件。

    将用户添加进入该新建的chroot_list文件中

    保存退出。

    (5)编辑文件/etc/selinux/config文件

    [root@localhost vsftpd]# vi /etc/selinux/config

    修改为SELINUX=disabled,如果不改的话,匿名账户无法创建文件文件或者文件目录

    :wq保存退出

    注:如果在验证的时候碰到550拒绝访问请执行:

    sudo setsebool -P ftp_home_dir 1

    然后重启Linux服务器,执行reboot命令。

    6、vsftpd配置文件说明

    sudo vi /etc/vsftpd/vsftpd.conf

    vsftpd.conf文件的配置文件的添加或更新配置

    本项目要用到的配置项:

    1)local_root=/ftpfile(当本地用户登入时,将被更换到定义的目录下,默认值为各用户的家目录)

    2)anon_root=/ftpfile(使用匿名登入时,所登入的目录)

    3)use_localtime=YES(默认是GMT时间,改成使用本机系统时间)

    4)anonymous_enable=NO(不允许匿名用户登录)

    5)local_enable=YES(允许本地用户登录)

    6)write_enable=YES(本地用户可以在自己家目录中进行读写操作)

    7)local_umask=022(本地用户新增档案时的umask值)

    8)dirmessage_enable=YES(如果启动这个选项,那么使用者第一次进入一个目录时,会检查该目录下是否有.message这个档案,如果有,则会出现此档案的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。默认值为开启)

    9)xferlog_enable=YES(是否启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录在xferlog_file 所定义的档案中。预设为开启。)

    10)connect_from_port_20=YES(指定FTP使用20端口进行数据传输,默认值为YES)

    11)xferlog_std_format=YES(如果启用,则日志文件将会写成xferlog的标准格式)

    12)ftpd_banner=Welcome to mmall FTP Server(这里用来定义欢迎话语的字符串)

    13)chroot_local_user=NO(用于指定用户列表文件中的用户是否允许切换到上级目录)

    14)chroot_list_enable=YES(设置是否启用chroot_list_file配置项指定的用户列表文件)

    15)chroot_list_file=/etc/vsftpd/chroot_list(用于指定用户列表文件)

    16)listen=YES(设置vsftpd服务器是否以standalone模式运行,以standalone模式运行是一种较好的方式,此时listen必须设置为YES,此为默认值。建议不要更改,有很多与服务器运行相关的配置命令,需要在此模式下才有效,若设置为NO,则vsftpd不是以独立的服务运行,要受到xinetd服务的管控,功能上会受到限制)

    17)pam_service_name=vsftpd(虚拟用户使用PAM认证方式,这里是设置PAM使用的名称,默认即可,与/etc/pam.d/vsftpd对应) userlist_enable=YES(是否启用vsftpd.user_list文件,黑名单,白名单都可以

    18)pasv_min_port=61001(被动模式使用端口范围最小值)

    19)pasv_max_port=62000(被动模式使用端口范围最大值)

    20)pasv_enable=YES(pasv_enable=YES/NO(YES)

    若设置为YES,则使用PASV工作模式;若设置为NO,则使用PORT模式。默认值为YES,即使用PASV工作模式。

       FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

       一、PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。

      当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了****端口,你过来连接我”。于是服务器从20端口向客户端的****端口发送连接请求,建立一条数据链路来传送数据。

       二、PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。

      当需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了****端口,你过来连接我”。于是客户端向服务器的****端口发送连接请求,建立一条数据链路来传送数据。

      从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。

    )

    7、防火墙的配置

    防火墙的配置(这里采用的是centos6,用的还是Iptables文件设置防火墙)

    (1)编辑防火墙文件

    sudo vi /etc/sysconfig/iptables

    (2)添加防火墙规则到配置文件中

    -A INPUT -p TCP --dport 61001:62000 -j ACCEPT

    -A OUTPUT -p TCP --sport 61001:62000 -j ACCEPT

    -A INPUT -p TCP --dport 20 -j ACCEPT

    -A OUTPUT -p TCP --sport 20 -j ACCEPT

    -A INPUT -p TCP --dport 21 -j ACCEPT

    -A OUTPUT -p TCP --sport 21 -j ACCEPT

    (3):wq保存退出

    (4)sudo service iptables restart 执行命令重启防火墙

    8、vsftpd的验证

    (1)执行sudo service vsftpd restart

    [root@localhost vsftpd]# service vsftpd restart

    注:第一次启动时Shutting down vsftpd是failed不用理会,因为这是重启命令,保证Starting vsftpd for vsftpd是OK即代表vsftpd服务成功。、

    service vsftpd stop            #表示关闭vsftpd

    (2)执行ifconfig查看运行vsftpd服务器的ip地址

    (3)打开浏览器访问:ftp://192.168.244.128/

    (4)输入之前创建的ftp匿名用户账号和密码

    例如:用户名:ftpuser,密码:123456

    (5)看到如图界面代表访问成功

    或者通过ftp客户端软件

    例如:cuteftp、filezilla、viperftp、flashftp、leapftp等进行连接ftp服务器,进行上传文件、下载验证

    9、vsftpd的常用命令

    (1)启动:sudo service vsftpd start

    (2)关闭:sudo service vsftpd stop

    (3)重启:sudo service vsftpd restart

    10、反复需要验证ftp身份问题解决

    在安装vsftpd的时候如果在浏览器中一直提示需要身份验证,此时在命令行行登录会报530 Login incorrect错误。

    在vsftpd的配置文件目录/etc/vsftpd下中的vsftpd.conf文件中会配置有pam_service_name=vsftpd指定pam下的文件在该文件中内容如下:

    其中可能导致登录不成功(反复需要身份验证)的问题主要在于以下两个配置

    问题配置一

    /etc/vsftpd/ftpusers这个文件中的用户是禁止登录的用户,先检查需要登录的账户是否在该文件中,如果在,就将该账户注释或者从该文件中去除

    问题配置二:

    该配置是允许用户的shell /etc/shells文件内的shell命令时,才能够成功

    此处多留意有的系统里面的shells中的bash会多一些,比如

    所以就需要查看当前系统shells文件中的内容与创建ftp用户的时候,为了禁止ssh登录,跟上的命令在shells中是否存在;

    比如:我当前的shells文件内容为

    但是我在创建ftp用户的时候的命令为

    [root@localhost ~]# useradd ftpuser -d /ftpfile/ -s /sbin/nologin

    所以此时创建用户后-s /sbin/nologin并不是有效的。

    这时的解决方案为修改/etc/pam.d/vsftpd文件中的

    auth   required   pam_shells.so

    修改为auth    required     pam_nologin.so

    最后重启vsftpd

    [root@localhost ~]# service vsftpd restart

    展开全文
  • vsftpd的使用

    万次阅读 2018-06-08 18:48:35
    简介vsftpd是 “very secure FTP deamon”的...安装执行 yum -y install vsftpd注:在安装前需提前确认是否已经安装了vsftpd 命令如下:rpm -qa|grep vsftpd另外,默认的配置文件路径为: /etc/vsftpd/vsftpd.conf...

    简介

    vsftpd是 “very secure FTP deamon”的缩写,是一个完全免费,开源的ftp服务器软件。


    特点

    小巧轻快,安全易用,支持虚拟用户、支持带宽限制等功能。


    安装

    执行 yum -y install vsftpd

    注:在安装前需提前确认是否已经安装了vsftpd 命令如下:

    rpm -qa|grep vsftpd

    另外,默认的配置文件路径为: /etc/vsftpd/vsftpd.conf


    创建虚拟用户

    选择一个目录(可以为根目录),创建ftp文件夹(博主就创建在了根目录下了): mkdir /ftpfile

    然后在添加一个匿名用户,命令如下

        useradd ftpuser -d /ftpfile -s /sbin/nologin

        参数说明 : -d 意为该用户应该使用的文件路径

                           -s 意为该创建的用户没有登录linux系统的权限

    修改ftpfile文件路径的权限,命令如下

        chown -R ftpuser.ftpuser /ftpfile

        参数说明 -R 注意,是大写的R,意为遍历参数中所有的路径,统统都赋权限给ftpuser

    重设ftpftpuser密码,命令如下(博主设置的密码是123456所以提示密码太简单了,这个不影响,只是警告)

        passwd ftpuser 



    配置

    输入以下命令

        cd /etc/vsftpd

        sudo vim chroot_list


    将刚刚新增的虚拟用户添加到此配置文件中


    保存并退出,然后使用cat命令查看该文件的信息(只要保证该文件中有刚刚创建好的虚拟用户即可)


    另外,为了防止后面验证的时候出现500提示,得修改以下文件

        sudo vim /etc/selinux/config

        将其中的

        SELINUX属性设置为disabled(记得wq保存)

    如果执行后还会出现500提示,那么请执行以下命令,然后重启linux服务器,重启后执行reboot即可

        sudo setsebool -P ftp_home_dir 1


    配置vsftpd的配置文件(划重点!)

    执行以下命令

        sudo vim /etc/vsftpd/vsftpd.conf

        在这里推荐一个vsftpd配置的博客,点我就好,超级详细。

        另外记一个配置项,这个配置比较重要如下

        chroot_local_user:NO

        这个配置如果配置成yes,那么也就意味着在访问ftp的时候还可以访问上级目录,那就很危险了,所以必须得配置成NO


    配置完后呢,执行以下命令,重启vsftpd(Shutting down 是否成功都无所谓,关键是Starting成功就可以了)

        sudo service vsftpd restart



    好,启动成功,输入ftp://ip 即可访问,格式如下(如果是云服务器,就访问外网ip,虚拟机,访问内网即可)

        ftp://119.29.101.***/

    接着会要求输入用户密码,此处需要填写的就是刚刚创建的虚拟用户

    登录成功后就是如下图所示的样子啦。



            那么可能有的同学会有迷惑的地方,为什么要用sudo命令呢?其实如果是在root用户下进行操作的话,也可以不加,但是如果是其他用户的话,就可能需要加上了,因为有的命令权限太高,普通用户使用不了,如果这个普通用户被授权了,那么就可以先使用sudo命令然后接空格在接需要使用的命令就可以了。sudo命令是在一些特殊的情况下使用的。


    结语

            好了,vsftpd的安装就到这里啦,其实还有关于windows的FTP安装,在这里呢就不写下去了,希望可以帮助到大家。最后接上windows10 安装FTP的教程 使用win10安装FTP

    展开全文
  • ftp&vsftpd服务

    千次阅读 2017-11-19 21:24:59
    ftp即文件传输,它是INTERNET上仍然常用的最老的网络协议之一,它为系统提供了通过网络与远程服务器传输的简单方法,FTP服务器包的名称为vsftpd 二. 部署ftp服务 1. 安装ftp yum install -y vsftpd #安装...

    一. ftp

    ftp即文件传输它是INTERNET上仍然常用的最老的网络协议之一,它为系统提供了通过网络与远程服务器传输的简单方法,FTP服务器包的名称为vsftpd

    二. 部署ftp服务

    1. 安装ftp

    yum install -y vsftpd                                              #安装vsftpd软件包

    systemctl start vsftpd

    systemctl enable vsftpd

    firewall-cmd --permanent --add-service=ftp     #部署火墙策略

    firewall-cmd --reload

    firewall-cmd --list-all


    yum install -y lftp                #客户端安装lftp


    2.部署ftp

    vim /etc/sysconfig/selinux                     #SELINUX=disabled

    reboot                                                     #使策略生效


    /var/ftp/pub                               ##默认发布目录

    /etc/vsftpd/vsftpd.service        ##配置目录

    注:配置目录修改完需要重启服务-----systemctl restart vsftpd.service   让修改配置生效

    三. vsftpd服务的配置参数

    1. 匿名用户设定

    vim /etc/vsftpd/vsftpd.conf

    anonymous_enable=YES|NO     #匿名用户限制登陆

    systemctl restart vsftpd.service

    1> 匿名用户上传

    vim /etc/vsftpd/vsftpd.conf

    write_enable=YES                             #可写

    anon_upload_enable=YES               #匿名用户可上传

    systemctl restart vsftpd.service

    chgrp ftp /var/ftp/pub

    chmod 775 /var/ftp/pub


    2> 匿名用户家目录修改

    anon_root=/westos               #匿名用户修改家目录为westos


    3> 匿名用户上传文件默认权限修改

    anon_umask=022                    #修改匿名用户上传权限为022


    3> 匿名用户建立目录

    anon_mkdir_write_enable=YES          #匿名用户创建目录


    4>匿名用户下载

    anon_world_readable_only=YES|NO       #设定参数值为no表示匿名用户可以下载


    5> 匿名用户删除

    anon_other_write_enable=YES|NO               #匿名用户是否可以删除


    6> 匿名用户使用的用户身份修改

    chown_uploads=YES                   #修改上传信息

    chown_username=student           #修改所有人为student


    7> 最大上传速率

    anon_max_rate=204800         #设定最大上传速率


    8> 最大链接数

    max_clients=1                               #设定最大链接数


    2. 本地用户设定

    vim /etc/vsftpd/vsftpd.conf

    local_enable=YES|NO                            #本地用户登陆限制

    write_enable=YES|NO                            #本地用户写权限限制

    systemctl restart vsftpd.service


    1> 本地用户家目录修改

    local_root=/westos                 #修改本地用户家目录


    2> 本地用户上传文件权限

    local_umask=022                       #修改本地用户上传文件权限


    3> 限制本地用户浏览/目录

    chroot_local_user=YES

    chmod u-w /home/*


    3. 本地用户黑白名单的设定

    1> 用户黑名单建立

    vim /etc/vsftpd/vsftpd.conf

    chroot_local_user=NO

    chroot_list_enable=YES

    chroot_list_file=/etc/vsftpd/chroot_list

    vim /etc/vsftpd/chroot_list                     #列出黑名单用户

    systemctl restart vsftpd.service


    2> 用户白名单建立

    vim /etc/vsftpd/vsftpd.conf

    chroot_local_user=YES

    chroot_list_enable=YES

    chroot_list_file=/etc/vsftpd/chroot_list         #列出白名单用户

    vim /etc/vsftpd/vsftpd.conf


    3> 限制本地用户登陆

    vim /etc/vsftpd/ftpusers        #用户黑名单


    vim /etc/vsftpd/user_list       #用户临时黑名单


    4> 用户白名单的设定

    userlist_deny=NO              #vim /etc/vsftpd/vsftpd.conf  修改参数

    /etc/vsftpd/user_list            #参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp

    三. ftp虚拟用户的设定

    1. 创建虚拟帐号身份

    vim /etc/vsftpd/westos                     #创建虚拟帐号身份文件

    ftpuser1

    123

    ftpuser2

    123

    ftpuser3

    123


    2. 加密虚拟帐号身份文件

    db_load -T -t hash -f /etc/vsftpd/westos westos.db


    3. 虚拟帐号身份认证

    vim /etc/pam.d/westos      


    4. 虚拟帐号身份配置

    vim /etc/vsftpd/vsftpd.conf

    pam_service_name=westos           #指定pam配置文件

    guest_enable=YES                           #启用虚拟帐号支持


    guest_username=ftp                #映射虚拟帐号身份

    chmod u-w /home/ftp

    5. 虚拟帐号家目录独立设定

    vim /etc/vsftpd/vsftpd.conf

    local_root=/ftpusers/$USER      #指定虚拟帐号家目录

    user_sub_token=$USER

    mkdir /ftpusers

    chgrp ftpuser /ftpusers

    chmod g+s /ftpusers

    mkdir /ftpusers/ftpuser{1..3}


    6. 虚拟帐号配置独立

    vim /etc/vsftpd/vsftpd.conf

    user_config_dir=/etc/vsftpd/userconf

    mkdir -p /etc/vsftpd/userconf


    vim /etc/vsftpd/userconf/ftpuser1       #在此文件中设定配置文件中的所有参数,此文件的优先级高


    注:lftp中遇到的提示答疑

    500:权力过大

    530:认证失败

    550:无写权限

    553:权限问题











    展开全文
  • vsftpd-3.0.2 RPM安装包

    千次下载 热门讨论 2020-07-30 23:32:33
    vsftpd-3.0.2 RPM安装包 32位和64位,测试redhat、Centos可用
  • vsftpd

    2020-07-30 16:54:40
    一、vsftpd常用命令 #设置开机启动 systemctl enable vsftpd.service #启动 systemctl start vsftpd.service #停止 systemctl stop vsftpd.service #查看状态 systemctl status vsftpd.service #重启 systemctl ...
  • FTP+VSFTPD

    2020-01-07 19:55:13
    FTP和Http都是协议,但是FTP是有状态的。 比如文件下载(断点续传),下载到一半,下次打开继续下载,是从上次下载位置继续下载的,不会将之前的下载清空。 ...
  • ftp、sftp、vsftp、vsftpd这四个的区别

    万次阅读 2019-04-11 14:52:08
    ftp 是File Transfer Protocol的缩写,文件传输协议,用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。 了解更多ftp sftp 是SSH File Transfer Protocol的缩写,安全...
  • vsftpd介绍 ubuntu 安装 vsftpd 配置vsftpd 备份vsftpdconfig 编辑vsftpdconfig 创建登录用户 添加vsftpd 登录用户 添加vsftpd登录用户对目录树的权限 重启 vsftpd 服务 验证ftp服务 vsftpd介绍 vsftpd ...
  • VSFTPD

    2019-09-26 20:58:02
    FTP 服务器 FTP 是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序(Application)。 基于不同的操作系统有不同...
  • 更改 vsftpd 的端口号

    万次阅读 2014-07-03 11:57:33
    vsftpd启动后,默认的ftp端口是21,现在我想把ftp端口改成 801 ,修改后能保证 用户上传下载不受影响1.编辑 /etc/vsftpd/vsftpd.conf 文件,在该配置文件中添加此行:listen_port=801 2.编辑 /etc/services ...
  • 1、检测系统是否安装过vsftpd,命令如下: rpm -qa|grep vsftpd 如果安装过会显示ftp版本 2、如没安装,则用yum命令在线安装,命令如下: yum install vsftpd 3、开启、关闭、重启服务(配置文件改动过要重启) ...
  • vsftpd 打开日志输出功能

    千次阅读 2013-11-19 16:48:59
    vsftpd 服务默认不打开日志输出,出错信息可以在/var/log/secure中查看。 打开vsftpd 的日志信息,需要修改/etc/vsftpd/vsftpd.conf 文件,添加以下两行: use_localtime=YES dual_log_enable=YES 然后重启 ...
  • vsftpd: not configured for standalone, must be started from inetd 因为xinetd已经启动了vsftpd,而你的vsftpd设置成了stardalone模式 如果要用inetd启动,那用如下方面启动: 首先copy你的安装文件里的vsftpd...
  • CentOS7安装和配置FTP

    万次阅读 2016-08-12 15:28:56
    1. 安装vsftpd#安装vsftpd yum install -y vsftpd #设置开机启动 systemctl enable vsftpd.service # 重启 service vsftpd restart # 查看vsftpd服务的状态 systemctl status vsftpd.service 2. 配置vsftpd.conf#...
  • 启动vsftpd服务,报错:Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details 解决: ...
  • 启动vsftpd服务的指令是 service vsftpd start 然而在CentOS7以后,输入原来的指令就会报错提示: Redirecting to /bin/systemctl start vsftpd.service 解决办法当然是用最新的指令: systemctl start vsftpd....
  • 我的环境:阿里云centos7.2搭建ftp启动vsftpd服务,报错:Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "...
  • 1.打开/etc/vsftpd.conf文件,如下图,将“listen=NO”改为“listen=YES”,保存;  2.输入命令/etc/init.d/vsftpd restart;  3.输入命令ps -eaf|grep vsftpd查看vsftpd进程,如下图,可以看到,vsftpd已启动。...
  • 部署到Linux-FTP-重启vsftpd服务器

    千次阅读 2018-03-07 01:08:32
    重启vsftpd服务器 通常重启使用的命令是 service vsftpd restart但是centos7之后,改用的命令是如下方式: systemctl restart vsftpd.service最后执行查看状态,以查看重启成功了 systemctl status vsftpd.service
1 2 3 4 5 ... 20
收藏数 42,840
精华内容 17,136
关键字:

vsftpd