分类目录归档:个人观点

记录一下fail2ban不能正常工作的问题 & 闲扯安全

在加载配置这个事情上,许多linux应用程序只需要发一个信号,应用自己就完成配置重载,无需重启中断服务,但是依然有很多程序并不支持。

今天我第一次学习使用fail2ban,以前都没用过这样的东西,小地方没有太多攻击看上,但是工作之后这些安全意识和规范还是会加深认识,fail2ban很简单的远离,分析日志,正则匹配查找,iptables ban ip,然后我今天花了很长时间都没办法让他工作起来,我写了一个简单的规则ban掉尝试暴力登录phpmyadmin的ip,60秒内发现3次ban一个小时。

我通过fail2ban-regex测试工具测试的时候结果显示是能够正常匹配的,我也试了不是自己写的规则,试了附带的其他规则的jail,也是快速失败登录很多次都不能触发ban,看fail2ban的日志更是除了启动退出一点其他日志都没有。

然后就开始网上搜索各种解决方案,有的说inotify有问题要换gamin甚至是polling来监控日志,我试了一样没用,测试期间我跟改其他程序配置一样,改一下配置,重启一下服务,测试一下,不行,又重复再来,搞了很久,搞得都烦躁了,然后就去洗了个澡。

洗了个澡回来看到有一个问题里面说到fail2ban启动的时候会读一遍日志计算一次,我在想会不会是日志文件太大处理速度慢?看了一下那几个日志都是MB级别而已不大(logrotate是王道,但当这两个东西一起的时候又会有其他问题产生了,搜索的时候无意中看到的),然后我想起了我用fail2ban-regex测试的时候测试结果好久才出来,好几分钟,那测试工具是只测试一个过滤器作用在一个文件上的,我就联想到会不会是因为程序没初始完所以不work呢。于是我没有重启服务又测试了一次,这次成功ban了。

后面我把配置还原,重启服务,这次我注意到重启服务之后整个负载都高了起来,fail2ban-server直接是占满了一个核,这种情况居然持续了十几分钟的样子,简直不能忍。这下我清楚了应该是这个问题没跑了。然后再去换关键词搜索fail2ban启动慢的问题,好像是一个bug,然后稳定版里面没有修复,第三方提交的patch出现在今年一月份,简直无语……

扯完了蛋疼的fail2ban之后来说说安全,其实phpmyadmin这种东西是不应该放在公网上的,像我们厂是禁止的,不过有一些特殊情况例如说是对外提供服务或者说没有内网只有公网的站点,phpmyadmin就必然是暴露出来的。这里可以看看sae是怎么做的,他是通过静态的二次密码认证,然后直接从sae管理后台带登录态到phpmyadmin,而不是在phpmyadmin直接输入密码什么的。所以还算平衡了安全和便捷性的要求。

其实像phpmyadmin这种登录表单只有一个用户名一个密码输入,没有验证码也没有其他安全策略之类的系统从安全上看是很儿戏的,随时暴力破解没商量。最弱智的至少也应该有个验证码,好一点的暴力N次之后出验证码,所以其实fail2ban也没啥用,有足够的时间和ip还是可以慢慢破解的,这里又涉及到另一个问题,就是慢慢破解有没有人能发现的问题,应该算是安全运营的范畴。大部分同学,日志不出事不会去看,即便出事了如果没有告警机制,那么只有日志和机器知道,人是不知道的,这些做法都不靠谱。

其实对于我自己来说我觉得静态密码是不靠谱的,应该搞个动态密码加静态密码,动态密码你不用搞什么硬件令牌,软件的像google身份验证器就挺好的,后面我想做一个http中间件,在这些保护缺失的关键页面上加上动态密码验证。google身份验证器还有pam模块可以用,但是我觉得pam配置麻烦了些,账户管理也不方便,把这些东西放在应用层会灵活一些。

然后有一些地方好像不太好集成动态密码的,例如说ftp,pam认证可以搞,我还是嫌麻烦。其实我建议是直接在使用前生成临时用户和临时密码,给一个很短的有效期,用完就遗弃。还有一些地方能不用密码的就不用密码了,例如说服务器的ssh登录,搞成证书验证之后实际上很爽的,也安全的多。管理我自己的服务器的时候,我也有一个专门的跳板机,跳板机可以密码登录,但是密码超级复杂。其他机器全部只允许证书登录,跳板机上可以证书验证ssh登录其他机器。

病毒防护的心得

今天有个傻瓜中毒了,很典型的病毒,有必要吐槽一下。

