美文网首页
centos7搭建FTP

centos7搭建FTP

作者: 我已不是少年郎 | 来源:发表于2021-03-11 19:43 被阅读0次

    1、背景

    断路器开关供应商给我们定制固件,其中有一个OTA升级需求,我提出HTTP下载固件、或MQTT协议按字节流分包发送固件,结果开发固件的小伙跟我说用FTP下载固件,当时我就懵了。


    一开始我们定的协议是HTTP下载,后来过了一周我催了一下,他说他以前用FTP,用这个才能快速搞定,你能搞FTP吗?什么叫能不能,只要你需要一定给你搞定。说完这句话我就后悔的要死,FTP好搞,业务逻辑系统对接麻烦,但是承诺的又不能不做,于是搭了个FTP。

    2、安装配置vsftpd

    yum -y install vsftpd

    开机启动
    systemctl restart vsftpd
    systemctl enable vsftpd

    配置文件(主要参数节选)vim /etc/vsftpd/vsftpd.conf

    #任何人可操作
    anonymous_enable=NO
    #可写
    write_enable=YES
    #权限
    local_umask=022
    #20端口
    connect_from_port_20=YES
    
    #是否可以列出文件,需要在文件目录添加chroot_list文件,并写入ftp账号
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
    
    #ipv4开启
    listen=YES
    listen_ipv6=NO
    
    #开启的ftp目录
    local_root=/home/ftproot
    use_localtime=YES
    
    #配置端口30000-30999记得在云服务器上开启端口,否则会报227 Passive 
    pasv_enable=YES
    pasv_min_port=30000
    pasv_max_port=30999
    

    修改vim /etc/pam.d/vsftpd
    网上有文章说pam_shells.so改为pam_shells_nologin.so,其实具体自己去看自己的库叫什么名字cd /usr/lib64/security

    auth required pam_shells.so
    改为:
    auth required pam_nologin.so

    创建用户
    useradd -s /bin/nologin -d /home/ftproot otaname

    创建文件把用户名otaname写入一行
    vim /etc/vsftpd/chroot_list

    重启ftp服务即可。

    3、填坑

    安装时以前有个下载包不能用了,按照提示执行

    yum-config-manager --disable ***

    227 Entering Passive Mod

    配置端口30000-30999记得在云服务器上开启端口
    pasv_enable=YES
    pasv_min_port=30000
    pasv_max_port=30999

    530 Login incorrect

    其他人文章说pam_shells.so改为pam_shells_nologin.so,实际上需要/usr/lib64/security目录下自己去查库叫什么名字。
    tail -f /var/log/secure
    查看日志即可发现报错,没有pam_shells_nologin.so这个文件。

    500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list

    是否可以列出文件,需要在文件目录添加chroot_list文件,并写入ftp账号
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list

    相关文章

      网友评论

          本文标题:centos7搭建FTP

          本文链接:https://www.haomeiwen.com/subject/kzsoqltx.html