一. 问题的发现

昨晚苦逼加班完后,今早上班继续干活时,SSH连接服务器发现异常的提示,仔细看了一下吓一小跳,昨晚9点钟到现在,一夜之间被人尝试连接200+,慌~~~

1. 速度查一下log

[root@zwlbsweb ~]# cd /var/log
[root@zwlbsweb log]# ll -h
-------------------------省略部分信息------------------------------
-rw------- root root 4.9M Jul : secure
-rw------- root root 38M Jun : secure-
-rw------- root root 64M Jun : secure-
-rw------- root root 46M Jul : secure-
-rw------- root root 14M Jul : secure-
-------------------------省略部分信息------------------------------

发现secure日志文件咋都这么大?原来不止是昨晚被攻击,之前就已经挨无数的暴击了。

2. 打开日志文件瞧瞧

发现被无数不同的IP地址和不同的用户进行SSH尝试连接。

随便拿个IP地址,百度一下,全是国外的IP地址,太可恶了:

二. 防范办法

虽然我的密码很复杂了,但是为了以防万一,还是速度百度一下,斩草除根

1. 修改 SSH 默认端口

  • 注:修改之前,记得请把对应端口在防火墙添加规则。

i. 修改SSH端口为 2298(这个端口建议使用 1024 以上的)

[root@zwlbsweb ~]# vim /etc/ssh/sshd_config
---------------配置如下----------------
Port

ii. 重启SSH

[root@zwlbsweb ~]# systemctl restart sshd

iii. 查看端口是否更改

[root@zwlbsweb ~]# netstat -ntlp | grep
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp6 ::: :::* LISTEN /sshd

注:还有个步骤就是“禁止root登录”,我这里就不禁止root登录了,因为密码太复杂记不住,切换root用户不方便。

2. 防止 SSH 暴力破解脚本

注:同一个IP地址超过10次的尝试,就加入/etc/hosts.deny。

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

添加计划任务:

[root@zwlbsweb ~]# crontab -e
*/ * * * * /bin/bash /sshPrevent/ssh_pervent.sh
# 每五分钟检查一次 # 重启crontab
[root@zwlbsweb ~]# systemctl restart crond

五分钟后,查看是否成功:

[root@zwlbsweb ~]# cat /sshPrevent/black.txt
103.101.232.208=
103.108.187.4=
103.248.220.249=
104.131.93.33=
104.236.122.193=
104.236.186.24=
104.236.246.16=
104.244.79.33=
104.248.211.180=
......
-------------------------------我是分割线----------------------------------
[root@zwlbsweb ~]# cat /etc/hosts.deny
#
# hosts.deny This file contains access rules which are used to
# deny connections to network services that either use
# the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# The rules in this file can also be set up in
# /etc/hosts.allow with a 'deny' option instead.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
sshd:103.248.220.249
sshd:104.248.88.106
sshd:106.12.18.37
sshd:106.51.230.186
sshd:106.75.17.91
sshd:112.21.188.183
sshd:112.221.179.133
......

小小的防范措施就到此完成了!

三. 隔一段时间查看效果如何

半天已经过去了,我们再次查看 secure 日志文件。

SSh连接没有提示了,日志也恢复了正常状态,感谢博友们,收工!

