对多次ssh密码错误的IP进行防火墙拦截

教你如何配置一套强大的防火墙——iptabels配置详解(一) 今天我来带领大家给自己的服务器搭建一套强大的防火墙!废话不多说,我们开始吧~啥是iptables?ipbtales是集成再Linux内核中的一套防火墙软件。它能够对外界发过来的在进入我们的系统之前,进行一系列的筛选,我们可以自己定义筛选规则,决定哪些数据包可以进入我们的电脑,哪些数据包不允许进入。从而能够使我们的服务器更加安全地运行在公网的环境中。 下面大家一起跟我动手,在实践中掌握知识。动手前的 阅读详情
 
对多次ssh密码错误的IP进行iptables drop
2008-08-07 13:03
#!/bin/bash
#
# 多次输入SSH密码不正确的IP被禁止
#
# Author cnscn < http://www.cnscn.org>
# Time: 2008-03-01 02:00

#####################设置######################
#是使用lastb还是使用/var/log/secure
isLastb=1

#是否调式(0:不调试 1:调试)
isDebug=0

#是否使用ipv6(0:不使用 1:使用)
ipv6=0

#最大错误次数
FailTimes=5

#ssh_scan_iptables.sh文件的路径
ssh_scan_iptables_path="/home/users/cnscn/script/ssh_scan_iptables.sh"

#ssh日志路径
ssh_log_path="/var/log/secure"

#本 程序 扫描出的结果日志
this_log_path="/var/log/messages"

#####################功能######################

#设置时区, 从而使日期输出为"Dec 28" 而不是 "12月 28"
export LC_ALL=UTC

#判断是使用lastb还是解析/var/log/secure
if [ $isLastb -eq 1 ]
then
   #获取当前日期
   hour=$(date +"%b %e");

   #进行 扫描,并把IP地址输出成: 次数=IP 的格式
   SCANNER=$(/usr/bin/lastb|grep -s "$hour"| grep -v "grep -s $hour" |awk '{print $3}'|sort|uniq -c|awk 'length($2)>7 {print $1"="$2}')

else

   # 获取 1天内 secure 记录,统计 ssh 认证失败的 IP 和其 失败次数, 并用Iptables阻止之
   SCANNER=$(awk 'BEGIN{ tm=strftime("%b %e",systime());} $0 ~ tm && /Failed password/ && /ssh2/ {print $(NF-3)}' "${ssh_log_path}" |sort|uniq -c |awk '{print $1"="$2;}')
fi

#对 扫描出的IP进行循环处理
for i in $SCANNER
do

#如果调试,则输出nums=xxx.xxx.xxx.xxx
if [ $isDebug -eq 1 ]
then
     echo $i
fi

# 取认证失败次数
NUM=`echo $i|awk -F= '{print $1}'`


# 取其 IP 地址
if [ $ipv6 -eq 1 ]
then
     #nums=::ffff:202.10.78.68
     IP=`echo $i|awk -F= '{print $2}'|awk -F: '{print $4}'`
else
     #nums=xxx.xxx.xxx.xxx
     IP=`echo $i|awk -F= '{print $2}'`
fi

# 若其在失败次数超过 $FailTimes 次且之前没有被阻断过,那么添加一条 策略将其阻断,并记录日志
if [ $NUM -ge $FailTimes ] && [ -z "`/sbin/iptables -vnL INPUT|grep ${IP}`" ]
then
      echo "/sbin/iptables -A INPUT -s $IP -j DROP"
      /sbin/iptables -A INPUT -s $IP -j DROP

   
      echo " ">> "${ssh_scan_iptables_path}"
      echo "#"$(date +"%Y-%m-%d %H:%M:%S") >> "${ssh_scan_iptables_path}"
      echo "/sbin/iptables -A INPUT -s $IP -j DROP" >> "${ssh_scan_iptables_path}"

      #日志记录命令logger:无效选项 -- h
      #usage: logger [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]
      logger   -i   -t "ssh_scan_crontab"   -f "${this_log_path}"   "$IP($NUM)..."
fi
done

################### End of Script#########################

[root@localhost 238_backup]# cat cnscn/sh/myiptables.sh
#!/bin/bash
#chkconfig: 345 85 15
#description: my iptables rules, which can auto run when system start

# This is a script
# Edit by liwei, cnscn
# establish a static firewall

# 网络接口
interdevice="eth0"

#端口
#21       ftp
#15022    sshd
#25       smtp
#53       named
#80       http
#110      pop3

#外界可以访问的端口
Open_ports="2401 17021 20 15022 80 25 53 110 30000:50000"

