• CentOS 7 安装配置 Vsftpd


    https://blog.imzhengfei.com/centos-an-zhuang-pei-zhi-vsftpd/

    vsftpd 是“very secure FTP daemon”的缩写,是一款在Linux发行版中最受推崇的 FTP 服务器程序。特点是小巧轻快,安全易用。支持很多其他的 FTP 服务器所不支持的特征,比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

    安装 Vsftpd

    安装 Vsftpd

    更新 yum 源

    yum -y update
    
    Shell

    检查是否已安装:

    rpm -qa | grep vsftpd
    
    Shell

    如果无,则安装:

    yum -y install vsftpd
    
    Shell

    如果有,则更新:

    yum -y update vsftpd
    
    Shell

    查看版本信息:

    vsftpd -v
    
    Shell

    vsftpd: version 3.0.2

    启动 vsftpd 服务:

    systemctl start vsftpd.service
    
    Shell

    设置开机启动:

    systemctl enable vsftpd.service
    
    Shell

    安装依赖工具

    安装 Berkeley DB,用于生成虚拟用户数据 db 文件:

    yum -y install db4-utils
    
    Shell

    安装 PAM,用于用户认证:

    yum -y install pam*
    
    Shell

    配置 Vsftpd

    核心配置

    备份默认的配置文件:

    mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
    
    Shell

    重新创建配置文件:

    vi /etc/vsftpd/vsftpd.conf
    
    Shell

    添加配置信息**(注意等号两边不能有空格)**:

    anonymous_enable=NO
    local_enable=YES
    local_umask=022
    #
    tcp_wrappers=NO
    reverse_lookup_enable=NO
    pam_service_name=vsftpd
    #
    userlist_enable=YES
    userlist_deny=NO
    userlist_file=/etc/vsftpd/user_list
    #
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
    allow_writeable_chroot=YES
    #
    listen=YES
    listen_port=21
    connect_from_port_20=YES
    pasv_enable=YES
    pasv_promiscuous=YES
    pasv_min_port=8000
    pasv_max_port=8100
    #
    accept_timeout=120
    connect_timeout=120
    data_connection_timeout=180
    idle_session_timeout=600
    local_max_rate=0
    #
    dirmessage_enable=NO
    xferlog_enable=YES
    xferlog_file=/var/log/vsftpd.log
    #log_ftp_protocol=YES
    xferlog_std_format=YES
    #
    guest_enable=YES
    guest_username=root
    virtual_use_local_privs=YES
    user_config_dir=/etc/vsftpd/vuser_conf
    
    Shell

    注意:guest_username 一般填写目录所有者,一般为 root 或者 www、ftp 等。

    虚拟用户权限配置

    备份 user_list(允许访问 FTP 的用户名单):

    mv /etc/vsftpd/user_list /etc/vsftpd/user_list.bak
    
    Shell

    重新创建 user_list 文件并添加允许访问的 FTP 用户名(一行一个):

    vi /etc/vsftpd/user_list
    
    Shell

    创建 chroot_list 文件:

    touch /etc/vsftpd/chroot_list
    
    Shell

    如果有允许访问上级目录的用户,在该文件中添加用户名(一行一个)。

    虚拟用户独立配置

    新建虚拟用户独立配置路径文件夹:

    mkdir /etc/vsftpd/vuser_conf
    
    Shell

    添加虚拟用户独立配置(文件名为用户名):

    vi /etc/vsftpd/vuser_conf/test
    
    Shell

    写入该用户的独立配置:

    local_root=/home/wwwroot/www.xxx.com
    write_enable=YES
    download_enable=YES
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    
    Shell

    注意: local_root 为 FTP 用户根目录。

    日志文件

    创建日志文件:

    touch /var/log/vsftpd.log
    
    Shell

    设置文件权限:

    chown ftp:ftp /var/log/vsftpd.log
    
    Shell

    重启 Vsftpd:

    systemctl restart vsftpd.service
    
    Shell

    虚拟用户认证

    生成用户认证文件

    添加虚拟用户认证文件:

    vi /etc/vsftpd/vsftpd_vuser
    
    Shell

    在文件中添加虚拟用户名和密码,奇数行用户名,偶数行密码:

    test
    test123
    
    Shell

    生成虚拟用户认证文件**(每次修改虚拟用户密码均需重新生成一次)**:

    db_load -T -t hash -f /etc/vsftpd/vsftpd_vuser /etc/vsftpd/vsftpd_vuser.db
    
    Shell

    如果出现以下错误:

    db_load: unexpected end of input data or key/data pair、db_load: odd number of key/data pairs

    请在 /etc/vsftpd/vsftpd_vuser 最后添加一行空行,再尝试生成用户认证文件。

    设置文件权限,只有 root 用户可以读写:

    chmod 600 /etc/vsftpd/vsftpd_vuser.db
    
    Shell

    配置 PAM

    备份 vsftpd 的 PAM 认证文件:

    mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
    
    Shell

    重新创建 PAM 文件:

    vi /etc/pam.d/vsftpd
    
    Shell

    添加配置:

    auth required pam_userdb.so db=/etc/vsftpd/vsftpd_vuser
    account required pam_userdb.so db=/etc/vsftpd/vsftpd_vuser
    
    Shell

    64 位系统再在下面添加以下两行

    auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_vuser
    account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_vuser
    
    Shell

    防火墙设置

    查看 ftp 服务是否已经永久启用:

    firewall-cmd --permanent --query-service=ftp
    
    Shell

    如果没有,则启用 ftp 服务:

    firewall-cmd --permanent --add-service=ftp
    
    Shell

    给 ftp 服务添加 vsftpd 命令传输端口和被动模式端口:

    # 添加 vsftpd 命令传输端口 20/tcp
    firewall-cmd --permanent --service=ftp --add-port=20/tcp
    # 添加上面设置的被动模式端口段 8000-8100/tcp
    firewall-cmd --permanent --service=ftp --add-port=8000-8100/tcp
    
    Shell

    查看下次重启(防火墙重新加载、服务器重启或者系统重启)之后永久生效的服务:

    firewall-cmd --permanent --list-service
    
    Shell

    ssh http ftp

    查看下次重启(防火墙重新加载、服务器重启或者系统重启)之后永久生效的 ftp 服务的信息:

    firewall-cmd --permanent --info-service=ftp
    
    Shell

    ftp
    ports: 21/tcp 20/tcp 8000-8100/tcp
    protocols:
    source-ports:
    modules: ftp
    destination:

    重新加载防火墙规则:

    firewall-cmd --reload
    
    Shell

    注意: 阿里云主机需要在安全组规则中添加入方向的 20/tcp, 21/tcp, 8000-8100/tcp 端口。

    FTP 客户端

    推荐使用免费开源的全平台支持的 FileZilla:FileZilla 官方下载

    添加站点信息,常规配置即可:

    • 主机:填写主机 IP
    • 端口:如果没改过端口不需填写
    • 协议:FTP - 文件传输协议
    • 加密:只使用普通的 FTP
    • 登录类型:正常
    • 用户:test
    • 密码:test123

    高级配置:

    • 默认本地目录:选择电脑上面需要和服务器上面传输文件的路径
    • 默认远程目录:一般情况下是根目录,就填写 /
    • 同步浏览:开启后在两边界面切换目录时会同步切换,只有一边有的目录会提示是否下载或上传
    • 比较浏览:会高亮显示两边不同的文件或目录,对齐显示都有的文件或目录
  • 相关阅读:
    Jmeter接口测试与数据驱动
    Jmeter内存溢出
    Mac下多版本pip共存
    Linux命令: ps
    intellij ultimate2019.3 注册
    纪念已经逝去的十年
    H3C路由器设置NAT回环、端口回流
    理清PHP在Linxu下执行时的文件权限
    windows下vagrant的安装使用
    无限极分类(adjacency list)的三种方式(迭代、递归、引用)
  • 原文地址:https://www.cnblogs.com/zquan/p/9954915.html
Copyright © 2020-2023  润新知