云服务器防ssh攻击

最近在某云租了台云服务器,中间有几天没登,登陆成功后显示1万多次的失败登录,于是萌新开始了一段防ssh攻击的探索之路,记录一下。

云服务器防ssh攻击

 

 

 

从网上学习到的思路主要从以下几个方面进行防御

1、禁用root用户ssh登录。使用自定义的用户名进行登录

2、封禁ip

3、使用其它端口登录(关闭22端口)

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

具体实现如下

1、禁用root用户ssh登录。使用自定义的用户名进行登录

 创建新用户,并进行登录测试,此处省略几百字.......

一定要创建新用户

一定要创建新用户

一定要创建新用户

vi /etc/ssh/sshd_config

修改 PermitRootLogin值为no

云服务器防ssh攻击

 

2、封禁ip

编写shell将攻击方IP加入黑名单,网上参考来的

统计失败登录记录,这里定义时间区间内失败超过5次就将ip加入黑名单

--secure_ssh.sh
#! /bin/bash
cat /var/log/secure|awk '/Failes/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/littlebro/bin/blackIP.txt
for i in `cat /usr/littlebro/bin/blackIP.txt`
do
    IP=`echo $i |awk -F= '{print $1}'`
    NUM=`echo $i |awk -F= '{print $2}'`
        if [$NUM -gt 5 ];then
            grep $IP /etc/hosts.deny > /dev/null
            if [ $? -gt 0 ];then
                echo "sshd:$IP:deny" >> /etc/hosts.deny
            fi
        fi
done

corntab定时,每5分钟运行一次上述脚本

crontab -e
*/5 * * * *  sh /usr/littlebro/bin/secure_ssh.sh

敲lastb命令发现,然鹅每天还是有很多攻击记录/etc/hosts.deny记录不断增加,于是决定弃用22端口

 

3、使用其它端口登录(关闭22端口)

 具体操作如下,没装firewall的先装一下,云服务控制台安全规则里添加下要使用的端口,这里用的2333

cd /etc/ssh/
vi ssh/sshd_config
#添加2333端口 Port 2333
##重启sshd服务
systemctl restart sshd.service
##firewall添加端口2333
firewall-cmd --zone=public --add-port=2333/tcp --permanent
##重启firewall
firewall-cmd --reload
##检查添加是否成功
firewall-cmd --zone=public --query-port=2333/tcp
##开新窗口切换端口登录测试

##firewall移除22端口
firewall-cmd --zone=public  --remove-port=22/tcp --permanent

##修改sshd_config文件删除22端口
##重启sshd服务
systemctl restart sshd.service

大概就是这样了。改完失败登录记录确实少了很多。

当然如果2333端口被扫描到后应该又会有新的攻击,后续有新的思路再行更新。

 

以上用户名littlebro与2333端口都是编的.....

仅供参考

 

上一篇:securityCRT ssh远程开启mysql,断开连接后,mysql服务就停止服务


下一篇:使用SSH服务管理远程主机