• asp.net core 简单部署之FTP配置(CentOS 7.0安装配置Vsftp服务器)


    配置过程原文地址:http://www.osyunwei.com/archives/9006.html

    • 坑和结果
    1. 正确的跟着这个内容走,是靠谱的。
    2. 我自己给自己踩了个坑,请参照文章的朋友注意第七条:七、在/etc/pam.d/vsftpd的文件头部加入以下信息(在后面加入无效)
    3. 一些简单操作和命令,小白的我也是吃尽了苦头:
      • cat:查看文件  cat /etc/vsftpd/virtusers
      • vi:编辑文件  vi /etc/vsftpd/virtusers。
      • 编辑文件需要注意,按键盘I是开始编辑,文件内容过长时,请注意使用方向键浏览。
      • 编辑状态下退出需要先按ESC,然后输入:wq!,表示强制保存退出。:q!表示强制退出不保存。
    • 以下是配置过程

    一、配置防火墙,开启FTP服务器需要的端口

    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。

    1、关闭firewall:

    systemctl stop firewalld.service #停止firewall
    
    systemctl disable firewalld.service #禁止firewall开机启动
    

      

    2、安装iptables防火墙

    yum install iptables-services #安装
    
    vi /etc/sysconfig/iptables #编辑防火墙配置文件
    
    # Firewall configuration written by system-config-firewall
    
    # Manual customization of this file is not recommended.
    
    *filter
    
    :INPUT ACCEPT [0:0]
    
    :FORWARD ACCEPT [0:0]
    
    :OUTPUT ACCEPT [0:0]
    
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    -A INPUT -p icmp -j ACCEPT
    
    -A INPUT -i lo -j ACCEPT
    
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    
    -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 10060:10090 -j ACCEPT
    
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    
    COMMIT
    
    :wq! #保存退出
    
    systemctl restart iptables.service #最后重启防火墙使配置生效
    
    systemctl enable iptables.service #设置防火墙开机启动

    说明:21端口是ftp服务端口;10060到10090是Vsftpd被动模式需要的端口,可自定义一段大于1024的tcp端口。

    二、关闭SELINUX

    vi /etc/selinux/config
    
    #SELINUX=enforcing #注释掉
    
    #SELINUXTYPE=targeted #注释掉
    
    SELINUX=disabled #增加
    
    :wq! #保存退出
    
    setenforce 0 #使配置立即生效

    三、安装vsftpd

    yum install -y vsftpd #安装vsftpd
    
    yum install -y psmisc net-tools systemd-devel libdb-devel perl-DBI  #安装vsftpd虚拟用户配置依赖包
    
    systemctl start vsftpd.service #启动
    
    systemctl enable vsftpd.service #设置vsftpd开机启动

    四、配置vsftp服务器

    cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-bak #备份默认配置文件

    执行以下命令进行设置

    sed -i "s/anonymous_enable=YES/anonymous_enable=NO/g" '/etc/vsftpd/vsftpd.conf'
    
    sed -i "s/#anon_upload_enable=YES/anon_upload_enable=NO/g" '/etc/vsftpd/vsftpd.conf'
    
    sed -i "s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
    
    sed -i "s/#chown_uploads=YES/chown_uploads=NO/g" '/etc/vsftpd/vsftpd.conf'
    
    sed -i "s/#async_abor_enable=YES/async_abor_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
    
    sed -i "s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
    
    sed -i "s/#ascii_download_enable=YES/ascii_download_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
    
    sed -i "s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome to FTP service./g" '/etc/vsftpd/vsftpd.conf'
    
    echo -e "use_localtime=YES
    listen_port=21
    chroot_local_user=YES
    idle_session_timeout=300
    
    
    data_connection_timeout=1
    guest_enable=YES
    guest_username=vsftpd
    
    
    user_config_dir=/etc/vsftpd/vconf
    virtual_use_local_privs=YES
    
    
    pasv_min_port=10060
    pasv_max_port=10090
    
    
    accept_timeout=5
    connect_timeout=1" >> /etc/vsftpd/vsftpd.conf

    五、建立虚拟用户名单文件

    touch /etc/vsftpd/virtusers

    编辑虚拟用户名单文件:(第一行账号,第二行密码,注意:不能使用root做用户名,系统保留)

    vi /etc/vsftpd/virtusers
    
    web1
    
    123456
    
    web2
    
    123456
    
    web3
    
    123456
    
    :wq! #保存退出

    六、生成虚拟用户数据文件

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

    七、在/etc/pam.d/vsftpd的文件头部加入以下信息(在后面加入无效)

    修改前先备份 

    cp /etc/pam.d/vsftpd /etc/pam.d/vsftpdbak

    修改内容

    vi /etc/pam.d/vsftpd
    
    auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
    
    account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

    注意:如果系统为32位,上面改为lib,否则配置失败

    八、新建系统用户vsftpd,用户目录为/home/wwwroot, 用户登录终端设为/bin/false(即使之不能登录系统)

    useradd vsftpd -d /home/wwwroot -s /bin/false
    
    chown vsftpd:vsftpd /home/wwwroot -R
    
    chown www:www /home/wwwroot -R #如果虚拟用户的宿主用户为www,需要这样设置。

    九、建立虚拟用户个人Vsftp的配置文件

    mkdir /etc/vsftpd/vconf
    
    cd /etc/vsftpd/vconf
    
    touch web1 web2 web3 #这里创建三个虚拟用户配置文件
    
    mkdir -p /home/wwwroot/web1/http/
    
    vi web1 #编辑用户web1配置文件,其他的跟这个配置文件类似
    
    local_root=/home/wwwroot/web1/http/
    
    write_enable=YES
    
    anon_world_readable_only=NO
    
    anon_upload_enable=YES
    
    anon_mkdir_write_enable=YES
    
    anon_other_write_enable=YES
    
    allow_writeable_chroot=YES

    十、最后重启vsftpd服务器

    systemctl restart vsftpd.service

    备注:

    guest_username=vsftpd #指定虚拟用户的宿主用户(就是我们前面新建的用户)
    
    guest_username=www #如果ftp目录是指向网站根目录,用来上传网站程序,可以指定虚拟用户的宿主用户为nginx运行账户www,可以避免很多权限设置问题
  • 相关阅读:
    __dict__
    谷歌浏览器如何清除当前页面的缓存
    博客园插入超链接时如何取消下划线
    杂七杂八
    博客园首页如何添加 Live 2D 模型
    访问 IIS 元数据库失败 的解决方法 .
    VS 关于无法打开项目文件,此安装不支持该项目类型的问题
    汉字转为unicode
    Windchill 预览效果偏向左边
    MD04
  • 原文地址:https://www.cnblogs.com/cnlizhipeng/p/netcore_ftp_centos.html
Copyright © 2020-2023  润新知