写这一系列文章的动因很简单,在年前最后一个项目的时候在客户现场做了的几个安全加固。由于时间问题,很多东西就拿来主义没经过思考直接更改了,并未细细品味其中的原理和方法,所以特地搭建实验环境,分析下其中的原因,也帮助IT运维的同事在平时的安全巡检与维护中能够关注与理解一些运维上的安全问题。

   FTP存在的安全问题

  • 匿名访问

   FTP匿名访问是FTP安全问题中最常见的问题,详情可以见wooyun。今天通过一天时间通过反复的复测,尝试,发现一个看似简单的FTP匿名访问实则存在很多隐藏的小坑。所以写出来帮助大家在安全运维的道路上能够更加游刃有余。

   首先是大家都知道的,以最常见的Linux FTP软件VSFTP为例,我们分析他的配置文件,发现涉及匿名访问的主要conf项有如下几项。

anonymous_enable=YES         是否允许FTP匿名访问登录
anon_upload_enable=YES   是否允许FTP匿名上传
anon_mkdir_write_enable=YES  是否允许FTP匿名用户创建目录

  

  (以下实验过程有些繁琐,了解的朋友可以直接看后面加粗字体结论)

    通常朴素的思维,我们把anonymous_enable配置项置为Off了,我们就可以解决匿名访问的问题。这句话这么说的确不假,但wooyun上大FTP匿名访问的数量不在少数,以及自己在做内网渗透时,内网的匿名访问问题更加严重。

   

  我经过多次试验,发现FTP匿名访问如果想造成实质危害需要满足很多条件,并非简简单单匿名登录了就能造成危害,以下为条件都需要满足才能造成实质危害:

  1. 配置文件三要素要满足,上文提到的vsftp.conf中的三个配置选项必须打开,这个是匿名访问的根本。我测试用的为Cent OS6.5通过yum安装的vsftpd发现配置文件conf中的默认匿名访问是开启的,若运维人员缺乏安全意识可能会导致匿名访问情况发生。
  2. 由于匿名访问需要Linux ftp账户登录,所以在var/ftp目录下,存在匿名登录的目录至少为755权限,否则匿名用户是无法上传与下载或读取相关文件。
  3. vsftp.conf中必须配置 anon_umask=022 才可造成真正的敏感文件读取泄露问题。我经过反复大量的实验发现,vsftpd上传文件的读写权限与不受系统的umask和原有配置文件中local_umask项影响,要想保证上传文件的可读可写性。必须要运维人员手动添加anon_umask值,来确保ftp目录下上传的文件可读可下载。

  结论:匿名访问无论在内网还是外网都应该被杜绝的,尤其wooyun上大量案例使用FTP匿名访问,通过实验应该是企业内部将FTP当做了一个便携式局域网“U盘”使用造成了相关的安全问题。

  • 未限制登录用户访问目录权限

  未限制FTP登陆用户在自己的家目录中活动,导致可遍历系统的敏感文件,若系统umask设置不当,可上传写入木马等。输入/etc发现目录依旧可以访问。导致服务器安全出现问题。

  

  vsftp默认登录,用户在home家目录下的ftpuser下。

  

  我们可以通过如下方法来加固,做法如很多博客文章介绍的一样,编辑vsftpd.conf目录下的文件特定配置如下:

  

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

  除了chroot_list中的用户都不能访问上级根目录,效果如下:

  

  将ftpuser添加进入,chroot_list再次实验,效果如下:

  

  

  以下是一些,自己在安全加固中FTP方面的一些浅显的认识,希望能帮助到大家。

  

  

  

  

  

  