==================题外结束=====================
     我们很多人,包括我,接触电脑都不是一年两年了,关于电脑的安全防护方面,应该也有听过看过很多东西,也有自己的心得,时代在变,很多东西已经不像原来那样了,很多以前的安全防护观念和做法现在已经不合适了,今天我来分享一下自己的心得。
病毒科普
     病毒有很多种,我们一般人的话我觉得没有必要去较真什么是病毒、什么是木马什么是蠕虫等等,我们就知道那是病毒就好了。那么病毒是什么呢,首先病毒应该是一个程序,而且我们可以给他打上一个标签叫做恶意程序。这些程序跟其他文档、音视频一样,以文件的形式存在在我们的电脑里。一般来说不同类型的文件有不同的文件后缀名,一般的可执行程序后缀名为exe,还有一些别的例如com、scr等。既然病毒是一个程序那一般程序能干的事情,病毒也能做,例如有些音乐播放器可以帮你把歌曲复制到U盘,那病毒也可以复制一份病毒的副本到你的u盘,这个过程叫做感染,目的是传播病毒。有一些人把U盘感染了说成是U盘中毒了,其实是不对的。U盘可以携带病毒,但是U盘自身不是电脑、不能执行程序,所以它不能中毒,电脑才可以,就像针头可以携带病毒,但是针头不会中毒。
     要注意我上面说的都不是废话,下面你就知道了。
     病毒的危害,这个我就不说了,大家都知道,不知道的话,顾名思义,反正不是好东西就是了。我们不希望中毒,意思其实是我们的电脑不想被感染,要不被感染,做好防范很重要,我个人认为切断病毒传播途径才是防护的重点。
 
病毒传播途径
     仔细回头想一下,病毒是怎么进来我们的电脑的,最通常的途径不外乎这两种:网络、移动存储设备。
     网络方面,通常我们会说:要到可靠地地方下载东西,因为一些不靠谱的地方,提供的下载文件可能被修改过,甚至根本不是你要的东西。最忌的是在百度等地方搜索一个软件,然后进入搜出来的某个不知名的下载站下载,虽然眼力好一点的话一般能发现真正的下载链接而不是那些伪装的东西,不过还是不推荐。不过现在这样做的人不一定多了吧,因为大多人有某管家、某卫士,一般性的软件都能通过里面下到。最推荐的是找到软件的官方网站来下载,保证下载到新版,并且是原版。
     还有就是不认识不确定安全性的程序不要乱点开,例如下载回来的东西,特别是各种看上去怪异的,包括怪异的图标、怪异的名字等等。要安全一点推荐安装沙箱类软件又或者是虚拟机,可以在一个跟你电脑当前环境很好的隔离的地方试验性地运行那些东西。
     另外一个点就是不要去浏览一些未知安全性甚至是有潜在危险性的网页,之前这个说法很正确,因为很多人在用的IE系浏览器安全性很差,特别是IE6。有很多已知的漏洞利用方法可以让你在看那些网页的时候,就算没有明显的点了下载什么东西,也会中招。后来浏览器领域风云迭起,特别是Webkit内核的浏览器如Chrome、各种双核浏览器的出现,还有就是现在用Win7或以上的人多了很多,win7上新版的IE安全性虽然仍然不好但是也有所改进。正因为这些改变使得这个问题不再那么严峻了,特别是使用Chrome浏览网页是比较安全的。
     其他的,我觉得没什么了,网络攻击一般不会攻击你一般人,一般不会通过这样的方式来传播病毒到你那里。
     另外一点就是移动设备啦,这本来不应该存在问题。广泛存在的Windows XP系统上面系统默认开启了一个功能叫做自动播放,不知道你有没试过当你插入一些软件安装光盘到电脑的时候,安装程序自己就运行起来了,又或者是电影的盘。这一种机制在U盘上面同样有效,细节就不多讲,这个功能被用来病毒传播就很恐怖了,既然软件安装光盘可以在插入时自动运行安装程序,那么U盘也可以在插入的时候自动运行病毒,然后你的电脑就中招了。你电脑中招之后,病毒会做什么就不知道了,但是很多还会留一手准备感染其他新插入的U盘,以此来传播。你们你们去完打印店之后U盘里面的病毒就是这么染上的,其实这个自动播放的功能是可以关闭的,甚至打印店的电脑可以设置成不允许从U盘运行任何程序,那样会安全很多,不过一般他们的电脑都有还原系统,他们是不怕电脑感染的,苦的是我们去打印的童鞋。
     不过,现在很多同学自己电脑都在用Win7的系统吧,微软看到这个自动运行机制的问题之后,也在Win7中作了改进,好像是默认关闭自动播放的,那么病毒应该是不会自动的发作的,不会说你U盘一插进去就中招了。不过这并不是阻止了传播,只是阻止了病毒自动发作。
