一次安全配置的乌龙事件

最近开始对公司的服务器进行安全配置,原本是不太想动太多配置的,原因嘛,就是会有人上去偷窥你干的活,所以嘛,我就以最小的改动或者基本不改动来加强一下。

本来是不太想过多改动的,当时想着等级保护策略,就增加了一条PAM的安全策略,结果,把自己堵外面了,真的是欲哭无泪啊。

后来只能让现场人员改动端口了,我也是醉了,堪称一次大乌龙事件。当然,还有另外的一个乌龙事件,就不多说了,哈哈。

本站服务器被黑了

说出来可能多少有点丢人,对,本站——黑色自由的服务器被黑了。。。同时被黑的还有另外两台服务器。事情的起因是这样的:

今天凌晨,收到企鹅家的短信提醒,说是在服务器上发现了可疑文件,二话不说到公司后就登陆上去看了一下,嗯,果然,眼熟的挖矿病毒。

/tmp/.font-unix目录下,mine,init,hide,各种齐全。直接清理一下,该杀的杀,该删的删,顿时CPU资源就降下来了,mine这个进程吃完了所有CPU资源。

清理完之后,随手看了一下端口,卧槽,这是个什么玩艺,怎么服务器连到一些奇怪的IP。继续查吧,原来是个init程序,删了删了。这下终于系统又恢复正常了。

为了防止有些其它后门什么的,又去把sshd_config检查了一下,PAM关了,允许root登陆关了,再看了下没有可疑的证书什么的,最后,firewalld装上,策略搞一搞。

三台服务器,同样的操作,这根本就是密码泄露啊卧槽:

180.246.62.19 Fri Jul 22 05:24 – 05:32 (00:07)

180.246.62.19 Fri Jul 22 05:22 – 05:32 (00:09)

180.246.62.19 Fri Jul 22 05:20 – 05:32 (00:11)

看看,这三条记录,间隔2分钟分别登陆3台服务器,这根本就不是漏洞造成的,这根本就是密码泄露,虽然我3台服务器用户名密码一样,但这么精确的登陆,根本就是连我服务器地址都拿到了。

这样一来,什么样的场景能同时拿到我服务器密码和地址?肯定是工作单位,家里。

工作单位,嗯,有人在内网sniffer,家里,破长城宽带,也有可能被sniffer,还有就是,黑色自由用的特别版SSH工具,比如SecureCRT,Xshell。

先改个密码吧,然后再考虑考虑要不要上证书。这也太操蛋了。

mount.nfs: Protocol not supported

公司项目新上了NAS系统,也不晓得是个什么破烂玩艺,反正进去一通配置就搞行了,下面是挂载遇到的问题:
OS:CentOS7.9
NAS NFS:/pool/data
OS的NFS客户端安装就不说了,一大堆,直接YUM就行了。
问题出在挂载的时候,直接mount -t nfs的时候提示mount.nfs: Protocol not supported,意思就是不支持的协议,既然这样就指定协议好了:
mount -t nfs -o rw,nfsvers=3 remote:/pool/data /localdirectory
当然还有nfsvers=2和1的,反正自己测好了,我这里是用3就可以正确挂载了。

开启SFTP日志记录

因为工作需要,需要调试sftp,设备的一系列操作日志都要,所以就有了这篇。PS:公司采购定制设备,猫腻是真多,乙方供货商态度真的是差的一批,程序逻辑半天都说不清楚,每次说的还都不一样,我都想去翻他代码了。

vi /etc/ssh/sshd_config

Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO -f local5
LogLevel INFO

INFO只是默认情况下的详细信息之一,它提供有关文件传输,权限更改等的详细信息。如果您需要更多信息,则可以相应地调整日志级别。各个级别(按详细顺序)是:QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3
VERBOSE上的所有内容可能都比您想要的要多,但它可能很有用。

vi /etc/rsyslog.conf
在最后添加:
auth,authpriv.,local5. /var/log/sftp.log

service rsyslog restart
service sshd restart

可以去/var/log/查看日志了。一切都将在这里显形。:)

一篇不算太正规的入侵检测

