• Centos7 FTP服务安装,Centos FTP安装配置


    一、安装FTP服务端

    yum  install -y vsftpd

    安装ftp客户端(可省略)

    yum  install -y ftp

    二、FTP服务配置

    1、进入FTP配置文件目录

    cd /etc/vsftpd

    2、备份配置文件vsftpd.conf和去掉所有注释

    mv vsftpd.conf vsftpd.conf.bak
    grep -v "#" vsftpd.conf.bak > vsftpd.conf 

    3、编辑配置文件

    vi vsftpd.conf

    修改的内容

     
    #修改
    #是否支持匿名用户,默认YES,改成NO表示需要用户名密码登录不允许匿名登录
    anonymous_enable=NO
     
    #匿名上传。首先,文件系统上用户的家目录,要具备写权限。其次,ftp服务器要开启允许匿名上传的配置
    anon_upload_enable=YES
     
    #以下取消注释
    #允许匿名用户上传,建立目录
    anon_mkdir_write_enable=YES
     
    #默认只能下载全部读的文件。这句话的意思是说,如果启动了这句话,则匿名用户只能下载所有用户都具备读权限的文件。如果有一个文件,有一个用户不剧本读权限,匿名用户就不能够下载。
    anon_world_readable_only=YES
     
    #匿名用户能否删除和修改上传的文件
    anon_other_write_enable=YES
     
    #指定匿名上传文件的umask值。umask的值可以直接影响到上传文件的权限。
    anon_umask=077
     
    #指定上传文件的默认的所有者和权限。 完成了这些指定之后,匿名用户上传的元数据就是我们指定的那些内容。
    chown_uploads=YES
    #chown_username=wang
    #chown_upload_mode=0644
     
    #所有系统用户都映射成guest用户,但是映射的guest账户,需要人为地去指定下。
    #guest_enable=YES
    #guest_username=vsftpd
     
    #是否允许Linux用户登陆,默认是允许的,当然也可以禁止。
    local_enable=YES
     
    #是否允许Linux用户上传文件,如果用户默认允许登陆的话,linux用户登陆成功之后,默认位于自己的家目录,这时是允许上传文件的。 如果将下面的这句话,改成no,则服务拒绝linux用户上传文件,即便位于自己的家目录也不可以。
    #write_enable=YES
     
    #指定系统用户上传文件的默认权限
    #local_umask=022
     
    #非匿名用户登录所在目录,当使用Linux用户登陆成功之后,就不会默认在自己的家目录了。相反,会位于下面指定的目录里。
    #local_root=/ftproot
     
    #禁锢所有的用户在家目录中的意思是说,用户登陆成功之后,不能够随意切换目录,只能够在自己的家目录中进行操作。
    chroot_local_user=YES
     
    #ASCII码支持
    async_abor_enable=YES
    ascii_upload_enable=YES
    ascii_download_enable=YES
     
    #登录提示信息
    ftpd_banner=Welcome to FTP server.  
    # 这一句话优先生效
    #banner_file=/etc/vsftpd/ftpbanner.txt
     
    #设置是否使用当地时间。默认就是YES
    use_localtime=YES
     
    #虚拟用户建立独立的配置文件
    user_config_dir=/etc/vsftpd/conf
     
    listen_port=21
    virtual_use_local_privs=YES
     
    ##被动模式端口
    pasv_min_port=40000
    pasv_max_port=40010
     
    # 被动模式数据连接超时时长,时间单位是秒
    accept_timeout=10
    #主动模式数据连接超时时长,时间单位是秒
    connect_timeout=10
    #数据连接无数据输超时时长,时间单位是秒
    data_connection_timeout=300
    # 无命令操作超时时长,时间单位是秒
    idle_session_timeout=300
     
    allow_writeable_chroot=YES

    三、创建虚拟用户

    创建虚拟用户,是为了避免FTP用户直接登录到服务器

    1、创建虚拟用户配置文件

    vi ftp_user.conf

    增加内容:奇数行是账号,偶数行是密码,下面第一行是账号,第二行是密码

    ftpuser
    ftpuser123

    2、加密虚拟用户配置文件

    db_load -T -t hash -f ftp_user.conf ftp_user.db

    如果没有db_load命令,需要安装:yum install db4 db4-utils

    改变权限和删除未加密的配置

    chmod 600 ftp_user.db
    rm -f  ftp_user.conf

    3、修改FTP的访问权限

    先备份

    cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

    修改权限文件

    vi /etc/pam.d/vsftpd

    先将配置文件中原有的 auth 及 account 的所有配置行均注释掉(不注释掉虚拟用户会登录不上),添加两行信息

    auth required pam_userdb.so db=/etc/vsftpd/ftp_user
    account required pam_userdb.so db=/etc/vsftpd/ftp_user

    4、增加虚拟用户,只能登录FTP,不能登录后台

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

    修改文件夹的拥有者

    chown -R ftpuser:ftpuser /home/ftpuser

    5、虚拟用户配置文件

    创建虚拟用户配置文件目录

    mkdir -p /etc/vsftpd/conf

    创建虚拟用户的配置文件(ftpuser文件和刚才创建的数据库文件的用户名必须一致)

    vi /etc/vsftpd/conf/ftpuser

    增加的内容:

    #用户的默认登陆目录。也就是FTP用户登陆成功之后的默认路径。
    local_root=/home/ftpuser/ftpuser
    write_enable=YES
    anon_world_readable_only=NO
    #虚拟用户上传权限
    anon_upload_enable=YES
    #虚拟用户创建文件夹
    anon_mkdir_write_enable=YES
    ## 虚拟的其他用户对指定用户目录的写权限
    anon_other_write_enable=YES

    创建FTP传输目录,对应上面的 local_root 配置项

    mkdir -p /home/ftpuser/ftpuser
    chown ftpuser:ftpuser /home/ftpuser/ftpuser
    chmod 775 /home/ftpuser/ftpuser

    四、开放FTP端口和FTP服务

    firewall-cmd --permanent --zone=public --add-service=ftp
    firewall-cmd --permanent --zone=public --add-port=21/tcp 
     
    #被动模式的端口
    firewall-cmd --permanent --zone=public --add-port=40000-40010/tcp
     
    #重新加载生效
    firewall-cmd --reload
    firewall-cmd --list-all
    firewall-cmd --zone=public --list-ports

    五、FTP启动和设置自动启动

    #启动
    systemctl start vsftpd
    #设置自动启动
    systemctl enable vsftpd
    #查看状态
    systemctl status vsftpd.service
    #重启
    systemctl restart vsftpd

    六、FTP访问地址

    ftp://192.168.10.100/

    七、错误解决

    1、500 OOPS: vsftpd: cannot locate user specified in 'guest_username':vsftpd

     注释下面的配置
    #guest_enable=YES
    #guest_username=vsftpd

    八、其它命令

    #安装filezilla
    yum install -y filezilla
    运行filezilla
    filezilla &
     
    #Selinux方式:查看防火墙状态
    getenforce
     
    #permissive表示:放任的;纵容的;姑息的;
     
    #临时关闭:setenforce 0
    setenforce 0 ->permissive
     
    #永久关闭:vim /etc/sysconfig/selinux
    将selinux=cnforcing改为selinux=disable
     
     
    Firewall
    1.关闭防火墙:service firewalld stop
     
    2.关闭防火墙:systemctl stop firewalld.service
     
    3.禁止防火墙开机启动:systemctl disable firewalld.service
     
    4,查看防火墙状态:firewall-cmd --state

    (时间宝贵,分享不易,捐赠回馈,^_^)

    ================================

    ©Copyright 蕃薯耀 2022-04-19

    https://www.cnblogs.com/fanshuyao/

  • 相关阅读:
    python 学习笔记7(类/对象的属性;特性,__getattr__)
    linux 误删文件恢复
    python 学习笔记6(数据库 sqlite)
    hive 函数 Cube
    边标志法填充多边形
    tolua#代码简要分析
    CocoaAsyncSocket + Protobuf 处理粘包和拆包问题
    【设计模式】适配器模式
    【设计模式】外观模式
    【操作系统】进程管理(二)
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/16165576.html
Copyright © 2020-2023  润新知