病毒的发作
     刚才说的只是病毒的传播,下面来说下发作。刚才说了传播,如果你下载了不安全的程序,又或者U盘插到什么带有上述感染性质的病毒的电脑上,你就把病毒带回来了。但是既然病毒是个程序,他又不能自动运行了,那他理论上是不能发作的,你也不会中招。他就作为一个普通的文件安安静静的存放在U盘或者硬盘里面,对一个文件的操作包括重命名、删除等。那么如果你发现在一个不安全的地方使用过之后你的U盘里面多了一些程序文件,你又不知道是什么,你就可以直接把它删掉,这就杀了毒了(所以其实说要格式化来杀毒这个并不是必要的,如果你U盘上面没什么东西倒是无所谓)。特别要注意不要说我不知道这个是什么我就打开来看看,点开你就悲剧了,因为你运行了一个病毒程序,她会做什么就不知道了。还记得上面说的么,程序的后缀名一般是exe,这是识别依据之一,系统默认是不显示后缀名的,不过这也是个可以改的设置(方法自己查找)。
一种典型病毒的分析
     我们这边有一种广泛传播的病毒,我把它叫做文件夹病毒,他就是上面所说的感染U盘形的病毒。但是在这种病毒的设计上面有很多创新的地方。
     以前很多U盘传播的病毒依靠自动运行来发作,为了不让病毒本身被用户发现,一般病毒相关的文件都已隐藏属性存在。而我们的Windows(包括7)默认都是不显示隐藏文件的,不过是否显示隐藏文件这个是可以设置的(方法自己查找)。除了隐藏之外一般病毒还会用到一种系统属性,这种属性也可以隐藏文件,也就是除了打开显示隐藏文件之外,还要打开显示系统文件(只是加了一个系统属性、病毒也变成系统文件了这不科学,以前我记得有系统属性的文件删除的时候系统还会提示这是系统文件真的要删咩之类的,现在不知道有没有),打开这两个之后U盘里面的病毒就现身了,隐藏的文件在系统里面图标是半透明的。
     而这一种文件夹病毒并不会隐藏自己,他创新的隐藏了你的文件,准确的来说他隐藏了你U盘里面的文件夹,然后以你文件夹的名字创建了他自身的病毒拷贝,并且这个病毒程序的图标就是文件夹的图标,这个就伪装的很好的,如果在XP,默认隐藏文件、不显示后缀名的情况下,基本看不出来(还是可以看的,右键属性可以看到这是文件夹还是 程序,单击之后文件属性也会显示在状态栏或者左边栏),很容易就误导用户点击运行这个病毒。更加绝的是这个程序运行之后他还会真的启动一个资源管理器,打开那个同名的隐藏文件夹(隐藏不代表不能打开)展示里面的内容,这跟打开一个文件夹的行为一致。如果没有这一点用户就很容易发现怎么点这个文件夹没反应啊就穿帮了。
     然后说下杀毒软件,这种这么广泛传播的病毒杀毒软件肯定可以杀,但是目测都处理的不太好。很多次看见这种病毒被发现然后杀毒软件大吼一声,全部病毒文件都被删掉了,但是隐藏的文件都还没有还原回来,还是隐藏状态。在不显示隐藏文件的系统里,这给用户的感觉就是,我的文件夹不见了,我的文件被杀毒软件干掉了,其实不是的,只要你打开显示隐藏文件,你就可以看到你的文件夹还在,你只要把隐藏状态取消就恢复正常了。不过这个病毒还有没有进一步的感染文件夹里面的其他东西,就不太清楚了,有杀毒软件的最好还是全面的查杀下U盘。
     手工处理完全是可行的,一般就是进去删掉那些伪装文件夹的病毒程序,这些在Win7里面很容易,因为这些病毒程序虽然是用了文件夹的图标,但是是XP里面的文件夹的图标,我用的是Win7,Win7里面的文件夹图标跟Xp的不一样,一看就知道是伪装的东西。删掉之后还原那些原来的文件夹的隐藏属性就好(方法自查),不过就像上面所说,推荐有杀毒软件的最好还是全面的查杀下U盘。并不是所有病毒都可以这么容易搞定。有一些人喜欢在U盘里面放一些工具程序,而有一些病毒是感染型病毒,他可以通过修改别的程序把自身插入到别的程序里面,也就是他可能可以感染你U盘里面正常的程序,你不知道那些工具已经被感染了,下次一运行就中招了。这一种病毒不借助杀毒软件一般很难清除,因为他不像文件夹病毒那样多出来单独的文件,而是嵌入到已有的文件之中,你自己没办法清除,除非整个文件删掉。
