今天有点心血来潮,突然有了个构建ftp服务器的想法,搞了小两个小时,基本上算完工了,其实个人认为没有什么大用,不过就是在网上可以通过浏览器下载文件而已。下面主要介绍一下具体搭建的过程。

步骤一: 安装 vsftpd

  1. 远程连接并登录到 Linux 实例。
  2. 运行命令yum install -y vsftpd安装 vsftpd。出现下图表示安装成功

运行以下命令进入/etc/vsftpd目录,并查看该目录下的文件。

试用

cd /etc/vsftpd
ls

说明

  • /etc/vsftpd/vsftpd.conf 是 vsftpd 的核心配置文件。
  • /etc/vsftpd/ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器。
  • /etc/vsftpd/user_list 是白名单文件,此文件里的用户允许访问 FTP 服务器
  1. 运行以下命令设置FTP服务开机自启动。

    试用

    systemctl enable vsftpd.service
  2. 运行以下命令启动 FTP 服务。

    试用

    systemctl start vsftpd.service
  3. 运行以下命令查看 FTP 服务监听的端口。

    试用

    netstat -antup | grep ftp

步骤二: 配置 vsftpd

vsftpd 安装后默认开启了匿名访问 FTP 服务器的功能。使用匿名访问,您无需输入用户名密码即可登录 FTP 服务器,但没有权限修改或上传文件。

本教程介绍了以下两种配置 vsftpd 的方法,并提供了相关的参数说明,您可以根据具体需要进行参考。

  • 配置匿名用户上传文件权限
  • 配置本地用户登录

配置匿名用户上传文件权限

匿名访问FTP服务器是一种不安全的访问模式,任何人无需密码验证就可以登录到FTP服务器,这种模式一般只用来保存不重要的公开文件,不推荐在生产环境中使用。如果您需要配置匿名用户上传文件的权限,可以参考以下步骤配置:

  1. 修改/etc/vsftpd/vsftpd.conf

    1. 运行vim /etc/vsftpd/vsftpd.conf
    2. 按i 键进入编辑模式。
    3. 将写权限修改为write_enable=YES
    4. 将匿名上传权限修改为anon_upload_enable=YES

按Esc键退出编辑模式,然后输入:wq保存并退出文件

  1. 运行以下命令更改/var/ftp/pub目录的权限,为 FTP 用户添加写权限,并重新加载配置文件。

    试用

    chmod o+w /var/ftp/pub/
    systemctl restart vsftpd.service

配置本地用户登录

本地用户登录是指用户使用 Linux 操作系统的账号和密码登录 FTP 服务器。

vsftpd 安装后默认只支持匿名访问 FTP 服务器,如果您试图使用 Linux 操作系统中的账号登录服务器,将会被 vsftpd 服务拒绝。您可以参考以下步骤配置 vsftpd 服务,以使用Linux账号和密码访问FTP服务器。

  1. 运行以下命令为FTP服务创建一个Linux用户。本示例中,该用户名为ftptest。

    试用

    useradd ftptest
  2. 运行以下命令修改ftptest 用户的密码。

    试用

    passwd ftptest
  3. 创建一个供FTP服务使用的文件目录。

    试用

    mkdir /var/ftp/test
  4. 更改/var/ftp/test目录的拥有者为ftptest。

    试用

    chown -R ftptest:ftptest /var/ftp/test
  5. 输入命令vim /etc/vsftpd/vsftpd.conf打开vsftpd.conf配置文件并按键i进入编辑模式。
  6. 修改vsftpd.conf配置文件。

    FTP服务器可以配置为主动模式或被动模式。

    • 主动模式下,客户端向服务端发送数据端口的信息,由服务端主动连接客户端发送的数据端口。配置FTP为主动模式的参数如下:

      试用

      #禁止匿名登录FTP服务器
      anonymous_enable=NO
      #允许本地用户登录FTP服务器
      local_enable=YES
      #设置本地用户登录后所在的目录
      local_root=/var/ftp/test
      #全部用户被限制在主目录
      chroot_local_user=YES
      #启用例外用户名单
      chroot_list_enable=YES
      #指定例外用户列表,这些用户不被锁定在主目录
      chroot_list_file=/etc/vsftpd/chroot_list#配置其他参数
      allow_writeable_chroot=YES
      local_umask=022
      dirmessage_enable=YES
      xferlog_enable=YES
      connect_from_port_20=YES
      xferlog_std_format=YES
      listen=YES
      pam_service_name=vsftpd
      userlist_enable=YES
      tcp_wrappers=YES
    • 被动模式下,服务端开启并发送数据端口的信息给客户端,由客户端连接服务端开启的数据端口,服务端被动接受连接。在被动模式下,您需要配置服务端可以开启的数据端口范围。配置FTP为被动模式的参数如下:

      试用

      #禁止匿名登录FTP服务器
      anonymous_enable=NO
      #允许本地用户登录FTP服务器
      local_enable=YES
      #设置本地用户登录后所在目录
      local_root=/var/ftp/test
      #全部用户被限制在主目录
      chroot_local_user=YES
      #启用例外用户名单
      chroot_list_enable=YES
      #指定例外用户列表,这些用户不被锁定在主目录
      chroot_list_file=/etc/vsftpd/chroot_list
      #开启被动模式
      pasv_enable=YES
      #FTP服务器公网IP
      pasv_address=<FTP服务器公网IP>
      #设置被动模式下,建立数据传输可使用port范围的最小值
      pasv_min_port=port number
      #设置被动模式下,建立数据传输可使用port范围的最大值
      pasv_max_port=port number#配置其他参数
      local_umask=022
      dirmessage_enable=YES
      xferlog_enable=YES
      xferlog_std_format=YES
      tcp_wrappers=YES
      allow_writeable_chroot=YES
      listen=YES
      listen_ipv6=NO
      pam_service_name=vsftpd
      userlist_enable=YES

      说明 建议您把端口范围设在比较高的一段范围内,比如50000-50010,有助于提高访问FTP服务器的安全性。

  7. 按Esc键退出编辑模式,然后按键:wq保存并退出文件。
  8. 运行vim /etc/vsftpd/chroot_list命令创建chroot_list文件,并写入不受只可以访问其主目录限制的例外用户名单。

    说明 如果没有例外用户也必须要有 chroot_list文件,内容可为空。

  9. 按键Esc退出编辑模式,然后按键:wq保存并退出文件。
  10. 运行以下命令重启vsftpd服务。

    试用

    systemctl restart vsftpd.service

