`
zhouxingfu520
  • 浏览: 422894 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

linux vsftpd配置

阅读更多

   vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。

     如果你想在你的Linux/Unix服务器上搭建一个安全、高性能、稳定性好的FTP 服务器,那么vsftpd可能是你的首选应用。vsftpd意思为“very secure FTP daemon(非常安全的FTP进程)”,是一个基于GPL发布的类UNIX类操作系统上运行的服务器的名字(是一种守护进程),可以运行在诸如 Linux、BSD、Solaris、HP-UX以及Irix等系统上面。vsftpd支持很多其他传统的FTP服务器不支持的良好特性。
      

CentOS vsftpd软件配置

1 安装软件
2 配置为超级服务
3 使用匿名用户登入
4 本地用户登入
5 使用虚拟用户登入
6 使用ssl加密
7 vsftpd.conf 配置文件详解

1 安装 vsftpd

centos 或Redhat 系统;
[root@localhost ~]# yum install vsftpd
如果是debian ubuntu 类系统;
[root@localhost ~]# apt-get install vsftpd


2 启用超级服务启动

[root@localhost ~]# vi /etc/xinetd.d/vsftpd
service ftp
{
    disable           = no
    socket_type       = stream
    wait              = no
    user              = root server            = /usr/sbin/vsftpd
    server_args       = /etc/vsftpd/vsftpd.conf
# 上面这个 server 的设定请依照您的主机环境来设定!
# 至于 server_args 则请写入您的 vsftpd 的配置文件完整名称即可!
    per_source        = 5     <==与同一 IP 的联机数目有关
    instances         = 200   <==同一时间最多的联机数目
    no_access         = 192.168.1.3
    banner_fail       = /etc/vsftpd/vsftpd.busy_banner
# 上面这个文件就是当主机忙碌中,则在 Client 端显示的内容!
    log_on_success    += PID HOST DURATION
    log_on_failure    += HOST
}

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
listen=NO


3 使用匿名用户登入

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

anonymous_enable=YES


4 使用本地用户登入

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

#下面是允许某些用户登入的项目  存在user_list文件中的用户不允许登入
userlist_enable=YES
userlist_deny=YES #如果这里改为NO  反过来只能存在user_list文件中的用户允许登入
userlist_file=/etc/vsftpd/user_list
anonymous_enable=NO

#下面是限制用户只能访问自己的主目录  存在chroot_list文件中的用户只能访问自己的主目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

新建个用户 这样重启服务 可以在客户端使用新建的本地用户登入了。

5 使用虚拟用户登入

#创建两个目录
[root@localhost ~]#mkdir /home/vsftpd/ftp1
[root@localhost ~]# mkdir /home/vsftpd/ftp3

[root@localhost ~]# vi /etc/vsftpd/loginuser.txt

#加入两个用户  奇数行代表用户名 偶数行代表密码
xftpadmin
123456
xftpuser
123456

#执行命令 生成虚拟数据库
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/loginuser.txt /etc/vsftpd/login.db
#设置数据库文件的访问权限
[root@localhost ~]# chmod 600 /etc/vsftpd/login.db

[root@localhost ~]# vi /etc/pam.d/vsftpd

#将以下内容增加的原文件前面两行:
auth required pam_userdb.so db=/etc/vsftpd/login
account required pam_userdb.so db=/etc/vsftpd/login
       #我们建立的虚拟用户将采用PAM进行验证,这是通过/etc/vsftpd.conf文件中的 语句pam_service_name=vsftpd.vu来启用的。

vsftpd使用的pam文件
auth    sufficient      pam_userdb.so db=/etc/vsftpd/login
account sufficient      pam_userdb.so db=/etc/vsftpd/login

#auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
#auth       required     pam_stack.so service=system-auth
#auth       required     pam_shells.so
#account    required     pam_stack.so service=system-auth
#session    required     pam_stack.so service=system-auth

可以看出前面两行是对虚拟用户的验证,后面是对系统用户的验证。 为了安全我一般把系统用户的登入关闭  使用虚拟账号登入ftp
对虚拟用户的验证使用了sufficient这个控制标志。
这个标志的含义是如果这个模块验证通过,就不必使用后面的层叠模块进行验证了;但如果失败了,
就继续后面的认证,也就是使用系统真实用户的验证。
虚拟用户创建本地系统用户


#新建一个系统用户vsftpd, 用户登录终端设为/bin/false(即使之不能登录系统)
[root@localhost ~]# useradd vsftpd -d /home/vsftpd -s /bin/false
[root@localhost ~]# chown vsftpd:vsftpd /home/vsftpd #改变目录所属用户组

根据需要创建/etc/vsftpd/vsftpd.conf,以下设置: 
listen=YES                       #监听为专用模式
anonymous_enable=NO              #禁用匿名登入
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log   #记录ftp操作日志
xferlog_std_format=YES
chroot_local_user=YES          #对用户访问只限制在主目录 不能访问其他目录
guest_enable=YES               #启用guest
guest_username=vsftpd           #使用虚拟账号形式
user_config_dir=/etc/vsftpd_user_conf  #虚拟账号配置目录
pam_service_name=vsftpd              #对vsftpd的用户使用pam认证
local_enable=YES


#执行以下命令
[root@localhost ~]# mkdir /etc/vsftpd/user_conf
[root@localhost ~]# cd /etc/vsftpd/user_conf
[root@localhost ~]# touch xftpuser xftpadmin #创建两个文件

[root@localhost ~]# vi /etc/vsftpd/user_config/xftpadmin

#加入以下内容 拥有所有权限
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vsftpd/ftp3

[root@localhost ~]# vi /etc/vsftpd/user_config/xftpuser

#加入以下内容 只读权限
local_root=/home/vsftpd/ftp1

#登入 使用ftp1用户登入看看 
如果不能读写操作 可能是目录权限不够需要设置权限 试试看

[root@localhost ~]# chmod 777 /home/vsftpd/ftp3

这样就可以用虚拟账号登入了  ftpadmin、ftpuser分别登入之后访问的是ftp3、ftp1目录。


6 使用ssl登入

[root@localhost ~]# cd /etc/pki/tls/certs/
[root@localhost ~]# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem

4 修改vsftpd.conf文件
[root@localhost ~]#vi /usr/local/etc/vsftpd.conf .

ssl_enable=YES(开启vsftpd对ssl协议的支持)
ssl_sslv2=YES(支持SSL v2 protocol)
ssl_sslv3=YES(支持SSL v3 protocol)
ssl_tlsv1=YES(支持TSL v1)
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem(证书的路径)

ssl_enable=YES
ssl_sslv2=YES
ssl_sslv3=YES
ssl_tlsv1=YES

这样重启vsftpd 就可以用客户端来尝试进行SSL加密连接了

  7 vsftpd.conf 设定详细说明
  /etc/vsftpd/vsftpd.conf 本身就是一个挺详细的配置文件,且使用『 man 5 vsftpd.conf 』则可以得到完整的参数说明。

    与主机较相关的设定值
        connect_from_port_20=YES (NO)
        ftp-data 的端口;

        listen_port=21
        vsftpd 使用的命令通道之端口号,如果您想要使用非正规的端口,在这个设定项目修改吧! 不过你必须要知道,这个设定值仅适合以 stand alone 的方式来启动(对于 super daemon 无效)

        dirmessage_enable=YES (NO)
        当用户进入某个目录时,会显示该目录需要注意的内容,显示的文件默认是 .message ,你可以使用底下的设定项目来修改!

        message_file=.message
        当 dirmessage_enable=YES 时,可以设定这个项目来让 vsftpd 寻找该文件来显示信息!

        listen=YES (NO)
        若设定为 YES 表示 vsftpd 是以 standalone 的方式来启动的

        pasv_enable=YES (NO)
        启动被动式联机模式(passive mode),一定要设定为 YES 的

        use_localtime=YES (NO)
        是否使用本地时间?vsftpd 预设使用 GMT 时间(格林威治)

        write_enable=YES (NO)
        如果你允许用户上传数据时,就要启动这个设定值;

        connect_timeout=60
        单位是秒,在数据连接的主动式联机模式下,我们发出的连接讯号在 60 秒内得不到客户端的响应,则不等待并强制断线。

        accept_timeout=60
        当用户以被动式 PASV 来进行数据传输时,如果主机启用 passive port 并等待 client 超过 60 秒而无回应, 那么就给他强制断线!这个设定值与 connect_timeout 类似,不过一个是管理主动联机,一个管理被动联机。

        data_connection_timeout=300
        如果服务器与客户端的数据联机已经成功建立 (不论主动还是被动联机),但是可能由于线路问题导致 300 秒内还是无法顺利的完成数据的传送,那客户端的联机就会被我们的 vsftpd 强制剔除!

        idle_session_timeout=300
        如果使用者在 300 秒内都没有命令动作,强制脱机

        max_clients=0
        如果 vsftpd 是以 stand alone 方式启动的,那么这个设定项目可以设定同一时间,最多有多少 client 可以同时连上 vsftpd

        max_per_ip=0
        与上面 max_clients 类似,这里是同一个 IP 同一时间可允许多少联机?

        pasv_min_port=0, pasv_max_port=0
        上面两个是与 passive mode 使用的 port number 有关,如果您想要使用 65400 到 65410 这 11 个 port 来进行被动式联机模式的连接,可以这样设定 pasv_max_port=65410 以及 pasv_min_port=65400。 如果是 0 的话,表示随机取用而不限制。

        ftpd_banner=一些文字说明
        当使用者联机进入到 vsftpd 时,在 FTP 客户端软件上头会显示的说明文字。不过,这个设定值数据比较少啦! 建议你可以使用底下的设定值来取代这个项目;

        banner_file=/path/file
        这个项目可以指定某个纯文本档作为使用者登入 vsftpd 服务器时所显示的欢迎字眼。

    与实体用户较相关的设定值
        guest_enable=YES (NO)
        若这个值设定为 YES 时,那么任何非 anonymous 登入的账号,均会被假设成为 guest (访客)   至于访客在 vsftpd 当中,预设会取得 ftp 这个使用者的相关权限。但可以透过 guest_username 来修改。

        guest_username=ftp
        在 guest_enable=YES 时才会生效,指定访客的身份而已。

        local_enable=YES (NO)
        这个设定值必须要为 YES 时,在 /etc/passwd 内的账号才能以实体用户的方式登入我们的 vsftpd 主机

        local_max_rate=0
        实体用户的传输速度限制,单位为 bytes/second, 0 为不限制。

        chroot_local_user=YES (NO)
        将用户限制在自己的家目录之内(chroot)!这个设定在 vsftpd 当中预设是 NO,因为有底下两个设定项目的辅助喔! 所以不需要启动他!
        chroot_list_enable=YES (NO)
        是否启用将某些实体用户限制在他们的家目录内?预设是 NO ,不过,如果您想要让某些使用者无法离开他们的家目录时, 可以考虑将这个设定为 YES ,并且规划下个设定值

        chroot_list_file=/etc/vsftpd.chroot_list
        如果 chroot_list_enable=YES 那么就可以设定这个项目了! 他里面可以规定那一个实体用户会被限制在自己的家目录内而无法离开!(chroot) 一行一个账号即可!

        userlist_enable=YES (NO)
        是否藉助 vsftpd 的抵挡机制来处理某些不受欢迎的账号,与底下的设定有关;

        userlist_deny=YES (NO)
        当 userlist_enable=YES 时才会生效的设定,若此设定值为 YES 时,则当使用者账号被列入到某个文件时, 在该文件内的使用者将无法登入 vsftpd 服务器!该文件名与下列设定项目有关。
        userlist_file=/etc/vsftpd.user_list
        若上面 userlist_deny=YES 时,则这个文件就有用处了!在这个文件内的账号都无法使用 vsftpd

    匿名者登入的设定值
        anonymous_enable=YES (NO)
        设定为允许 anonymous 登入我们的 vsftpd 主机!预设是 YES ,底下的所有相关设定都需要将这个设定为 anonymous_enable=YES 之后才会生效!

        anon_world_readable_only=YES (NO)
        仅允许 anonymous 具有下载可读文件的权限,预设是 YES。

        anon_other_write_enable=YES (NO)
        是否允许 anonymous 具有写入的权限?预设是 NO!如果要设定为 YES, 那么开放给 anonymous 写入的目录亦需要调整权限,让 vsftpd 的 PID 拥有者可以写入才行!

        anon_mkdir_write_enable=YES (NO)
        是否让 anonymous 具有建立目录的权限?默认值是 NO!如果要设定为 YES, 那么 anony_other_write_enable 必须设定为 YES !

        anon_upload_enable=YES (NO)
        是否让 anonymous 具有上传数据的功能,默认是 NO,如果要设定为 YES , 则 anon_other_write_enable=YES 必须设定。

        deny_email_enable=YES (NO)
        将某些特殊的 email address 抵挡住,不让那些 anonymous 登入! 如果以 anonymous 登入主机时,不是会要求输入密码吗?密码不是要您 输入您的 email address 吗?如果你很讨厌某些 email address , 就可以使用这个设定来将他取消登入的权限!需与下个设定项目配合:

        banned_email_file=/etc/vsftpd.banned_emails
        如果 deny_email_enable=YES 时,可以利用这个设定项目来规定哪个 email address 不可登入我们的 vsftpd 喔!在上面设定的文件内,一行输入一个 email address 即可!

        no_anon_password=YES (NO)
        当设定为 YES 时,表示 anonymous 将会略过密码检验步骤,而直接进入 vsftpd 服务器内喔!所以一般预设都是 NO

        anon_max_rate=0
        这个设定值后面接的数值单位为 bytes/秒 ,限制 anonymous 的传输速度,如果是 0 则不限制(由最大带宽所限制),如果您想让 anonymous 仅有 30 KB/s 的速度,可以设定『anon_max_rate=30000』

        anon_umask=077
        限制 anonymous 的权限!如果是 077 则 anonymous 传送过来的文件 权限会是 -rw-------

    关于系统安全方面的一些设定值
        ascii_download_enable=YES (NO)
        如果设定为 YES ,那么 client 就可以使用 ASCII 格式下载文件。

        ascii_upload_enable=YES (NO)
        与上一个设定类似的,只是这个设定针对上传而言!预设是 NO

        one_process_model=YES (NO)
        这个设定项目比较危险一点~当设定为 YES 时,表示每个建立的联机 都会拥有一支 process 在负责,可以增加 vsftpd 的效能。不过, 除非您的系统比较安全,而且硬件配备比较高,否则容易耗尽系统资源  一般建议设定为 NO

        tcp_wrappers=YES (NO)
        当然我们都习惯支持 TCP Wrappers 的  所以设定为 YES

        xferlog_enable=YES (NO)
        当设定为 YES 时,使用者上传与下载文件都会被纪录起来。记录的文件与下一个设定项目有关:

        xferlog_file=/var/log/vsftpd.log
        如果上一个 xferlog_enable=YES 的话,这里就可以设定了!这个是登文件的名称

        xferlog_std_format=YES (NO)
        是否设定为 wu ftp 相同的登录档格式?!预设为 NO ,因为登录档会比较容易读! 不过,如果您有使用 wu ftp 登录文件的分析软件,这里才需要设定为 YES

        nopriv_user=nobody
        我们的 vsftpd 预设以 nobody 作为此一服务执行者的权限。因为 nobody 的权限 相当的低,因此即使被入侵,入侵者仅能取得 nobody 的权限

        pam_service_name=vsftpd
        这个是 pam 模块的名称,我们放置在 /etc/pam.d/vsftpd 即是这个

分享到:
评论

相关推荐

    Linuxvsftpd的配置.pdf

    Linux vsftpd 配置详解 Vsftpd 是一个非常安全的 FTP 守护进程,可以在 Linux 操作系统中使用。本文将详细介绍如何配置 vsftpd,以便实现 root 用户和普通用户的 FTP 登录。 一、Root 用户的 FTP 配置 1. 打开 /...

    vsftpd配置文件详解 

    ### vsftpd配置文件详解 #### 一、概述 VSFTPD (Very Secure FTP Daemon) 是一款免费开源的FTP服务程序,在Linux系统中广泛使用。它不仅提供了强大的安全性,还支持多种认证方式以及灵活的配置选项。对于Ubuntu...

    linux vsftpd 一键配置、用户权限配置脚本

    该FTP是配置在linux环境上的vsftpd,可以为FTP用户制定任意主目录,分配任意权限,很灵活、方便,有说明ReadMe.txt 首先 确认 linux 系统的 selinux 和防火墙,这些自己百度修改吧。 包含: 一键初始化配置vsftpd ....

    linux离线安装vsftpd包.zip

    Linux系统中的VSFTPD(Very Secure FTP Daemon)是一款流行的FTP服务器软件,因其高度的安全性和配置灵活性而被广泛使用。在没有网络连接的情况下,通过离线安装包进行VSFTPD的安装是一个常见需求,特别是对于那些...

    linux 系统vsftpd服务配置文档

    ### Linux系统vsftpd服务配置详解 #### 一、引言 在Linux系统中,vsftpd(Very Secure FTP Daemon...上述内容涵盖了vsftpd配置文件中的关键配置项及其含义,希望能为正在部署和管理vsftpd服务的技术人员提供有益参考。

    linux下vsftpd详细配置说明

    linux下vsftpd详细配置说明文档.... linux下vsftpd详细配置说明文档....

    Linux系统vsftpd服务加固1

    Linux系统 vsftpd服务加固1.安装补丁备份vsftp应用配置,联系操作系统厂商,获取最新版vsftp软件包,升级安装在http://vsftpd.be

    linux-vsftpd安装配置教程

    "Linux-vsftpd安装配置教程" 本教程旨在指导读者安装和配置Linux系统下的vsftpd服务器。vsftpd是Linux系统下的一个FTP服务器软件,提供了anonymous和local用户两种身份验证方式。本教程将详细介绍vsftpd的安装、...

    Linuxvsftpd的配置[定义].pdf

    在Linux系统中,配置vsftpd对于管理和提供FTP服务至关重要。本文将详细讲解如何配置Linux vsftpd以实现不同用户级别的访问控制。 首先,我们关注root用户的FTP配置。在Fedora 13系统中,为了防止root用户通过FTP...

    vsftpd配置文件详解.doc

    vssftp配置文件详解,包含vsftpd所有配置文件路径和用途说明。

    linux安装vsftpd配置FTP服务器

    ### Linux安装vsftpd配置FTP服务器详解 在Linux系统中,vsftpd是配置FTP服务的常用工具之一,因其安全性和稳定性而广受好评。本文将深入解析如何在Linux环境中安装与配置vsftpd,搭建FTP服务器,以及进行必要的安全...

    linux下安装vsftpd服务

    Linux 下安装 vsftpd 服务 在 Linux 系统中,安装 vsftpd 服务可以提供 FTP 服务器功能,vsftpd 是目前 ...通过本文,我们可以了解到安装 vsftpd 服务的步骤和注意事项,并掌握相关的 Linux 命令和配置文件的使用。

    linux vsftp 配置指南

    ### Linux VSFTPD配置详解 #### 一、概述 VSFTPD是一款专为安全性而设计的免费开源FTP服务器软件,广泛应用于Linux系统中。本文旨在详细介绍VSFTPD配置的各项细节,帮助管理员根据自身需求定制最适合的FTP服务环境...

    Centos7.9安装配置vsftpd

    CentOS 7.9 安装配置 vsftpd 在本文中,我们将详细介绍如何在 CentOS 7.9 上安装和配置 vsftpd,以实现匿名用户的上传和下载操作。 一、关闭防火墙 在配置 vsftpd 之前,需要关闭防火墙,以免防火墙的限制导致-...

    RHEL5 vsftpd配置

    这需要额外的配置步骤,包括设置数据库连接、创建用户数据库以及修改vsftpd配置以使用虚拟用户认证。 在所有这些配置完成后,记得启动或重启vsftpd服务以应用更改。在RHEL5中,你可以使用`service vsftpd start`或`...

    Redhat Linux上FTP服务器Vsftpd配置

    详细描述在Linux上配置FTP服务,Vsftpd服务的配置方式包含两种:1、系统用户配置2、非系统用户配置。用户可以按照改文档进行操作配置。

    vsftpd详细配置解读

    ### vsftpd详细配置解读 #### 一、概述 VSFTPD (Very Secure FTP ...以上配置仅为VSFTPD配置文件的一部分,实际应用中还需根据具体需求调整其他选项。通过这些详细的配置,VSFTPD 能够为用户提供安全可靠的FTP服务。

    linux vsftpd安装方法.doc

    ### Linux vsftpd 安装方法详解 ...通过本文介绍的方法,您可以在Linux系统上成功安装并配置vsftpd服务。无论是通过RPM包还是源码编译,都能满足不同场景的需求。希望这些步骤能帮助您更好地管理Linux环境下的FTP服务。

Global site tag (gtag.js) - Google Analytics