• ftp配置文件详解


    ### 主配置文件(/etc/vsftpd/vsftpd.conf)

    严格来说,整个 vsftpd 的配置文件就只有这个档案!这个档案的设定是以 bash
    的变量设定相同的方式来处理的, 也就是`参数=设定值`来设定的,注意,
    等号两边不能有空白喔!至于详细的 vsftpd.conf 可以使用 `man 5 vsftpd.conf` 来详查。

    #### 与服务器环境较相关的设定值

    1. connect_from_port_20=YES (NO)

    ftp-data 的端口号

    2. listen_port=21

    vsftpd 使用的命令通道 port,如果你想要使用非正规的端口号,这个设置。
    不过你必须要知道,这个设定值仅适合以 stand alone 的方式来启动!
    (对于 super daemon 无效)

    3. dirmessage_enable=YES (NO)

    当用户进入某个目录时,会显示该目录需要注意的内容,显示的档案默认
    是 `.message` ,你可以使用第四个设置来修改。

    4. message_file=.message

    当 dirmessage_enable=YES 时,可以修改这个设置来让 vsftpd 寻找该文件来显示消息!

    5. listen=YES (NO)

    若设置为 YES 表示 vsftpd 是以 stand alone 的方式来启动的!预设是 NO!
    所以我们的 CentOS 将它改为 YES!这样才能使用 stand alone 的方式来唤醒。

    6. pasv_enable=YES (NO)

    支持数据流的被动式联机模式(passive mode),一定要设定为 YES!

    7. use_localtime=YES (NO)

    是否使用本地时间?vsftpd 预设使用 GMT 时间(格林威治),所以预设的 FTP
    的日期会比中国晚 8 小时,建议修改设定为 YES !

    8. write_enable=YES (NO)

    如果你允许用户上传数据时,就要启动这个设定值

    9. connect_timeout=60

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

    10. accept_timeout=60

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

    11. data_connection_timeout=300

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

    12. idle_session_timeout=300

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

    13. max_clients=0

    如果 vsftpd 是以 stand alone 方式启动的,那么这个设定项目可以设定同一
    时间,最多有多少 client 可以同时连上 vsftpd !限制使用 FTP 的用量!

    14. max_per_ip=0

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

    15. 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 的话,表示随机
    取用而不限制。

    16. ftpd_banner=一些文字说明

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

    17. banner_file=/path/file

    这个设置可以指定某个纯文本档作为使用者登入 vsftpd 服务器时所显示的欢
    迎消息。同时,也能够放置一些让使用者知道本 FTP 服务器的目录架构!

    #### 与实体用户较相关的设定值

    1. guest_enable=YES (NO)

    若这个值设定为 YES 时,那么任何实体账号,均会被假设成为 guest (所以
    预设是不开放的)! 至于访客在 vsftpd 当中,预设会取得 ftp 这个使用者的
    相关权限。但可以通过 guest_username 来修改。

    2. guest_username=ftp

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

    3. local_enable=YES (NO)

    这个设定值必须要为 YES 时,在 /etc/passwd 内的账号才能以实体用户的方式
    登入我们的 vsftpd 服务器!

    4. local_max_rate=0

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

    5. chroot_local_user=YES (NO)

    在预设的情况下,是否要将使用者限制在自己的家目录之内(chroot),如果是
    YES 代表用户默认就会被 chroot,如果是 NO, 则预设是没有 chroot。不过,
    实际还是需要底下的两个参数互相参考才行。为了安全性,这里应该要设定成
    YES 才好。

    6. chroot_list_enable=YES (NO)

    是否启用 chroot 写入列表的功能?与下面的 chroot_list_flie 有关!这个项设置
    要开启,否则底下的列表文件会无效。

    7. chroot_list_file=/etc/vsftpd.chroot_list

    如果 chroot_list_enable=YES 那么就可以设定这个项目了!这个项目与
    chroot_local_user 有关。

    8. userlist_enable=YES (NO)

    是否借助 vsftpd 的抵挡机制来处理某些不受欢迎的账号,与下面的参数设置有关

    9. userlist_deny=YES (NO)

    当 userlist_enable=YES 时才会生效的设定,若此设定值为 YES 时,则当使用
    者账号被列入到相应的文件时, 在该文件内的使用者将无法登入 vsftpd 服务器!
    该文件名与下面设置有关。

    10. userlist_file=/etc/vsftpd/user_list

    若上面 userlist_deny=YES 时,则这个设置就有用处了!在这个文件内的账号
    都无法使用 vsftpd !

    #### 匿名者登入的设定值

    1. anonymous_enable=YES (NO)

    设定为允许 anonymous 登入我们的 vsftpd 主机!预设是 YES ,下面的所有相
    关设置都需要将这个设置为 anonymous_enable=YES 之后才会生效!

    2. anon_world_readable_only=YES (NO)

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

    3. anon_other_write_enable=YES (NO)

    是否允许 anonymous 具有除了写入之外的权限?包括删除与改写服务器上的文件及文件名等权限。
    预设是 NO!如果要设定为 YES,那么开放给 anonymous 写入的目录亦需要调整权限,
    让 vsftpd 的 PID 拥有者可以写入才行!

    4. anon_mkdir_write_enable=YES (NO)

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

    5. anon_upload_enable=YES (NO)

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

    6. deny_email_enable=YES (NO)

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

    7. banned_email_file=/etc/vsftpd/banned_emails

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

    8. no_anon_password=YES (NO)

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

    9. anon_max_rate=0

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

    10. anon_umask=077

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

    #### 关于系统安全方面的一些设定值

    1. ascii_download_enable=YES (NO)

    如果设定为 YES ,那么 client 就优先 (预设) 使用 ASCII 格式下载文件。

    2. ascii_upload_enable=YES (NO)

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

    3. one_process_model=YES (NO)

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

    4. tcp_wrappers=YES (NO)

    当然我们都习惯支持 TCP Wrappers 的!所以设定为 YES!

    5. xferlog_enable=YES (NO)

    当设定为 YES 时,使用者上传与下载文件都会被纪录起来。记录的文件与下一
    个设置有关

    6. xferlog_file=/var/log/xferlog

    如果上一个 xferlog_enable=YES 的话,这里就可以设定了!
    这个是登录文件的文件名。

    7. xferlog_std_format=YES (NO)

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

    8. dual_log_enable=YES, vsftpd_log_file=/var/log/vsftpd.log

    除了 /var/log/xferlog 的 wu-ftp 格式登录文件之外,还可以具有 vsftpd 的独
    特登录文件格式喔!如果你的 FTP 服务器并不是很忙碌, 或许订出两个登录文件的
    撰写 (/var/log/{vsftpd.log,xferlog) 是不错的。

    9. nopriv_user=nobody

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

    10. pam_service_name=vsftpd

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

    ### vsftpd的主程序(/usr/sbin/vsftpd) 

    ### 启动脚本(/etc/rc.d/init.d/vsftpd)  

    ### PAM认证文件(/etc/pam.d/vsftpd)

    这个是 vsftpd 使用 PAM 模块时的相关配置文件。主要用来作为身份认证之用,
    还有一些用户身份的抵挡功能,也是透过这个档案来达成的。
    此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户

    ### 黑名单(/etc/vsftpd/ftpusers)

    与上一个档案有关系,也就是 PAM 模块 (/etc/pam.d/vsftpd) 所指定的那个无
    法登入的用户配置文件啊! 这个档案的设定很简单,你只要将 不想让用户登入
    FTP 的账号 写入这个档案即可。一行一个账号。大部分的系统帐号都在这。

    禁止使用vsftpd的用户列表文件。记录不允许访问FTP服务器的用户名单,管理员可以把一些对系统安全有威胁的用户账号记录在此文件中,以免用户从FTP登录后获得大于上传下载操作的权利,而对系统造成损坏。(注意:linux-4中此文件在/etc/目录下)

    ### 白名单(/etc/vsftpd/user_list)

    这个档案是否能够生效与 vsftpd.conf 内的两个参数有关,分别是
    userlist_enable, userlist_deny。 如果说 /etc/vsftpd/ftpusers 是
    PAM 模块的抵挡设定项目,那么这个 /etc/vsftpd/user_list 则是 vsftpd 自
    定义的抵挡项目。事实上这个档案与 /etc/vsftpd/ftpusers 几乎一模一样, 在
    预设的情况下,你可以将不希望可登入 vsftpd 的账号写入这里。不过这个档案
    的功能会依据 vsftpd.conf 配置文件内的 userlist_deny={YES/NO} 而不同。
    (注意:linux-4中此文件在/etc/目录下)

    ### 限制用的家目录(/etc/vsftpd/chroot_list)

    这个档案预设是不存在的,所以你必须要手动自行建立。这个档案的主要功能是
    可以将某些账号的使用者 chroot 在他们的家目录下!但这个档案要生效与
    vsftpd.conf 内的`chroot_list_enable, chroot_list_file`两个参数有关。
    如果你想要将某些实体用户限制在他们的家目录下而不许到其他目录去,可以启
    动这个设定!

    ### 匿名用户主目录(/var/ftp)

    其实与 ftp 这个账号的家目录有关
    本地用户主目录为:/home/用户主目录,即登录后进入自己家目录 

    ### (匿名用户的下载目录)/var/ftp/pub

    此目录需赋权根chmod 1777 pub(1为特殊权限,使上载后无法删除)

    ### 日志文件(/etc/logrotate.d/vsftpd.log)

  • 相关阅读:
    jenkins
    k8s 驱逐限制
    jenkins+k8s 实现持续集成
    镜像更新备份
    【工具分享】2020年4月 phpstorm2020.1 for mac
    【排坑】mac安装homebrew会遇到的各种问题解决方案
    记一次C盘扩容
    2018夏季工作台之再设计
    left join后面加上where条件浅析
    编程随想篇(2018夏)
  • 原文地址:https://www.cnblogs.com/zhangzhiqin/p/10170201.html
Copyright © 2020-2023  润新知