Linux CentOS 防止SSH暴力破解的更多相关文章

  1. 防止ssh暴力破解的小工具denyhosts

    DenyHosts 简介 DenyHosts 是 Python 语言写的一个程序软件,运行于 Linux 上预防 SSH 暴力破解的,它会分析 sshd 的日志文件(/var/log/secure), ...

  2. Linux用root强制踢掉已登录用户;用fail2ban阻止ssh暴力破解root密码

    Linux用root强制踢掉已登录用户   首先使用w命令查看所有在线用户: [root@VM_152_184_centos /]# w 20:50:14 up 9 days, 5:58, 3 use ...

  3. Linux应急响应(一):SSH暴力破解

    0x00 前言 ​ SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全.SSH口令长度太短或者复杂度不够,如仅包含数字,或仅包 ...

  4. SSH 暴力破解趋势——植入的恶意文件属 DDoS 类型的恶意文件最多,接近70%,包括 Ganiw、 Dofloo、Mirai、 Xarcen、 PNScan、 LuaBot、 Ddostf等家族。此外挂机、比特币等挖矿程序占5.21%

    SSH 暴力破解趋势:从云平台向物联网设备迁移 | 云鼎实验室出品 from: http://www.freebuf.com/articles/paper/177473.html 导语:近日,腾讯云发 ...

  5. 利用iptables防止ssh暴力破解和控制网速

    iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --setiptables -I INPUT -p ...

  6. ssh暴力破解解决方案(Centos7更改端口)

    服务器默认ssh远程连接端口为22端口,通常通过22远程连接的话,容易有ssh暴力破解的风险,给我们造成一定的损失.下面是更换ssh端口过程: 1.添加ssh端口 vim /etc/ssh/sshd_ ...

  7. 阿里云服务器被他人通过SSH暴力破解后的安全加固

    背景说明:我登录阿里云服务器控制台时,收到几条安全警告信息. 从图中可以知道,对方的IP地址是47.97.68.118,通过SSH登录方式,登录时用我服务器里的admin用户,然后用穷举法暴力破解ad ...

  8. 树莓派保卫战--防止SSH暴力破解

    自己用树莓派搭建了个小server,用了很长时间了,最近查看log发现有很多SSH登陆失败,瞬间心就碎了,一直没关心小派的安全问题,怪我咯! 马上行动,首先研究下log:/var/log/auth.l ...

  9. 【Linux系统】防暴力破解

    在日志文件/var/log/secure 中可以看到涉及到安全方面的日志,可以查看是否有人尝试暴力破解及是否成功,对于肉鸡行为有一定帮助 思路基本上都是加强密码的复杂度,增加iptables配置黑名单 ...

随机推荐

  1. ssh-copy-id 命令自动复制本机公钥到远程机器

    ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中,ssh-copy-id能让你有到远程机器的home, ~./ssh , 和 ~/.ssh/authorized ...

  2. 无依赖单文件http-ftp文件服务器(py2)

    网上看到的东东,居然在很合适堡垒机上传下载文件的场景. 这个只能在python2版本上跑, 我更改了自定义端口. 下次再改写个py3版本的. #!/usr/bin/env python "& ...

  3. 初学JavaScript正则表达式(八)

    JavaScript正则贪婪模式与非贪婪模式 贪婪模式: 例: \d{3,6} 匹配数字3到6次(正则表达式默认为贪婪模式,即匹配最多次,失败即停) '12345678'.replace(/\d{3, ...

  4. 精选傻X错误 && 自己的套路

    声明 参考课件由Accelerator汇编 1. 随手注意的细节 你写的main 真的是 main 么? 在无向图或者网络流找反向边的时候,编号 \(xor 1\) 的前提是,你的第一条边编号是 2或 ...

  5. oracle 定时运行存储过程的实现

    是基于PL/SQL 可视化工具的实现:   首先,先编写一个存储过程   点击procedure,右键新建,填写一个你编写的存储过程的名字:   如果是对正常的表进行操作,那么直接在begin和end ...

  6. 剑指Offer-4.重建二叉树(C++/Java)

    题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2 ...

  7. 工具资源系列之给 windows 虚拟机装个 centos

    前面我们已经介绍了如何在 Windows 宿主机安装 VMware 虚拟机,这节我们将利用安装好的 VMware 软件安装 centos 系统. 前情回顾 由于大多数人使用的 Windows 电脑而工 ...

  8. [转]numpy的getA()/getA1()/getH()/getI()函数

    转自https://blog.csdn.net/weixin_42906066/article/details/82625779 1.mat.getA() 将自身矩阵变量转化为ndarray类型的变量 ...

  9. 大话设计模式Python实现-适配器模式

    适配器模式(Adapter Pattern):将一个类的接口转换成为客户希望的另外一个接口. 下面是一个适配器模式的demo: #!/usr/bin/env python # -*- coding:u ...

  10. 匿名函数和for_each用法

    匿名函数,C++11的 for_each 用法 #include <iostream> #include <algorithm> #include "testClas ...