浅谈运维中的安全问题-FTP篇的更多相关文章

  1. autohotkey在运维中的应用

         AutoHotkey是一个自由.开源的宏生成器和自动化软件工具,它让用户能够自动执行重复性任务.AutoHotkey可以修改任何应用程序的用户界面(例如,把默认的Windows按键控制命令替 ...

  2. linux运维中的命令梳理(一)

    在linux日常运维中,我们平时会用到很多常规的操作命令. 下面对常用命令进行梳理: 命令行日常系快捷键(不分大小写)CTRL + A 移动光标到行首CTRL + E 移动光标到行末CTRL + U ...

  3. 转: 浅谈C/C++中的指针和数组(二)

    转自:http://www.cnblogs.com/dolphin0520/archive/2011/11/09/2242419.html 浅谈C/C++中的指针和数组(二) 前面已经讨论了指针和数组 ...

  4. 转:浅谈C/C++中的指针和数组(一)

    再次读的时候实践了一下代码,结果和原文不一致 error C2372: 'p' : redefinition; different types of indirection 不同类型的间接寻址 /// ...

  5. 转载 浅谈C/C++中的static和extern关键字

    浅谈C/C++中的static和extern关键字 2011-04-21 16:57 海子 博客园 字号:T | T   static是C++中常用的修饰符,它被用来控制变量的存贮方式和可见性.ext ...

  6. DBA避坑宝典:Oracle运维中的那些事儿

    对于Oracle运维中的那些事儿,我的最终目的:不是比谁更惨,而是能够从中吸取经验和教训. 从我的理解来看,我会从下面的几个方面来进行说明DBA运维中的一些事儿. 每个部分都是非常关键的,缺一不可,而 ...

  7. 浅谈C语言中的强符号、弱符号、强引用和弱引用

    摘自http://www.jb51.net/article/56924.htm 浅谈C语言中的强符号.弱符号.强引用和弱引用 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2014- ...

  8. 漫谈ELK在大数据运维中的应用

    漫谈ELK在大数据运维中的应用 圈子里关于大数据.云计算相关文章和讨论是越来越多,愈演愈烈.行业内企业也争前恐后,群雄逐鹿.而在大数据时代的运维挑站问题也就日渐突出,任重而道远了.众所周知,大数据平台 ...

  9. 安全运维中基线检查的自动化之ansible工具巧用

    i春秋作家:yanzm 原文来自:安全运维中基线检查的自动化之ansible工具巧用 前几周斗哥分享了基线检查获取数据的脚本,但是在面对上百台的服务器,每台服务器上都跑一遍脚本那工作量可想而知,而且都 ...

随机推荐

  1. 删除github上面的项目

    1.进入github 2.点击Repositories,看到你所有的repository 3.点击进入你想要删除的repository,点击settings 4.在options选项中,下拉到底看到“ ...

  2. Xamarin.Android 解决打开软键盘导致底部菜单上移问题

    在界面布局中有EditText控件,该控件一旦获取焦点则打开软键盘,如果布局中有底部菜单,那么底部菜单可能会被软键盘顶在其上面,看如下效果: 解决方法:在活动绑定界面之前写上下段代码即可 Window ...

  3. 微信JSAPI支付回调

    在微信支付中,当用户支付成功后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答. 在经历了千幸万苦之,填完了所有的JSAPI支付的坑后(微信JSAPI支付 跟 所遇到的那些坑) ...

  4. [CXF REST标准实战系列] 一、JAXB xml与javaBean的转换

    Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. 文章Points: 1.不认识到犯错,然后得到 ...

  5. Java反射,注解,以及动态代理

    Java反射,注解,以及动态代理 基础  最近在准备实习面试,被学长问到了Java反射,注解和动态代理的内容,发现有点自己有点懵,这几天查了很多资料,就来说下自己的理解吧[如有错误,望指正] Java ...

  6. SpringBoot自动配置源码调试

    之前对SpringBoot的自动配置原理进行了较为详细的介绍(https://www.cnblogs.com/stm32stm32/p/10560933.html),接下来就对自动配置进行源码调试,探 ...

  7. 【Go】获取用户真实的ip地址

    原文链接:https://blog.thinkeridea.com/201903/go/get_client_ip.html 用户请求到达提供服务的服务器中间有很多的环节,导致服务获取用户真实的 ip ...

  8. Linux文件权限与属性详解 之 chattr & lsattr

    Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...

  9. Yum搭建LNMP环境(动、静、库分离)(week4_day5)--技术流ken

    前言 本篇博客使用yum来搭建lnmp环境,将采用动态,静态以及数据库分开安装的方式即nginx,php,mysql.会被分开安装在不同的服务器之上,搭建出来一套lnmp环境,并部署wordpress ...

  10. NTP时间服务器实战应用详解-技术流ken

    简介 在搭建集群服务中,要保证各节点时间一致,NTP时间服务器就成为了一个好帮手了. 系统环境 系统版本:centos6.7 服务器IP:10.220..5.166/24 客户端IP:10.220.5 ...