vsftpd.conf 的配置文件参数说明

运行命令cat /etc/vsftpd/vsftpd.conf查看配置文件内容。

用户登录控制:

参数 说明
anonymous_enable=YES 接受匿名用户
no_anon_password=YES 匿名用户login时不询问口令
anon_root=(none) 匿名用户主目录
local_enable=YES 接受本地用户
local_root=(none) 本地用户主目录

用户权限控制:

参数 说明
write_enable=YES 可以上传(全局控制)
local_umask=022 本地用户上传文件的umask
file_open_mode=0666 上传文件的权限配合umask使用
anon_upload_enable=NO 匿名用户可以上传
anon_mkdir_write_enable=NO 匿名用户可以建目录
anon_other_write_enable=NO 匿名用户修改删除
chown_username=lightwiter 匿名上传文件所属用户名

步骤三: 设置安全组

搭建好 FTP 站点后,您需要在实例安全组的入方向添加放行下列 FTP 端口的规则。

  • FTP 为主动模式时:端口21。
  • FTP 为被动模式时:端口21,以及配置文件/etc/vsftpd/vsftpd.conf中参数pasv_min_port和pasv_max_port之间的所有端口。

添加安全组规则的具体步骤,请参见添加安全组规则。

步骤四: 客户端测试

您可以通过 FTP 客户端或浏览器访问 FTP 服务器进行测试。本教程以windows自带的IE(Internet Explorer)浏览器为例,分别为您介绍 FTP 服务器配置为主动模式或被动模式时的访问步骤。

FTP服务器为主动模式

  1. 打开客户端的 IE 浏览器。
  2. 将浏览器设置为主动访问模式。选择 设置 > Internet 选项 > 高级 。勾选 启用 FTP 文件夹视图,取消勾选 使用被动 FTP。
  3. 在地址栏中输入ftp://<FTP服务器IP地址>:FTP端口,例如:ftp://39.10.0.28:21
  4. 在弹出的对话框中,输入用户名和密码,即可对 FTP 文件进行相应权限的操作。

FTP服务器为被动模式

  1. 打开客户端的 IE 浏览器。
  2. 将浏览器设置为被动访问模式。选择 设置 > Internet 选项 > 高级 。勾选 启用 FTP 文件夹视图,勾选 使用被动 FTP。
  3. 在地址栏中输入ftp://<FTP服务器IP地址>:FTP端口,例如:ftp://39.10.0.28:21
  4. 在弹出的对话框中,输入用户名和密码,即可对 FTP 文件进行相应权限的操作。

说明 使用浏览器访问 FTP 服务器出错时,建议您清除浏览器缓存后再尝试。

后续操作

