最近总感觉vps慢啊,干啥都慢,很郁闷,和服务商聊了一下,发现他那边没啥改变,那我想问题在我,看了看路由的设置,感觉没啥问题,中间服务器也看了下,也没啥问题。
那慢的原因是啥呢?
查看了服务器的日志,发现有大量的ip地址不停的访问我这台服务器
那好吧,我开启防火墙,最开始就是感觉没必要开启这个,感觉费时费力,还得做规则一直在裸奔,报应来了,我得解决问题。
果断开启防火墙,然后设置好白名单和黑名单!因为黑名单每天都要更改太麻烦了,我写了2个脚本解决问题。
我首先开启防火墙,然后设置好防火墙的开放的端口,去掉所有不用的端口,比如:80,22等等
然后我设置好一个集合,将我放弃的ip放到集合里。最后刷新防火墙使其生效,嗯。爽了。
最后设置好ping,删除所有的非必要用户。速度刷一下就上来了。
分享脚本:
脚本1
#!/bin/bash
for LINE in `grep -i 'Failed password' /var/log/secure | awk '{print $11}' | sort -n | uniq -c | sort -k1nr | awk '{if ($1>3) print $2}'`; do
echo "${LINE}";
if [[ ${LINE} =~ ^([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$ ]]
then
firewall-cmd --permanent --ipset=sshblock --add-entry="${LINE}";
fi
done;
firewall-cmd --reload;
这个脚本很简单就是将访问失败的用户的ip地址加入到我黑名单里,然后拒绝访问,前边我提到了建立一个集合,集合名字叫做sshblock,最后刷新一下。
脚本2:
#!/bin/bash
for LINE in `grep 'FINAL_REJECT:' /var/log/firewalld.log | awk '{print $10}' | head -10 | awk -F"=" '{print $2}'`;
do
echo "${LINE}";
if [[ ${LINE} =~ ^([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$ ]]
then
firewall-cmd --permanent --ipset=sshblock --add-entry="${LINE}";
fi
done;
firewall-cmd --reload;
这个脚本是将访问过我的ip就加入到防火墙黑名单,这个需要注意一下,第一:这里你首先需要开启防火墙的日志功能,第二避免有缺心眼子用ipv6的ip访问你,你需要做一下判断,看看是不是ipv4,当然你如果真碰到ip6的缺心眼子访问你,你就认了吧,当然你也可以手动查询,然后手动添加。