#可以外出的端口,其它端口都可以外出
Allow_ports="21 20 80 "

#清除所有以前设置的规则
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

#执行非法IP阻止规则
/home/cnscn/sh/ssh_scan_iptables.sh

#允许211.167.237.201, 防止自己输入错误而导致的IP被封锁
/sbin/iptables -I INPUT -s 211.167.237.201 -j ACCEPT

#定义每一个 网络接口规则
for eths in $interdevice ; do

#接受所有的,来源不是 网络接口$interdevice的数据(对不是eths端口则放行)
#iptables -A INPUT -i ! $eths -j ACCEPT

#定义外界可以访问的端口规则(--dport)
for Port in $Open_ports ; do
    iptables -A INPUT -i $eths -p tcp --dport $Port -j ACCEPT
    iptables -A INPUT -i $eths -p udp --dport $Port -j ACCEPT
done

#给不应该进入我们 机器的数据,一个欺骗性的回答
iptables -A INPUT -i $eths -p tcp -j REJECT --reject-with tcp-reset
iptables -A INPUT -i $eths -p udp -j REJECT --reject-with icmp-port-unreachable
done

#End of Script

#forbidden ping
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all


已经有好几台服务器最近一直受到骚扰,地址来源于五湖四海.主要的方式是SSH 暴力破解,一直不断的尝试,日志逐渐庞大起来,这些可恶的小 臭虫们实在让人讨厌.
大部分情况下还是直接 扫描的22端口,于是简单的修改了一下端口,然后 筛选出日志中攻击的IP地址(我的日志极不规则,所以现在还没能想出特别好的 shell 筛选…….), 添加到iptables或者hosts.deny中. hosts.deny基本格式为 SERVICE_NAME : IP_RANGE : DENY , 服务名 : 单个IP或者IP段(ip/netmask) : DENY . DENY 为缺省的属性,可以省略.
先要检查sshd是否支持tcp_wrappers.用下面的方法,
1. [root@proxy_HUIXIAN log]# ldd /usr/sbin/sshd | grep libwrap.so
libwrap.so.0 => /usr/lib/libwrap.so.0 (0×0069a000)
有类似提示说明已经支持
2. 你也可以将 sshd : 127.0.0.1 : deny 添加到hosts.deny
#ssh localhost
ssh_exchange_identification: Connection closed by remote host
有这样的提示也说明已经支持
另外要养成定期查看完所有服务器的日志的习惯,但这可不是一件太轻松的事情.我们就需要用到日志查看工具–logwatch,这是很多发行版本都已经集成,我们可以修改设置让它把整理和 筛选过的日志发到指定的MAIL中,每天需要做的事情就是打开你的信箱–我就专门在gmail申请了一个存放 系统日志的 MAIL,观察不同的服务器上的日志.例如RHEL AS4 中汽设置文件在 /etc/log.d/logwatch.conf ,每一项都有很详细的解释,主要修改
MAILTO = root 为 MAILTO = root , [url=mailto:serverlog.*@*.com]serverlog.*@*.com[/url],
Range = yesterday 选发送每个昨天的日志
Detail = High 日志详细等级,推荐最高等级10,
其余一般默认就可以,你也可以自己修改syslog.conf中的设置来满足你的对事件日志记录的要求,
{
这里提醒一下,要注意把 crond 守护服务开启,否则你只能傻傻等着,就是不会在你信箱中找到 系统发过来的日志.
#find /etc -type d -name ‘cron.*’ -ok ls -l {} \;
你用上面的命令可以看到在/etc/cron.daily 目录中看到 00-logwatch这个link指向 00-logwatch -> ../log.d/scripts/logwatch.pl ,
所以是需要开启crond
另:你会关系如果你的 系统中没有配置发件服务器怎么办,没有关系” mailer = /bin/mail ” , 系统的MAIL 程序可以帮你完成.
}
当日志很庞大的时候,即使你能很好的 筛选出攻击来源,每天手动的添加那些IP也够让你厌烦的.而用 DenyHosts 就可以自动完成检测日志,并且自动添加到hosts.deny中了,同时DenyHOSTS还会将结果 发到你的MAIL中.
DenyHosts 官方地址为 http://denyhosts.sourceforge.net/ ,至于详细的 教程 网上很多了,就不再重复啦.自己摸索吧.

[root@localhost man8]# cat /etc/rc.d/init.d/cns_iptables.sh
#!/bin/sh
# /etc/init.d/cns_iptables.sh
#
# Starts the at daemon
#
# chkconfig: 345 96 5
# description: cns iptables
# processname: cns_iptables.sh