您可以参考 安全加固方案 对 FTP 服务进行安全加固。

linux ftp服务器构建相关推荐

  1. ftp服务器文件在哪,linux ftp服务器文件夹在哪

    linux ftp服务器文件夹在哪 内容精选 换一换 已获取到Android SDK镜像包,并通过MobaXterm工具上传到服务器上的/home目录下.获取方法请参见获取软件包.添加完成后如下图所示 ...

  2. linux FTP服务器访问权限的问题

    当我们搭建好一个FTP服务器后,接下去的工作就是要对这个服务器进行权限的管理与设置.因为这项工作直接关系到FTP服务器上文件的安全,关系到FTP服务器运行的稳定.所以,作为企业的网络管理员,不能够忽视 ...

  3. 免费的FTP linux 服务器中文,linux ftp服务器的搭建和中文字体乱码的解决

    本篇文章主要介绍了Centos 下搭建FTP上传下载服务器的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 首先判断你服务器上是否安装了vsftpd 安装vsftpd ...

  4. linux ftp用户指定多个目录,linux ftp服务器下用户限制目录的方法

    我们使用服务器都要站在安全方面进行考虑,有必要将ftp服务下的用户限制在适当的范围内,那么linux ftp服务器下用户限制目录的方法有哪些呢?一起跟着爱站技术频道小编的步伐来了解一下吧! linux ...

  5. linux ftp 550 下载,linux ftp服务器上传文件夹时提示550错误问题解决方法

    linux ftp服务器上传文件夹时提示550错误问题解决方法 标签: linux ftp服务器 550 中文文件夹上传错误 问题 分类: 计算机 2010-11-06 22:47 前几天在实验室搭配 ...

  6. Linux FTP服务器与客户端(FTP命令 C/C++代码实现)

    FTP 是 TCP/IP 提供的标准互联网协议,用于将文件从一台主机传输到另一台主机.它主要用于将网页文件从其创建者传输到充当 Internet 上其他计算机的服务器的计算机.它还用于将文件从其他服务 ...

  7. ftp文件服务器登录日志,linux ftp服务器日志

    linux ftp服务器日志 内容精选 换一换 为加强对系统数据的容灾管理,云堡垒机支持配置日志备份,提高审计数据安全性和系统可扩展性.本小节主要介绍如何在系统配置FTP/SFTP服务器参数,将日志远 ...

  8. Linux学习笔记之十————Linux常用服务器构建之ftp服务器

    p服务器介绍 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议". 用于Internet上的控制文件的双向传输. 同时,它也 ...

  9. win7系统ftp服务器构建,win7系统构建ftp服务器

    win7系统构建ftp服务器 内容精选 换一换 本文操作介绍使用Linux操作系统的HECS(云耀云服务器)安装宝塔面板.宝塔面板是一款使用方便.功能强大且终身免费的服务器管理软件,支持Linux与W ...

最新文章

  1. Xcode调用栈时小图标代表什么意思
  2. JSON和JSONP有什么区别?
  3. Java OkHttp3的简单使用
  4. HYSBZ - 1588 营业额统计(Splay)
  5. Windows Phone 8开发环境搭建介绍
  6. python模拟登陆 验证码el_8-python模拟登入(无验证码)
  7. swift学习_xcode6搭建
  8. 洛谷——P1765 手机
  9. (转)SSDTShadow Hook的实现,完整代码
  10. FPN网络详解——feature pyramid network
  11. 过山车css动画,three.js 124版本实现彩虹过山车动画
  12. Linux下tmpfs与ramfs的区别
  13. 苹果消息是先推送到服务器,iPhone消息推送机制实现与探讨
  14. memcached win64位服务端安装和java客户端实例
  15. 视频剪辑用计算机,剪辑视频用的电脑该如何配置 真的配置越高越好?
  16. 命令提示符的三种打开方式
  17. ISP : 灯箱光源(笔记)
  18. java 泛型 与类反射_Java技能 —— 对象泛型以及类反射机制的应用
  19. 电容式计算机键盘的按键下,电容式键盘连键故障分析及处理方法(二)
  20. 基于QML的图片浏览器

热门文章

  1. Selwyn College, Cambridge
  2. 山重水复疑无路,柳暗花明又一村
  3. 【每日一包0015】gradient-string
  4. Docker 调试技巧
  5. 工信部副部长刘利华:推动5G全球统一标准 加强国际合作
  6. 奎屯电信助力智慧城市光网建设
  7. rsync的详细配置
  8. git常见错误failed to push some refs to
  9. Java NIO框架Netty教程(一) – Hello Netty
  10. 设置DateChooser控件的头部文字对齐方式.