前言
刚做运维不久,很多东西初上手,自己租了服务器搭建环境折腾练手,无奈总有扫描端口和ssh暴力破解登录密码的人
起初我也没在意,自用的博客,并没有重要的东西,但是他们把我的后台搞挂了… 前台能访问,后台登不上,数据库无法写入,蛋碎一地。
听从群友的建议,做了一些措施,现在写出来.仅供参考,下面逐个说明
修改ssh连接端口
vim /etc/ssh/sshd_config
找到这行 #Port 22
去掉前面的#
号,将22端口改成你认为别人想不到的端口
然后重启sshd服务
1 | service sshd restart |
centos7使用这个命令
1 | systemctl restart sshd.service |
禁止ROOT登陆
1 | vim /etc/ssh/sshd_config |
找到这行#PermitRootLogin no
,去掉前面的#
号,“Yes”改为“No”,并保存文件
然后重启sshd服务
1 | service sshd restart |
centos7使用这个命令
1 | systemctl restart sshd.service |
将攻击方的IP添加到iptables黑名
首先,如何得到这些IP?
可以在这里面找到:
1 | /var/log/secure |
grep查找关键字Failed
或者直接提取IPgrep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' /var/log/secure |sort |uniq -c
之前使用的nginx搭建的,在后台错误日志里面同样也可以使用此命令来统计,尤其是那些发起奇怪地址请求的人,何为错误日志,发生error才打印,正常,人出错了不会一直访问,因此次数多的嫌疑很大,至于次数多与少,自己斟酌(PS:记住你本机IP,不要把自己误封了)
假设一个ip是123.4.5.6
使用此命令iptables -I INPUT -s 123.4.5.6 -j DROP
然后保存
1 | serivice iptables save |
防止同步洪水包
1 | iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT |
`
防止端口扫描
1 | iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT |
防止洪水攻击
1 | iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT |
将几分钟内多次失败登陆的IP封掉
1 | !/bin/bash |
然后写一个定时任务跑一下就OK了。