. /etc/init.d/functions

RETVAL=0

prog="cns_iptables"

start(){
if [ ! -f /var/lock/subsys/cns_iptables ]; then
echo -n $"Starting ${prog}: "
daemon /home/users/cnscn/script/cns_iptables.sh >/dev/null 2>&1
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/cns_iptables
if [ $? -eq 0 ]
then
echo [OK]
else
echo [false]
fi
fi
return $RETVAL
}


stop(){
echo -n $"Stopping ${prog}: "
/etc/rc.d/init.d/iptables restart >/dev/null 2>&1
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/cns_iptables
if [ $? -eq 0 ]
then
echo [OK]
else
echo [false]
fi

return $RETVAL
}

restart(){
stop
start
}

reload(){
restart
}

status_at(){
status /home/users/cnscn/script/cns_iptables.sh
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
if [ -f /var/lock/subsys/cns_iptables ]; then
restart
fi
;;
satus)
status_at
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"
exit 1
esac

exit $RETVAL
SSH连接被拒绝?从服务状态到防火墙的完整排查指南 SSH(Secure Shell)是一种广泛用于远程登录和管理Linux服务器的加密网络协议,它通过在客户端和服务器之间建立安全通道来传输数据。其工作原理基于客户端-服务器架构,使用非对称加密进行身份验证,确保通信的机密性和完整性。掌握SSH连接技术对于服务器运维、自动化部署和远程开发至关重要,尤其是在云计算和分布式系统环境中。当遇到“Connection refused”错误时,通常意味着TCP连接请求被目标端口明确拒绝,这往往指向服务未运行或访问控制问题。本文聚焦于SSH服务状态检查和防火墙配置这两个核 阅读详情

相关推荐

华为eNSP实战:Cloud配置Telnet和SSH的5个常见错误及解决方法

本文详细解析华为eNSP模拟器中配置Cloud设备Telnet和SSH远程连接时常见的5个错误及解决方法,包括IP配置错误、认证失败、服务未启用、防火墙拦截和协议混淆等问题,帮助网络工程师快速排查和解决连接故障。

weixin_29284201的博客 264

ssh时输入错误密码次数过多导致无法登陆-云服务器

1. 进入云服务器所在的控制台,然后远程登陆服务器. 2. 修改/etc/hosts.deny文件,注释或删除掉其中的ip 在这里我们可以看到,禁止的IP在 /etc/sshd.deny.hosteye 下 此文件会将连续输入次数过多的ip记录下来并做限制ssh访问,只需将里面的ip注释掉或者删除掉即可恢复 ...

清风扬 8200

华为防火墙SSH连接四层校验与等保合规配置指南

SSH是一种广泛使用的安全远程登录协议,其核心原理是基于非对称加密的身份认证与对称加密的会话保护。在企业级网络设备中,SSH服务的可用性不仅依赖基础开启命令,更受制于接口绑定、VTY协议控制、AAA用户授权及安全策略放行四重机制。技术价值在于构建可信运维入口,支撑自动化监控、批量配置与等保三级合规要求。典型应用场景包括政务云防火墙远程管理、Zabbix/Prometheus集成、Ansible批量运维等。本文聚焦华为USG6000系列防火墙,深入解析SSH连接失败的常见根因,并结合RSA-2048密钥、AE

weixin_33675507的博客 643

统计访问IP次数,防火墙过滤

IP_ADDR=`tail -n 100 /var/log/secure |grep "Failed password"| egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort -nr|uniq -C|awk '$1>=10 {print $2}'` IPTABLE_CONF=/etc/sysconfig/iptables echo cat ...

djojun1140的博客 359

VirtualBox/VMware Ubuntu虚拟机SSH连不上?用FinalShell一步步排错指南

本文详细解析了VirtualBox/VMware Ubuntu虚拟机SSH连接失败的常见问题,提供从网络配置到服务状态的全面排查指南。通过FinalShell日志分析和命令行工具,帮助开发者快速定位并解决SSH连接问题,确保虚拟机高效运行。

weixin_30540691的博客 725

Finalshell连接失败?排查SSH登录密码问题的完整指南

本文提供了Finalshell连接失败时的完整排查指南,重点解决SSH登录密码问题。从基础配置检查到服务器SSH设置、防火墙与安全组配置,详细讲解了每一步的排查方法,帮助用户快速定位并解决连接问题。文章还包含高级排查技巧和预防措施,确保SSH连接稳定可靠。

weixin_33704234的博客 292

shell-将密码输入错误超过4次的IP地址通过firewalld防火墙阻止访问