起因是这样的,刚入职一家小公司,发现部门同事和负责人有点不太对劲。

因为入职时开的工资比他们高,但是从事的工作内容也和同事不一样,主要就是Linux服务器方面,包括安全问题,而且这家公司的服务器安全问题比较重要。所以问题来了,同事都是做硬件实施的,跟服务器基本不搭边,而且他们也都不懂Linux,然后呢,他们就会各种偷窥屏幕之类,部门负责人的态度也不明确,而且他也有点想让周围同事从我这里学东西的意思。所以呢,我在做工作的时候,就稍微的留了些手段,毕竟出来混嘛,害人之心不可有,防人之心不可无。万一遇到卸磨杀驴的人了呢,你说是吧。

问题服务器是一台CentOS6.9,因为被黑了,所以被机房拔线了。根据负责人提供的信息,判断应该是中了挖矿病毒。到了现场后,插上显示器键盘,随便一看,就发现CPU占用100%,一个奇怪的进程占满了CPU资源,名字叫bash,二话不说,干掉。用这个名字也太low了点。

然后一分钟后进程又来了,哈哈,不杀了,看看宿主,一个根本不会用到的用户,su过去,找到程序位置,打包,scp走,删之。

查看定时任务,嗯,确实是在这里,删。

回到ROOT下,清掉证书登陆。这时候又发现一个奇怪的进程,叫imap,哈哈,看来还有。不过没关系,我把之前删掉文件中的几个域名全BAN掉,让你下不了病毒回来。

然后去看了下那几个病毒文件,居然有xhide,这个鼎鼎大名的东西,哈哈,那么系统里肯定还有隐藏的东西,但是呢,我也不去深挖了,扔那。

随手看了下登陆日志,我去,一堆爆破信息,当然也记录了第一次成功登陆的信息,期间因为把这事跟销售随口提了一下,销售就要我提供完整的资料,美其名曰写报告,我就呵呵了,这种套路,谁不明白呢,给了你信息你就转给我同事了。

好了,既然你们这么爱玩套路,那就别怪我留一手啦。隐患不排除,留着,哈哈。

debian fail2ban配置

因为黑色自由后台很多SSH尝试登陆的日志,所以就干脆加了一套安全机制,把那些爆破的IP全给封掉。这里用到的就是fail2ban。

安装很简单,apt install fail2ban iptables

这里要提一下,debian 11好像默认是不带iptables的,导致我配置好以后无法生效,查看fail2ban日志才发现原来没有iptables命令,真的是尴尬。

/etc/fail2ban/jail.conf拷贝一份,名为jail.local。这里直接修改jail.local文件,因为网上说更新后会覆盖掉jail.conf文件。

vi jail.local

bantime = 10m 这个是ban掉IP的时效,单位是分钟,为负数是永久封禁,但不建议这样,因为有些网络运营商用的是共享IP,永久封禁后这个IP后的所有人都连不上了。

findtime = 10m 这个是尝试访问的时限,这是我个人的理解,就是说在10分钟内访问。

maxretry = 5 这个是最大访问次数,和上面一条配置在一起就是在10分钟内最大访问次数是5,超过5次就会封禁。

然后找到[sshd]段,加上:

enabled = true

这就可以了,其它的一些ignoreip之类看你个人情况,有固定IP就填上,表示这个IP在安全策略以外。

终于,还是给黑色自由加上了https

原本黑色自由一直都是不带https的,懒得操作,也懒得操心。

起因是某天凌晨,在手机上打开黑色自由的时候,发现页面下方被加了一条广告。本来是习以为常的事情,但出现在了这里,就顿时觉得不爽,电信运营商猥琐这事早几年就知道,但没想到的是居然轮到了黑色自由的头上,无奈就只能套个https在上面了,加了ssl,总比裸http强吧。

操作方法就很简单,使用let’s encrypt的证书,certbot安装,它会自动帮你找到nginx配置文件里的站点,全程提问式,几分钟就搞定,然后自己写个crontab隔一个月跑一次自动更新一下就行,操作方法我就不写出来了,给个地址自己去看好了:

https://certbot.eff.org/lets-encrypt/debianbuster-nginx