FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。

与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。

用户分类

Real帐户

这类用户是指在FTP服务上拥有帐号。当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等。

Guest用户

在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。这类帐户,在Vsftpd软件中就叫做Guest用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。

Anonymous(匿名)用户

这也是我们通常所说的匿名访问。这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。

在组建FTP服务器的时候,我们就需要根据用户的类型,对用户进行归类。默认情况下,Vsftpd服务器会把建立的所有帐户都归属为Real用户。但是,这往往不符合企业安全的需要。因为这类用户不仅可以访问自己的主目录,而且,还可以访问其他用户的目录。这就给其他用户所在的空间带来一定的安全隐患。

TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP的任务是从一台计算机将文件传送到另一台计算机,不受操作系统的限制。

需要进行远程文件传输的计算机必须安装和运行ftp客户程序。

启动ftp客户程序工作的另一途径是使用浏览器,格式::ftp://[用户名:口令@]ftp服务器域名:[端口号]

服务器安装的一般步骤:

1.安装检测rpm -qa | grep 包名

2.检测出没有安装则安装

3.yum install 包名

4.检测并启动

rpm -qa | grep 包名

chkconfig 服务名 on  将服务器设置为开机自启

包文件名:vsftpd  服务名:vsftpd

挂载光盘并用yum安装,(本地yum源在之前的博客里已经配过了)

用rpm命令查看下vsftpd包。

cd /etc/vsftpd并ls查看下。

ftpusers是用户控制文件,在这个文件里面的用户,默认是不可以使用vsftpd服务的

user_list默认功能和第一个一样,但是通过配置,我们可以让只有在第二个文件里的用户才能使用vsftpd服务,这样新加入的用户就不会自动拥有vsftp的使用权,这样可以让vsftpd服务器更加安全

vsftpd_conf_migrate.sh是vsftpd操作的一些变量和设置(可忽略)

vsftpd.conf ,配置vsftpd,我们操作最多的也就是这个文件

搭建了ftp服务器,/etc/passwd下就多了个ftp的用户名了,看到shell是/sbin/nologin,说明这个是虚拟用户使用的,不具有登陆系统的权限。他只能使用vsftpd这样的服务器登陆用,而家目录不在/home下,而在/var/ftp下,在匿名登陆的时候,系统默认使用的用户就是ftp用户 ,可以用ll -d /var/ftp查看下权限是755,这个权限一般默认就好。

现在windows上测试了下ftp服务器。

设置匿名允许上传功能

先修改目录权限

anonymous_enable=YES

是否允许匿名ftp(默认为YES),如否则选择NO,基于用户名与密码的访问。   (12)

anon_upload_enable=YES         (27)

anon_mkdir_write_enable=YES            (31)

是否允许匿名ftp 用户上传(默认被注释即不支持),将两行的注释符取消

在windows测试,就可以匿名上传了。但是是禁止删除的。

匿名始终是不安全的,还有一种是基于用户的访问和上传

先不允许匿名模式使用。

2.创建虚拟用户

先创建一个用户,然后修改用户的登陆shell为nologin,让用户不能登陆系统,只能使用ftp之内的服务,然后使用passwd  test 修改密码

sevrice vsftpd restart 重启ftp服务就可以了

用windows验证,需要用户名和密码了。

访问的路径为test的家目录,有上传和下载的权限。

 对于FTP的入侵

更多的人认为网络上是存在“万能”的攻击方法的,原因和简单,因为“暴力破解”(或者说穷举)的存在,注定网络攻击永远没有尽头。作为一种广泛被使用的协议,FTP被攻击者暴力破解是经常遇到的问题。

1.鼎鼎大名的X-Scan,是国内著名的综合漏洞检测、安全扫描器之一,完全没费,是不需要安装的绿色软件。其中有FTP弱口令,该插件载入字典对FTP弱口令进行检测。

2.泛滥的Serv-U FTP Server漏洞攻击

作为国内使用率最大的一个FTP服务器,Serv-U无疑是成功的,但是所谓树大招风,针对Serv-U FTP Server的攻击从来就没有终止过而且还有越演越烈的姿势。

通过serv-u,用户能够将任何一台PC设置成一个FTP服务器,这样用户或其他使用者就能够使用FTP协议,通过同一网络上的任何一台PC与FTP服务器连接,进行文件或目录的复制,移动,创建和删除。

Serv-U FTP服务器溢出漏洞

受影响系统:

RhinoSoft Serv-U 5.0

RhinoSoft Serv-U 4.x

RhinoSoft Serv-U 3.x

RhinoSoft Serv-U 2.x

Serv-U在处理"MDTM"命令的参数时缺少正确的缓冲区边界检查,远程攻击者可以利用这个漏洞对FTP服务程序进行缓冲区溢出攻击,可能以FTP进程权限在系统上执行任意指令。

Serv-U提供FTP命令"MDTM"用于用户更改文件时间,当用户成功登录系统,并发送畸形超长的时区数据作为命令参数,可触发缓冲区溢出,精心构建参数数据可能以FTP进程权限在系统上执行任意指令。

  利用此漏洞需要用户拥有合法帐户登录到系统,但不需要写及其他权限。

构建高安全性的使用FTP服务器

1、避免跳转攻击

为了避免跳转攻击,服务器最好不要打开数据链接到小于1024的TCP端口号。

受限制的访问

一些FTP服务器希望有基于网络地址的访问控制。在这种情况下,服务器在发送受限制的文件之前应该首先确保远程主机的网络地址在本组织的范围内,不管是控制连接还是数据连接。通过检查这两个连接,服务器就被保护避免了这种情况:控制连接用一台可信任的主机连接而数据连接不是。同样的,客户也应该在接受监听模式下的开放端口连接后检察远程主机的IP地址,以确保连接是由所期望的服务器建立的。