应用场景:防止恶意IP尝试ssh登录脚本说明:将密码输入错误超过四次得ip地址通过iptable防火墙访问。

小孙的博客 1787

SSH服务器密码登录失败的排查与修复指南

本文提供了一份全面的SSH服务器密码登录失败排查与修复指南。通过分析客户端与服务器端日志,系统性地定位了六大常见原因,包括SSH服务配置、文件权限、安全模块、PAM认证、防火墙及磁盘空间问题,并给出了详细的修复步骤与安全加固建议,帮助运维人员高效解决问题并提升服务器安全性。

weixin_29268637的博客 124

ssh 连接报错的错误解决排查记录

若登录用户是root,修改并重启服务。解锁可能被锁定的账号(检查 PAM 配置()是否有拒绝规则。确认客户端连接参数(用户名、IP、端口)正确。查看服务端日志,根据具体错误信息进一步处理。

Go_ahead_forever的博客 2987

中科蓝讯(第一次使用指南)

中科蓝讯 新手指南

qq_48579018的博客 1万+

从零搭建uniapp+vue3+ts+tailwindcss多端兼容开发环境

本文详细介绍了如何从零搭建uniapp+vue3+ts+tailwindcss多端兼容开发环境,包括环境准备、TailwindCSS集成、小程序兼容性解决方案以及样式优化技巧。通过实战步骤和常见问题解答,帮助开发者快速掌握这套技术栈,提升开发效率。

weixin_28693309的博客 323

RHEL 9防火墙与SSH密钥认证配置实战:从基础到生产级安全加固

在Linux服务器安全体系中,防火墙与SSH认证是保障系统访问控制的两大基石。防火墙通过规则链实现网络流量过滤,而SSH密钥认证基于非对称加密原理,相比传统密码认证具备更高的安全性。从技术价值看,合理配置防火墙能有效减少攻击面,SSH密钥认证则能彻底杜绝暴力破解风险,两者结合为服务器构建纵深防御体系。在应用场景上,无论是云服务器、企业内部部署还是开发测试环境,都需要根据网络架构和业务需求进行针对性配置。本文聚焦RHEL 9环境,详细解析firewalld区域模型与SSH密钥对部署流程,通过实战演示如何实现端

weixin_33805743的博客 402

用Gazebo仿真无人机视觉SLAM:ORB-SLAM2+RGB-D相机完整调试记录

本文详细介绍了在Gazebo仿真环境中优化ORB-SLAM2用于无人机视觉SLAM的完整调试过程。通过定制传感器配置、调整ORB-SLAM2参数以及优化点云处理策略,显著提升了无人机在仿真环境中的SLAM性能。文章还提供了实用的调试技巧和性能评估方法,帮助开发者高效实现无人机视觉SLAM系统的仿真测试。

weixin_30485379的博客 448

WSL2子系统SSH远程连接配置全攻略:从安装到防火墙设置

本文详细介绍了WSL2子系统配置SSH远程连接的完整流程,包括OpenSSH服务安装、网络端口转发、防火墙设置及自动启动方案。针对WSL2动态IP特性提供实用解决方案,并分享密钥认证、连接优化等高级技巧,帮助开发者高效搭建安全的Linux远程开发环境。

jupyter5notebook的博客 761

三相电机控制中的端电压、相电压与线电压波形解析

本文深入解析了三相电机控制中端电压、相电压与线电压的核心概念与波形差异。通过对比方波控制、SPWM和SVPWM三种主流控制策略下的实测波形特征,揭示了不同控制逻辑对电压波形(如梯形波、正弦波、马鞍波)的影响。文章重点阐述了SVPWM控制如何通过生成马鞍波形端电压来提高直流母线电压利用率,并提供了实用的波形测量与调试指南,帮助工程师深入理解电机控制原理并进行有效调试。

qsc901234567的博客 1394

多角度模板匹配的模板创建技巧

基于形状的模板匹配多角度创建技巧

manuoo的专栏 3402

阿里云SSH连接失败终极排查指南:从零到畅通的完整方案!!!

通过本文的深度解析,相信你已掌握从“连接超时”到“畅通无阻”的全套秘籍。

小丁的博客 1730

基于simulink 的不间断电源ups的项目实例

UPS系统的核心组件包括整流器、逆变器、电池管理系统和控制系统。- **Three-Phase Controlled Rectifier**:设置触发角为0度,用于控制整流器的输出电压。- **Three-Phase Inverter**:设置逆变器的输出频率为60Hz,用于将直流电转换为交流电。- **Control System**:编写MATLAB函数,用于监测市电状态并控制各模块的工作模式。- **Step**:设置阶跃时间,例如0.05秒,阶跃前后的值分别为0和1,用于模拟市电中断。

xiaoheshang_123的博客 708

Ansible密码登录失败排查指南:从SSH认证原理到实战解决

SSH(Secure Shell)协议是远程管理Linux服务器的核心技术,通过加密通道实现安全通信。其认证机制主要包括公钥认证和密码认证两种方式,密码认证依赖客户端与服务端的配置匹配。在自动化运维场景中,Ansible作为配置管理工具,通过SSH协议与目标主机建立连接,但常因认证方式不匹配、服务端配置限制或环境差异导致密码登录失败。理解SSH服务端的PasswordAuthentication、KbdInteractiveAuthentication等关键参数配置,以及Ansible连接变量(如ansib

weixin_33862993的博客 297

软件需求规格说明书(SRS)深入解析

摘要: SRS(软件需求规格说明书)是定义系统功能、性能与接口的核心文档,为开发、测试、项目管理提供依据。标准结构包括引言、总体描述、功能/非功能需求、接口等模块。撰写需确保清晰、可验证、无歧义,避免模糊术语。示例展示学生注册模块的需求写法,强调性能与安全性要求。推荐使用Confluence、StarUML等工具辅助编写,交付时需包含主文档、原型图及需求跟踪矩阵。SRS应兼具技术性与管理性,作为沟通桥梁和验收标准。

moton2017的博客 2918

Python + Playwright:集成 Applitools 进行视觉回归测试(快速入门)

Applitools是一款基于人工智能的视觉验证测试工具,专门用于自动化和验证应用程序的用户界面(UI);Applitools使用视觉回归测试来检测应用程序界面的变化,确保 UI 在不同版本之间的一致性;Applitools的核心功能是通过视觉比较,检测 UI 元素的差异,而无需手动编写复杂的界面检查代码;通过集成Applitools,测试人员可以轻松捕捉和验证界面中的视觉差异,无论是在Web移动端或桌面应用的测试环境;

blues_C的博客 2920

openeuler的ssh证书认证(免密码登录)

2.如果只在test01给test02、test03发送公钥,只能实现01--去往02、01--去往03的免密登录,而02--去往03等则需要输入密码。1.在最高权限root管理员操作下述步骤,只能实现三台虚拟机的root管理员之间的免密登录;而在lcy普通用户执行下述命令,则只能实现三台虚拟机的普通用户之间的免密登录,不能实现跨用户的免密登录。如果直接登录成功,没有提示输入密码,说明免密配置完成 ✅。,执行成功后,后续登录就不需要再输密码了。:公钥(需要分发到其他机器)建议:在三台机器上创建。

2501_91644987的博客 604

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

恒创科技:为什么用ssh连接服务器会出现错误?

当我们尝试通过 SSH 连接到服务器时可能会发生许多情况,比如出现“连接被拒绝”的错误。虽然导致 SSH 连接错误的原因可能有多种,但以下是其中常见的几种: 1.您的 SSH 服务已关闭。 2.您的凭证有误。 3.您尝试使用的端口已关闭。 4.您的服务器上未安装 SSH。 5.防火墙设置阻止了 SSH 连接。 1.你的 S...

weixin_41087607的博客 316

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

服务器禁用账号登录,服务器如何防止被爆破账号密码

在云平台买了2台服务器,发现有两个ip在爆破root 密码,虽然已经设置密码强度很复杂,但是还是怕被人惦记也。一、根据以前做企业网络安全经验,思考一下服务器防止爆破的手段:1)禁止账号密码登录,使用SSH KEY登录,这样即使知道账号密码但没有SSH KEY也登录不了服务器。2)限制登录的IP地址,也就是仅放通我自己的运维电脑的IP可以登录服务器,其他IP都不允许登录我的服务器。3)当然最好还是修...

weixin_35664081的博客 1586

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

MobaXterm连接Ubuntu的防火墙与SSH服务排查指南

本文详细介绍了使用MobaXterm连接Ubuntu时遇到的防火墙与SSH服务问题排查方法。从基础环境准备、防火墙规则设置到SSH服务配置,提供了全面的解决方案和实用技巧,帮助用户快速解决连接问题并提升系统安全性。

weixin_33749242的博客 592
上一篇: 关于"Neighbour table overflow“的错误分析及解决方案
下一篇: linux下Weblogic服务器部分用户访问报403错误且提示只允许5个特殊IP访问
linuxOOstudy
博客等级 码龄15年 1粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值