2019独角兽企业重金招聘Python工程师标准>>>

一、系统:CentOS 6.3 64位

二、方法:读取/var/log/secure,查找关键字 Failed,例如(注:文中的IP地址特意做了删减):

Sep 17 09:08:09 localhost sshd[29087]: Failed password for root from 13.7.3.6 port 44367 ssh2
Sep 17 09:08:20 localhost sshd[29087]: Failed password for root from 13.7.3.6 port 44367 ssh2
Sep 17 09:10:02 localhost sshd[29223]: Failed password for root from 13.7.3.6 port 56482 ssh2
Sep 17 09:10:14 localhost sshd[29223]: Failed password for root from 13.7.3.6 port 56482 ssh2

从这些行中提取IP地址,如果次数达到5次则将该IP写到 /etc/hosts.deny中。

三、步骤:

1、先把始终允许的IP填入 /etc/hosts.allow ,这很重要!比如:
sshd:19.16.18.1:allow
sshd:19.16.18.2:allow

2、脚本 /root/secure_ssh.sh

#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt
DEFINE="5"
for i in `cat  /root/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 0 ];then
          echo "sshd:$IP:deny" >> /etc/hosts.deny
      fi
    fi
done

3、将secure_ssh.sh脚本放入cron计划任务,每1分钟执行一次。
# crontab -e
*/1 * * * *  sh /root/secure_ssh.sh

四、测试:

1、开两个终端窗口,一个ssh连上服务器,另一个用错误的密码连接服务器几次。

很快,服务器上黑名单文件里已经有记录了:
[root@ ~]# $ cat /root/black.txt 
13.26.21.27=3

再看看服务器上的hosts.deny
[root@ ~]# cat /etc/hosts.deny
sshd:13.7.3.6:deny
sshd:92.4.0.4:deny
sshd:94.10.4.2:deny
sshd:94.4.1.6:deny
sshd:11.64.11.5:deny

2、从另一个终端窗口继续“暴力”连接服务器。

看看服务器上的黑名单文件:
[root@ ~]# cat black.txt
13.26.21.27=6

再看看服务器上的hosts.deny
[root@ ~]# cat /etc/hosts.deny
sshd:13.7.3.6:deny
sshd:92.4.0.4:deny
sshd:94.10.4.2:deny
sshd:94.4.1.6:deny
sshd:11.64.11.5:deny
sshd:13.26.21.27:deny

IP 已经被加入到服务器的hosts.deny,再用正确的密码连接服务器,被拒绝:
$ ssh root@myserver.mydomain.com -p 2333
ssh_exchange_identification: Connection closed by remote host

注:
1.脚本为同事编写。

2.服务器sshd端口已改为2333,事实证明,改了端口后,暴力破解的ssh连接数锐减。

转载于:https://my.oschina.net/yearnfar/blog/486309

SSH访问控制,多次失败登录即封掉IP,防止暴力破解相关推荐

  1. 使用Hydra批量暴力破解SSH、RDP登录口令

    破解环境:Kali 2021.1 使用namp扫描SSH端口开放的主机 nmap -p 22 -n --open 192.168.1.0/24 | grep 192 |awk '{print $5}' ...

  2. 开源服务专题之------ssh防止暴力破解及fail2ban的使用方法

    15年出现的JAVA反序列化漏洞,另一个是redis配置不当导致机器入侵.只要redis是用root启动的并且未授权的话,就可以通过set方式直接写入一个authorized_keys到系统的/roo ...

  3. SSH密码暴力破解及防御实战----攻

    1.实验环境 准备一台装有kali的虚拟机和一台ssh端口开放的虚拟机 这里面的暴力破解全是使用的kali里面自带的软件破解的. kali 192.168.13.145 #装有kali的虚拟机 loc ...

  4. web后台登录口令暴力破解及防御

    在实际网络安全评估测试中,前台是给用户使用,后台是给网站管理维护人员使用,前台功能相对简单,后台功能相对复杂,可能保护媒体文件上传,数据库管理等.前台用户可以自由注册,而后台是网站管理或者维护人员设定 ...

  5. ssh免密登陆失败原因总结(Linux)

    转载自  ssh免密登陆失败原因总结(Linux) 1. SSH公钥认证(免密码)配置 登录到本机服务器A,切换到响应的操作系统用户,执行命令,生成秘钥文件[按照提示直接回车] ssh-keygen ...

  6. linux 更改配置文件 禁止ssh,配置linux用户实现禁止ssh登陆但可用sftp登录

    构想和目标 最近有个这样的诉求:基于对线上服务器的保密和安全,不希望开发人员直接登录线上服务器,因为登录服务器的权限太多难以管控,如直接修改代码.系统配置,并且也直接连上mysql.因此希望能限制开发 ...

  7. ssh访问控制,封杀ip,防止暴力破解

    写一个计划任务脚本,每分钟检测一下,把连接本机ssh失败次数达10次的IP地址封掉.要求用awk做. 一.系统:centos6 二.方法:读取/var/log/secure,查找关键字Failed,例 ...

  8. SSH远程访问及控制——远程登录服务器并传输数据

    文章目录 一.SSH远程管理 1.SSH的概述 二.OpenSSH服务器 三.配置OpenSSH服务器 3.1.sshd_ config配置文件的常用选项设置 3.2.实例操作:配置文件的常用选项 3 ...

  9. shell实现将登录失败次数超过5次ip拉入黑名单,以防暴力破解

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.服务器环境配置准备 二.环境配置 1.禁用firewalld 2.关闭selinux 3.安装.启用iptable ...

最新文章

  1. 头条hr就是刚:拒绝Offer或者放弃入职等于永远跟头条没关系!
  2. matlab using mtimes,同版本matlab、同一.m文件,为何一个顺利执行、另一个出错?
  3. 信号处理中数字频率和模拟频率简明讲解
  4. SQL Server 2008 复习(三)
  5. postman mysql_postman连接mysql执行操作
  6. .net测试篇之Moq框架简单使用
  7. 计算机考研英语词汇书,求助:有知道电脑背考研英语单词的
  8. [Vo. 1 No. 1] 高等代数一题[Sep. 19, 2013]
  9. 影响信息业发展的飞鸽传书2007关键
  10. mos 多路模拟电子开关_软开关设计 || 软开关硬件三极管、MOS管典型电路分析
  11. 键盘上ALT键的妙用
  12. 检查键是否存在于JavaScript对象中?
  13. 详细介绍各种常见的分布
  14. c语言代码混淆器,代码混淆
  15. win10通过OneDrive实现办公室的电脑和家里电脑重要数据同步
  16. PVLAN 技术介绍
  17. scanf()函数用法规则探索——c语言,以及%c和%s的语法特性
  18. 什么是大数据?大数据的特征有哪些?
  19. 移动物联网应用典型案例福建8项目入选,四信携手产业共赢
  20. 函数、变量的声明和定义

热门文章

  1. spark大批量读取Hbase时出现java.lang.OutOfMemoryError: unable to create new native thread
  2. GraphQL 渐进学习 07-graphql-node-server-模块化
  3. fail2ban使用教程
  4. 理解并取证:DHCP的工作原理、怎么检测IP地址冲突
  5. cakephp中使用大括号的形式避免用点号连接sql语句
  6. 计算两个日期之间的工作日
  7. BZOJ 1040 骑士
  8. ROCK 聚类算法‏
  9. jQuery 学习笔记一(认识jQuery jQuery选择器 jQuery中的DOM操作)
  10. spring boot 整合mybatis 无法输出sql的问题