在前两个星期,我负责的一个小型企业网站遭受到了攻击,导致网站非常的卡,正常用户无法访问;初步判断是CC攻击; 这样的攻击防御起来还是比较简单的;后来服务器又受到了攻击,服务器卡的完全链接不上去;这个时候才知道我当时服务器的安防是有多脆弱!
这个不在本篇范围内,像DDOS攻击 CC攻击等等针对 网站的攻击 可以接入 CDN服务商,再加上nginx等等一些配置 ,这个稍后单独再讲;
说起这个, 我也是啥都不懂,那里问问这里百度, 在我看来, 做服务器安防 是一门比较高级的技能,黑客和安全专家你来我往的攻防战; 虽然那些高级的我们可以知之甚少,但是我们可以做一些简单的服务器安全防护,提升别人的攻击成本!
可以直接略过,直接使用下面的命令查询 所有尝试链接服务器的排序后的Ip信息
for i in $(grep 'pam_unix(sshd:auth): authentication failure;' secure | awk '{print $14}' | cut -d"=" -f2 | sort | uniq) ;do echo "$i $( whois $i | grep -m1 country |awk '{print $2}')" ;done | column -t
##1、 查找所有 用错误用户名链接ssh的Ip
grep "Invalid user" secure | awk '{print $10}'
##2、查找所有 密码错误的Ip
grep 'pam_unix(sshd:auth): authentication failure;' secure | awk '{print $14}' | cut -d"=" -f2
##3、计算相同Ip的次数 并且排序
grep 'pam_unix(sshd:auth): authentication failure;' secure | awk '{print $14}' | cut -d"=" -f2 | sort | uniq -c
##4、查找ssh等吗密码错误的所有Ip 并且排列后现在 Ip所在地
for i in $(grep 'pam_unix(sshd:auth): authentication failure;' secure | awk '{print $14}' | cut -d"=" -f2 | sort | uniq) ;do echo "$i $( whois $i | grep -m1 country |awk '{print $2}')" ;done | column -t
lastb | awk '{print $3}' | sort | uniq -c | sort -nr
ssh的配置文件全路径是:/etc/ssh/sshd_config
Port 2222 #这个端口默认是22,改成不容易猜的
PermitRootLogin no
如果使用的是云服务器,修改端口后还需要配置安全组
然后重启ssh服务 systemctl restart sshd
DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重 复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽IP的功能。
安装
yum install denyhosts
基本上默认的配置就可以使用了,如果想要更多的配置信息,可以查看/etc/denyhosts.conf
文件。
PS:denyhosts这个毕竟是软件分析/var/log/secure文件,你某次不小心输错了密码,它可能把你也给墙了,所以还是设置一下白名单;白名单路径 /var/lib/denyhosts/allowed-hosts
最后启动服务:systemctl start denyhosts
如果 Centos 7 中没有找到这个依赖包,则直接取官网下载然后安装
手动安装Denyhosts
TODO… 晚点再来写