zoukankan      html  css  js  c++  java
  • CentOS7 FTP安装与配置

    CentOS7 FTP安装与配置

    1、FTP的安装

    #安装
    yum install -y vsftpd

    #设置开机启动
    systemctl enable vsftpd.service

    #启动
    systemctl start vsftpd.service

    #停止
    systemctl stop vsftpd.service

    #查看状态
    systemctl status vsftpd.service

    2、配置FTP 

    #打开配置文件
    vim /etc/vsftpd/vsftpd.conf
    
    #显示行号
    :set number
    
    #修改配置 12 行
    anonymous_enable=NO
    
    #修改配置 33 行
    anon_mkdir_write_enable=YES
    
    #修改配置48行
    chown_uploads=YES
    
    #修改配置72行
    async_abor_enable=YES
    
    #修改配置82行
    ascii_upload_enable=YES
    
    #修改配置83行
    ascii_download_enable=YES
    
    #修改配置86行
    ftpd_banner=Welcome to blah FTP service.

    #修改配置100行
    chroot_local_user=YES #添加下列内容到vsftpd.conf末尾 use_localtime
    =YES listen_port=21 idle_session_timeout=300 guest_enable=YES guest_username=vsftpd user_config_dir=/etc/vsftpd/vconf data_connection_timeout=1 virtual_use_local_privs=YES pasv_min_port=40000 pasv_max_port=40010 accept_timeout=5 connect_timeout=1
    allow_writeable_chroot=YES

    3、建立用户文件

    #创建编辑用户文件
    vim /etc/vsftpd/virtusers
    #第一行为用户名,第二行为密码。不能使用root作为用户名 

    leo
    12345

    4、生成用户数据文件

    db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
    
    #设定PAM验证文件,并指定对虚拟用户数据库文件进行读取
    
    chmod 600 /etc/vsftpd/virtusers.db 

    5、修改 /etc/pam.d/vsftpd 文件

    # 修改前先备份 
    
    cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
    
    vi /etc/pam.d/vsftpd
    #先将配置文件中原有的 auth 及 account 的所有配置行均注释掉
    auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers 
    account sufficient
    /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

    # 如果系统为32位,上面改为lib

    6、新建系统用户vsftpd,用户目录为/home/vsftpd

    #用户登录终端设为/bin/false(即:使之不能登录系统)
    useradd vsftpd -d /home/vsftpd -s /bin/false
    chown -R vsftpd:vsftpd /home/vsftpd

    7、建立虚拟用户个人配置文件

    mkdir /etc/vsftpd/vconf
    cd /etc/vsftpd/vconf
    
    #这里建立虚拟用户leo配置文件
    touch leo
    #编辑leo用户配置文件,内容如下,其他用户类似 vi leo local_root
    =/home/vsftpd/leo/ write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES

    #建立leo用户根目录
    mkdir -p /home/vsftpd/leo/

    8、防火墙设置

    IPtables 的设置方式:
    vi /etc/sysconfig/iptables #编辑iptables文件,添加如下内容,开启21端口 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 40000:40010 -j ACCEPT


    firewall 的设置方式:
    firewall-cmd --zone=public --add-service=ftp --permanent

    firewall-cmd --zone=public --add-port=21/tcp --permanent
    firewall-cmd --zone=public --add-port=40000-40010/tcp --permanent 

    9、重启vsftpd服务器

    systemctl restart vsftpd.service

    10、使用ftp工具连接测试

    这个时候,使用ftp的工具连接时,我们发现是可以连接的。传输文件的时候,会发现文件上传和下载都会出现

    500、503 、200等问题。这个时候,可以进行以下操作:

    方式一、关闭SELINUX

    #打开SELINUX配置文件
    vim /etc/selinux/config
    
    
    #修改配置参数
    #注释  
    SELINUX=enforcing
    
    #增加  
    SELINUX=disabled
    
    
    #修改完成后,需要重启!

    方式二、修改SELINUX

    setenforce 0 #暂时让SELinux进入Permissive模式
    
    
    #列出与ftp相关的设置
    getsebool -a|grep ftp
    
    
    #以下是显示出来的权限,off是关闭权限,on是打开权限。不同的机器显示的可能不一样。我看了我的显示的,和网上其他教程就不太一样
    ftp_home_dir --> off
    ftpd_anon_write --> off
    ftpd_connect_all_unreserved --> off
    ftpd_connect_db --> off
    ftpd_full_access --> off
    ftpd_use_cifs --> off
    ftpd_use_fusefs --> off
    ftpd_use_nfs --> off
    ftpd_use_passive_mode --> off
    httpd_can_connect_ftp --> off
    httpd_enable_ftp_server --> off
    sftpd_anon_write --> off
    sftpd_enable_homedirs --> off
    sftpd_full_access --> off
    sftpd_write_ssh_home --> off
    tftp_anon_write --> off
    tftp_home_dir --> off
    
    
    #将包含有 ftp_home_dir 和 ftpd_full_access 相关的都设置为 1
    
    setsebool -P ftp_home_dir 1
    setsebool -P allow_ftpd_anon_write 1 setsebool -P ftp_home_dir 1 setenforce 1 #进入Enforcing模式

    方式三、 SELINUX不对vsftp不做任何限制

    setsebool -P ftpd_connect_all_unreserved 1

    这个时候再使用工具连接,你发现,就可以正常的上传和下载文件了。

    如果还是有问题尝试给我们用户的ftp目录,设置一下操作权限

    chmod -R 775 /home/vsftpd/leo
  • 相关阅读:
    Firemonkey 控件设定字型属性及颜色
    ListView 使用 LiveBindings 显示超过 200 条记录
    Firemonkey ListView 获取项目右方「>」(Accessory) 事件
    XE7 Update 1 选 iOS 8.1 SDK 发布 iPhone 3GS 实机测试
    Firemonkey Bitmap 设定像素颜色 Pixel
    Firemonkey 移动平台 Form 显示使用 ShowModal 范例
    XE7 提交 App(iOS 8)提示「does not contain the correct beta entitlement」问题修复
    XE7 Android 中使用 MessageDlg 范例
    导出 XE6 预设 Android Style (*.style) 档案
    修正 Memo 設定為 ReadOnly 後, 無法有複製的功能
  • 原文地址:https://www.cnblogs.com/xiaoyaojinzhazhadehangcheng/p/14073707.html
Copyright © 2011-2022 走看看