2、保护密码

为了减少通过FTP服务器进行强力密码猜测攻击的风险,建议服务器限制尝试发送正确的密码的次数。在几次尝试(3~5次)后,服务器应该结束和该客户的控制连接。

3、匿名FTP

匿名FTP服务使客户端用最少的证明连接到FTP服务器分享公共文件。如果这样的用户能够读系统上所有的文件或者能建立文件,那么问题就产生了

这里只是简单的说明下,http://down.51cto.com/data/2241389《黑客FTP攻击剖析与实用防御技术精解》这本书将FTP协议和服务解析得很透彻,对这对FTP入侵和防御也概括的很仔细。

本文转自 wt7315 51CTO博客,原文链接:http://blog.51cto.com/wt7315/1852413

linux的FTP服务器搭建及FTP服务器的入侵和防御相关推荐

  1. linux搭建ca服务器搭建,linux下安装EJBCA 搭建私有CA服务器

    linux下安装EJBCA 搭建私有CA服务器 EJBCA是一个全功能的JAVA的CA系统软件,我们可以用此搭建私有CA服务器: 一:首先我的测试环境: 1.  linux mint18.3 62位: ...

  2. 云服务器搭建配置以及服务器开发相关

    Cloud Server Building and Server Development Relevant Resource Collection 云服务器搭建配置以及服务器开发相关 有用的参考链接 ...

  3. 修改主从服务器,搭建BIND主从服务器

    参考 基础概念 主从服务 Primary DNS Server 一个域的主服务器保存着该域的zone文件. 该域所有的配置和更改都是在主服务器上进行. Secondary DNS Server 一个域 ...

  4. linux中openssh服务搭建,配置OPenSSH服务器

    一.安装机配置OPenSSH服务器 1.安装与启动OpenSSH 首先查询系统是否安装了与OpenSSH相关的软件包: #rpm -qa| grep openssh 安装完成后,可以使用下述命令启动: ...

  5. 流放者柯南自建服务器 linux,流放者柯南搭建个人服务器搭建教程 个人服务器怎么搭建-游侠网...

    流放者柯南中想必现在很多入手的玩家都不清楚怎么来搭建个人服务器吧,小编现在就为大家带来个人服务器搭建教程,感兴趣的玩家赶紧来看看吧! 搭建个人服务器教程(Windows) 1. 下载STEAMCMD ...

  6. 云服务器搭建代挂,服务器上搭建个人博客

    0.前期打算:购买服务器(包含弹性ip),我买的是baidu云的服务器.进入云服务控制台-点击操作VNC远程,我们可以象控制本机的linux系统一样控制云服务器了. 也可以使用SSH来远程操纵服务器. ...

  7. 魔兽世界网站服务器搭建,网游服务器搭建方案图解(以魔兽世界为例)(示例代码)...

    国服的巫妖王终于开了,而服务器"卡"的问题再次由于人数暴增而显现出来.下面小编就给大家介绍一下网络游戏的服务器搭建方案,也许大家能稍微理解一下服务器的苦衷. 这么多新号,看着像开追 ...

  8. 日志服务器搭建之多服务器日志转发与格式化处理

    日志服务器搭建是靠linux的rsyslog功能作日志转发和日志收集的 rsyslog是由一台Linux服务器作日志服务器,收集其他服务器即rsyslog客户端转发过来的日志,所以rsyslog既可以 ...

  9. 服务器搭建成虚拟空间,服务器搭建虚拟空间

    服务器搭建虚拟空间 内容精选 换一换 环境是基因容器服务所需要使用的计算资源的集合.基因容器的环境由云容器实例和云容器引擎提供.云容器实例云容器实例(Cloud Container Instance, ...

最新文章

  1. selenium一些基本语句
  2. 深度技术 GHOST XP SP3 快速专业装机版 v2012.07
  3. 转:Linux下高并发socket最大连接数所受的各种限制
  4. Web 前端框架分类解读
  5. MySQL数据库和ACID模型
  6. 高级语言程序设计c 华南理工,华南理工大学高级语言程序设计(C)期末练习题
  7. xposed 主动调用方法_操作方法:主动容量管理
  8. WebAPI2使用Autofac实现IOC属性注入完美解决方案
  9. 考研数学 曲线曲面积分
  10. 重装linux后没声音,安装虚拟机后没声音了
  11. 蝇量级的JSON模型转换库(OC,Swift通用)
  12. shim和polyfill
  13. C6455CSL芯片支持库:第二节 EMAC外设
  14. 算法笔记 之 埃拉托色尼筛选法(筛选质数)
  15. Android 源码分析
  16. 类和对象有点东西(一)
  17. 你知道做一个网站要多少钱网站怎么运营能赚钱
  18. python basename()函数和dirname()函数
  19. 爆料!华为胡玲或入职头条,职场人该如何说“真话”?
  20. 洛谷P1638 逛画展

热门文章

  1. java restful开发规范_restful api 开发规范
  2. [码海拾贝 之Perl]获取日期以及日期的加减
  3. [IE兼容性] Table 之边框
  4. 简易方法判断浏览器的类型和版本
  5. Chrome , Firfox 对应IE fireEvent 的方法
  6. 计算机黑屏时间,如何在计算机上设置黑屏时间
  7. ros自己写避障算法_ROS:激光数据转换超声进行避障
  8. 服务器系统事件报错4103,IIS信息服务器排错指导
  9. php mysql帮助类,基于PHP的MYSQL操作类
  10. mysql的底层数据结构_MySQL索引底层数据结构实现原理