SSH访问控制,多次失败登录即封掉IP,防止暴力破解
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,防止暴力破解相关推荐
- 使用Hydra批量暴力破解SSH、RDP登录口令
破解环境:Kali 2021.1 使用namp扫描SSH端口开放的主机 nmap -p 22 -n --open 192.168.1.0/24 | grep 192 |awk '{print $5}' ...
- 开源服务专题之------ssh防止暴力破解及fail2ban的使用方法
15年出现的JAVA反序列化漏洞,另一个是redis配置不当导致机器入侵.只要redis是用root启动的并且未授权的话,就可以通过set方式直接写入一个authorized_keys到系统的/roo ...
- SSH密码暴力破解及防御实战----攻
1.实验环境 准备一台装有kali的虚拟机和一台ssh端口开放的虚拟机 这里面的暴力破解全是使用的kali里面自带的软件破解的. kali 192.168.13.145 #装有kali的虚拟机 loc ...
- web后台登录口令暴力破解及防御
在实际网络安全评估测试中,前台是给用户使用,后台是给网站管理维护人员使用,前台功能相对简单,后台功能相对复杂,可能保护媒体文件上传,数据库管理等.前台用户可以自由注册,而后台是网站管理或者维护人员设定 ...
- ssh免密登陆失败原因总结(Linux)
转载自 ssh免密登陆失败原因总结(Linux) 1. SSH公钥认证(免密码)配置 登录到本机服务器A,切换到响应的操作系统用户,执行命令,生成秘钥文件[按照提示直接回车] ssh-keygen ...
- linux 更改配置文件 禁止ssh,配置linux用户实现禁止ssh登陆但可用sftp登录
构想和目标 最近有个这样的诉求:基于对线上服务器的保密和安全,不希望开发人员直接登录线上服务器,因为登录服务器的权限太多难以管控,如直接修改代码.系统配置,并且也直接连上mysql.因此希望能限制开发 ...
- ssh访问控制,封杀ip,防止暴力破解
写一个计划任务脚本,每分钟检测一下,把连接本机ssh失败次数达10次的IP地址封掉.要求用awk做. 一.系统:centos6 二.方法:读取/var/log/secure,查找关键字Failed,例 ...
- SSH远程访问及控制——远程登录服务器并传输数据
文章目录 一.SSH远程管理 1.SSH的概述 二.OpenSSH服务器 三.配置OpenSSH服务器 3.1.sshd_ config配置文件的常用选项设置 3.2.实例操作:配置文件的常用选项 3 ...
- shell实现将登录失败次数超过5次ip拉入黑名单,以防暴力破解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.服务器环境配置准备 二.环境配置 1.禁用firewalld 2.关闭selinux 3.安装.启用iptable ...
最新文章
- 头条hr就是刚:拒绝Offer或者放弃入职等于永远跟头条没关系!
- matlab using mtimes,同版本matlab、同一.m文件,为何一个顺利执行、另一个出错?
- 信号处理中数字频率和模拟频率简明讲解
- SQL Server 2008 复习(三)
- postman mysql_postman连接mysql执行操作
- .net测试篇之Moq框架简单使用
- 计算机考研英语词汇书,求助:有知道电脑背考研英语单词的
- [Vo. 1 No. 1] 高等代数一题[Sep. 19, 2013]
- 影响信息业发展的飞鸽传书2007关键
- mos 多路模拟电子开关_软开关设计 || 软开关硬件三极管、MOS管典型电路分析
- 键盘上ALT键的妙用
- 检查键是否存在于JavaScript对象中?
- 详细介绍各种常见的分布
- c语言代码混淆器,代码混淆
- win10通过OneDrive实现办公室的电脑和家里电脑重要数据同步
- PVLAN 技术介绍
- scanf()函数用法规则探索——c语言,以及%c和%s的语法特性
- 什么是大数据?大数据的特征有哪些?
- 移动物联网应用典型案例福建8项目入选,四信携手产业共赢
- 函数、变量的声明和定义
热门文章
- spark大批量读取Hbase时出现java.lang.OutOfMemoryError: unable to create new native thread
- GraphQL 渐进学习 07-graphql-node-server-模块化
- fail2ban使用教程
- 理解并取证:DHCP的工作原理、怎么检测IP地址冲突
- cakephp中使用大括号的形式避免用点号连接sql语句
- 计算两个日期之间的工作日
- BZOJ 1040 骑士
- ROCK 聚类算法
- jQuery 学习笔记一(认识jQuery jQuery选择器 jQuery中的DOM操作)
- spring boot 整合mybatis 无法输出sql的问题