总结
     总结起来就是其实这个东西并不可怕,稍微了解一下原理之后还是可以很轻松的对付的。规范自身的行为,不要乱下载不知名的东西,不要乱点开不认识的程序文件,U盘在不安全的环境使用过之后自己注意处理就没问题的。

关于学校的有线网络、锐捷、wifi的说明

没想到昨天晚上在下大雨的时候口头将这个总结了一遍,今天总结一下电子版吧。

废话一片
首先,暨大本部的网络环境,和很多学校一样,使用的是锐捷家的产品,不晓得的可以自己搜索。这家公司算是还不错,做了很多产品,在中国高校市场占有一席之地。废话删掉,我们是要使用一个运行在win平台的锐捷认证客户端认证上网。认证过程大概是这么样的,当你使用认证客户端点下认证,客户端发出EAP包,你所在的楼层交换机收到之后会跟认证服务器通讯确认你的账号、mac这些是否匹配,匹配则认证通过并分配一个新的IP并通知交换机打开你这个端口的网络访问,然后你就可以上网了。

这个锐捷客户端我们学校大范围在使用3.95版本,有一部分是4.10版本,官方现在推4.6版本的,这个客户端目测只有windows版本,对于使用苹果操作系统的童鞋,是会要求在开网的时候说明清楚,然后这些用户会在一个特别的分组,这个分组可以直接通过8021认证上网,苹果系统自带这种验证方式的支持。至于linux系,目测官方的认证客户端好久不更新了,已经不能兼容现在的锐捷认证了。

WIFI是一个客观的需求
上面好废话,估计大家关心的wifi的问题。随着时代发展和大家生活水平的提高,大家的无线设备越来越多。这里指的是像手机、IPAD等支持访问WIFI网络的手持设备,其实笔记本电脑也算。无线是一种很好的东西,就算不说手持设备不是还有很多人喜欢在床上玩电脑嘛,去过很多宿舍都是一根网线拉到桌上一根网线拉到床上,有线很不爽吧。这还是可以接有线的,手机这些呢,现在很多手机都可以使用WIFI网络,众所周知WIFI模式比起手机GPRS又要爽得多的,无论是速度还是流量限制什么的。那没WIFI的时候手机GPRS还可以凑合着用一下,但是你让没有GSM/3G模块的设备例如平板电脑情何以堪啊,就这么不能上网了吗?

所以其实我们可以看到WIFI似乎是大势所趋或者说就不应该没有的,回到锐捷的问题,有锐捷就不能有无线嘛?不对,图书馆不是也有jnu无线么,接入以后打开任意网页会重定向到认证页面,其实这也是一种锐捷认证方式(web portal)。在我们学校教学区(主要指教学楼)和图书馆基本实现了JNU无线热点的覆盖的。

为什么不覆盖宿舍魂淡!!
   我们一般的学生嘛,要不就是在教室上课,要不就是在宿舍,图书馆呢,好吧我很少去,罪过罪过。所以我们很自然的想到让无线网络覆盖我们的宿舍,其实这个比较难,首先无线的热点发射功率不可能太大,另外由于物理原因无线信号的穿透力是挺差的,图书馆这么空旷,宿舍区那么多墙;第二无线热点的承载能力是很低的,要大面积覆盖而且大负载使用的话需要好多好多设备的,主教学楼有一栋。学生宿舍不算周转楼也有20栋啊,你看CMCC的热点每两个宿舍外墙放一个,多大的成本。糟了说漏了

人家CMCC就覆盖了不是吗,收的我这么多网费坑爹啊
   同学,人家CMCC也只是在某些宿舍做了试点覆盖,正如上面所说,每个宿舍外墙都要一个热点这要多大的成本啊,而且据说这些热点使用率其实很低,不要以为收了很多网费哦。据我所知,学校每年在向运营商(包括电信、联通、教育网和长宽都有)购买带宽的费用就要两三百万,还有各层网络设备、电费、维护费用加起来。开网的人没有一万,而且还有很多开的150一年的教育网,大家交的网费明显是不够的。其实学校里面的这种集中购买网络带宽校内分配的方法算是比较好的,混合出口300块一年的用户相当于拥有6-10M的带宽,才300块一年外面哪里找得到。教育网的150块一年的我就不说了,瓶颈不在这里,大网本身就不好,另外华工那边那台设备负载太大,听说在招标换新了。

