• Linux上安装FTP


    1、登录FTP,执行安装命令

    yum -y install vsftpd

    2、启动FTP服务器,设置开启自启动

    1. systemctl enable vsftpd.service
    2. systemctl start vsftpd.service
    3. systemctl status vsftpd.service #查看状态, 显示active说明FTP启动成功

    3、修改FTP配置文件/etc/vsftpd/vsftpd.conf

    以下参数比较重要,需要修改:

    1. # 是否开启匿名用户,匿名都不安全,默认NO
    2. anonymous_enable=NO
    3. # 当设定为YES时,使用者上传与下载日志都会被记录起来
    4. xferlog_enable=YES
    5. # 日志成为std格式
    6. xferlog_std_format=YES
    7. # 上传与下载日志存放路径
    8. xferlog_file=/var/log/xferlog
    9. # 通过搭配能实现以下几种效果:
    10. # ①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录
    11. # ②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录
    12. # ③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录
    13. # ④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录
    14. # 限制用户只能在自己的目录活动
    15. chroot_local_user=YES
    16. chroot_list_enable=NO
    17. chroot_list_file=/etc/vsftpd/chroot_list
    18. # 监听ipv6端口
    19. listen_ipv6=YES
    20. port_enable=YES
    21. pasv_enable=YES
    22. pasv_min_port=64000
    23. pasv_max_port=65000
    24. pam_service_name=vsftpd
    25. # 使用允许登录的白名单,在/etc/vsftpd/user_list文件中添加新建的用户ftpuser
    26. userlist_enable=YES
    27. # 是否使用user_list作为黑名单,前提是userlist_enable=YES,我们这里不启用,因为禁止访问名单在/etc/vsftpd/ftpusers
    28. userlist_deny=NO
    29. tcp_wrappers=YES
    30. allow_writeable_chroot=YES
    31. # ftp访问目录
    32. local_root=/home/uploadPath/gz

    完整配置文件参数详解:

    1. # 是否开启匿名用户,匿名都不安全,默认NO
    2. anonymous_enable=NO
    3. # 允许本机账号登录FTP
    4. # 这个设定值必须要为YES时,在/etc/passwd内的账号才能以实体用户的方式登入我们的vsftpd主机
    5. local_enable=YES
    6. # 允许账号都有写操作
    7. write_enable=YES
    8. # 本地用户创建文件或目录的掩码
    9. # 意思是指:文件目录权限:777-022=755,文件权限:666-022=644
    10. local_umask=022
    11. # 进入某个目录的时候,是否在客户端提示一下
    12. dirmessage_enable=YES
    13. # 当设定为YES时,使用者上传与下载日志都会被记录起来
    14. xferlog_enable=YES
    15. # 日志成为std格式
    16. xferlog_std_format=YES
    17. # 上传与下载日志存放路径
    18. xferlog_file=/var/log/xferlog
    19. # 开放port模式的20端口的连接
    20. connect_from_port_20=YES
    21. # 关于系统安全的设定值:
    22. # ascii_download_enable=YES(NO)
    23. # 如果设定为YES,那么client就可以使用ASCII格式下载档案
    24. # 一般来说,由于启动了这个设定项目可能会导致DoS的攻击,因此预设是NO
    25. # ascii_upload_enable=YES(NO)
    26. # 与上一个设定类似的,只是这个设定针对上传而言,预设是NO
    27. ascii_upload_enable=NO
    28. ascii_download_enable=NO
    29. # 通过搭配能实现以下几种效果:
    30. # ①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录
    31. # ②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录
    32. # ③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录
    33. # ④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录
    34. # 限制用户只能在自己的目录活动
    35. chroot_local_user=YES
    36. chroot_list_enable=NO
    37. chroot_list_file=/etc/vsftpd/chroot_list
    38. # 可以更改ftp的端口号,使用默认值21
    39. # listen_port=60021
    40. # 监听ipv4端口,开了这个就说明vsftpd可以独立运行,不用依赖其他服务
    41. listen=NO
    42. # 监听ipv6端口
    43. listen_ipv6=YES
    44. # 打开主动模式
    45. port_enable=YES
    46. # 启动被动式联机(passivemode)
    47. pasv_enable=YES
    48. # 被动模式端口范围:注意:linux客户端默认使用被动模式,windows 客户端默认使用主动模式。在ftp客户端中执行"passive"来切换数据通道的模式。也可以使用"ftp -A ip"直接使用主动模式。主动模式、被动模式是有客户端来指定的
    49. # 上面两个是与passive mode使用的port number有关,如果您想要使用64000650001000个port来进行被动式资料的连接,可以这样设定
    50. # 这两项定义了可以同时执行下载链接的数量
    51. # 被动模式起始端口,0为随机分配
    52. pasv_min_port=64000
    53. # 被动模式结束端口,0为随机分配
    54. pasv_max_port=65000
    55. # 文件末尾添加
    56. # 这个是pam模块的名称,我们放置在/etc/pam.d/vsftpd,认证用
    57. pam_service_name=vsftpd
    58. # 使用允许登录的名单,在/etc/vsftpd/user_list文件中添加新建的用户ftpuser
    59. userlist_enable=YES
    60. # 是否使用user_list作为黑名单,前提是userlist_enable=YES,我们这里不启用,因为禁止访问名单在/etc/vsftpd/ftpusers
    61. userlist_deny=NO
    62. # 允许限制在自己的目录活动的用户拥有写权限
    63. # 不添加下面这个会报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
    64. allow_writeable_chroot=YES
    65. # 当然我们都习惯支持TCP Wrappers的啦
    66. # Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性
    67. tcp_wrappers=YES
    68. # FTP访问目录
    69. local_root=/home/uploadPath/gz

    4、修改文件权限, var/ftp/pub为FTP服务默认的文件目录

    chmod o+w /var/ftp/pub/

    5、防火墙配置

    简单做法:关闭防火墙,不需要额外配置

    systemctl stop firewalld

    如果需要开启防火墙,则需要做以下配置:

    1)通过命令对外开放连接端口和数据传输端口

    1. firewall-cmd --zone=public --add-port=20/tcp --permanent
    2. firewall-cmd --zone=public --add-port=21/tcp --permanent

    2)根据ftp配置文件 pasv_min_port和pasv_max_port 属性对外开放被动模式端口

    firewall-cmd --zone=public --add-port=64000-65000/tcp --permanent

    3)重新加载防火墙配置

    firewall-cmd --reload

    6、创建新的FTP用户,并设置密码:

    1. adduser ftpuser
    2. passwd ftpuser

    7、将新用户添加到用户列表

    echo ftpuser >> /etc/vsftpd/user_list

    8、创建/etc/vsftpd/chroot_list文件

    touch  /etc/vsftpd/chroot_list  #这里不需要把用户ftpuser加入, 但是需要创建这个空文件

    9、重启FTP服务器(一定要重启

    systemctl restart vsftpd.service

    10、接着使用用户ftpuser登陆FTP服务器就可以了

  • 相关阅读:
    【开发指南】AR Foundation 开发环境部署
    mac的vscode配置vue项目环境
    手写RPC框架--5.Netty业务逻辑
    C语言题目练习
    【附源码】计算机毕业设计JAVA校园讲座管理
    Linux目录权限修改-2
    从零开始学习软件测试-第40天笔记
    Swift Combine — Publisher、Operator、Subscriber概念介绍
    LQ0272 矩形运算【计算几何】
    Spring Message源码解析
  • 原文地址:https://blog.csdn.net/luciferlongxu/article/details/132708231