作者归档:horsley

记录一下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登录其他机器。

android studio with ubuntu 14.04

第一次打开就发现有个报错 libz.so? 好像又是32位问题,补装下库 lib32z1

adb识别不了我的MX4,添加udev条目,参考

google官方说法:http://developer.android.com/tools/device.html 里面说了如果你是windows下开发要如何如何,osx下面就跳过了,直接可以工作!!Ubuntu下的话就下面一堆操作……
http://stackoverflow.com/a/12664045 这里这个问答里面加的id基本就是google给出来的大厂的VendorId,显然木有魅族的,通过lsusb找出来加上,not work,问题里面的的上一个回答说用root启动adb server,not work.重启试试

Selection_004

 

靠,原来还漏了一个东西, 查了下第三方usb vendor,像魅族这种,需要额外添加配置,修改
~/.android/adb_usb.ini把魅族的mx4的id 0x2a45加上,重启adb server 这下终于连上了

Selection_005

Ubuntu 14.04后续

接上一话

触摸板问题,系统设置里面可以关闭触摸板,下次开机又自动启用了,我们需要一个叫做touchpad-indicator的东西,不过按照一般网上说的方法添加ppa源之后,apt更新了之后,还是找不到那个包,我直接去下了deb来安装 http://www.ubuntuupdates.org/package/atareao_atareao/trusty/main/base/touchpad-indicator

搜狗拼音输入法问题:其实系统自带的ibus输入法输中文也还行,不过有时候会掉链子 出现怪异模式 参考:http://blog.csdn.net/tao_627/article/details/24119037

Selection_003

 

ps 截图工具用的shutter,很强大,所以依赖包超级多……

倒腾Android Studio(是的)下载的android sdk 里面的adb是32位的elf,会导致无法直接使用adb命令,需要装一下i386的东西,参考:http://askubuntu.com/questions/454253/how-to-run-32-bit-app-in-ubuntu-64-bit

grub-customizer工具,这个可以帮你很方便的调整启动的东西,例如你可以把没有用的一些老版本内核的引导条目或者内存测试那些去掉,可以调顺序,调时延,调主题,改内核参数都可以,这个工具以前也是一直有用的,主要是有时候系统更新了新版内核之后启动引导菜单就被还原到默认了,用这个可以自己倒腾https://launchpad.net/~danielrichter2007/+archive/ubuntu/grub-customizer

哦还有个很重要的问题,攀爬问题,这个问题很蛋疼的,一个畅通无阻的网络是基础设施级别的重要呢,我一开始是这么搞得,先装了openconnect,连上我的某PN,之后拖了chrome这个大家伙下来,然后搞了go  git hg的环境,clone了shadowsocks的code,本地编译了shadow-local,一切就都好起来了~