我自己弄热点来供应我的无线设备为什么不让?
    正如上面说的,本身网络这一块学校已经是贴很多钱进去的。可能很多人都会查到说用win7自带的承载网络、或者connectify之类的软件可以实现从自己的笔记本电脑的无线网卡发出wifi信号,把自己的电脑作为无线热点,把有线网络的资源链接到这个热点,实现为其他设备提供WLAN接入,也就是让其他设备有wifi可用。不过你想一下,你这么一弄,不仅可以让你的无线设备接入,你还可以让你的室友接入,不就可以一堆人共享一个账号,多个人用只交一分钱嘛,这样学校肯定不愿意啊。所以一个正常的锐捷认证客户端它会禁止你有线上网的时候同时打开一个另外一个有连接的网卡,如果你在你的无线网卡弄共享,锐捷肯定叫说“请不要为他人提供代理服务”,然后断网。
还有的人想通过无线路由器来实现这个事情, 因为可能很多人在家就是这么弄无线的。注意一点,这里上网是需要用那个叫做锐捷认证客户端的东西的,如果你把电脑挂在路由器下面,你的锐捷认证客户端将会找不到认证服务器。实际上的原理不多解释,反正在路由器这个小局域网下面,你的认证信息没有办法传递出去,认证不过,就不行。

哼,我知道有破解的锐捷,我还知道有可以锐捷认证的路由器
    额,这个嘛,确实有,有一些破解的锐捷客户端去掉了共享的检测,去掉了多网卡限制等等,这样你就可以同时打开你的无线网络做共享,这个在技术上确实是可行的。更有甚者,可以通过对某些路由器刷新固件的方式在路由器嵌入锐捷认证的兼容客户端,由路由器完成认证过程然后再把网络通过有线和无线的方式共享出来。不过,这是不对的,这是不好的,被抓到你就惨了 

怎么解决?我的想法
总结一下:
1.WIFI接入是广大学生的一种需求,而且需求越来越大。
2.宿舍区全面WIFI覆盖成本大,效益也不一定好。
3.技术上我们学生可以自己产生无线热点给自己的设备用。

所以,我觉得不应该阻止我们学生自建无线热点,如果说费用方面的问题,首先我们绝大部分人都不是说专门去钻空子少交网费,我们是确实有无线设备接入的需求。第二本身分配到每个账号的网络资源本身也是有限的,就算多人共享,体验也会打折扣的。有一种情况就是大家的网络应用需求都不大,可能都只是看看网页,大家一起用一个账号可能跟一个人一个账号没什么区别,但如果需求真的那么低,那要求他开独立账号交足一份钱不是也不合适么?
而且现在这一种收费模式本身就自相矛盾,如果说是按人头收费,那我为什么不能把我购买的服务给我的多个设备用?如果是按设备收费,那你又没有宿舍区无线设备接入方案,而且本身无线手持设备这些跟电脑不一样,电脑上你可能疯狂高速下载一个东西很占用网络资源,但是你不怎么可能在你的无线设备上面做这些事情;另外,从技术角度,本身学校你就没有办法阻止我用破解客户端,我真要整你也没办法,那能不能通过其他的方法来让大家都好过一些呢,这里我提出一个方案。
1.要求锐捷重新做一个客户端,或者我们自己来做一个客户端,这个客户端不单只没有限制无线,还提供像Connectify那样的功能方便大家建立热点。
2.对可以连接无线的设备进行登记,形式可以多样,例如登记你的无线设备的MAC,以此在新客户端做本地限制接入,另外本身MAC前面3字节是代表厂商的,这里也可以初步对手持无线设备和电脑做出区分的。
在新方案里面,大家可以通过新的客户端软件建立热点给自己的设备用,设备需要先登记后方能接入,这个方案可以让大家的无线手持设备通过自己电脑建立的热点实现wifi连接上网,不过这个方案没有解决怎么让笔记本电脑也可以无线上网。

写在最后
好吧,这篇文章算是讲了点有用的东西的,我是学校里面的学生网管,不过我也是学生,所以我会从学生和学校网络中心两边的立场,还有利用两边掌握的信息同时考虑问题。没想到这么一写洋洋洒洒2500+字,感谢昨天耐心的听我这么讲了一大轮的人,还有感谢你的火龙果哦