iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何用shell脚本防ssh和vsftpd暴力破解
  • 928
分享到

如何用shell脚本防ssh和vsftpd暴力破解

2023-06-09 19:06:37 928人浏览 薄情痞子
摘要

本篇内容主要讲解“如何用shell脚本防ssh和vsftpd暴力破解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用shell脚本防ssh和vsftpd暴力破解”吧!脚本需求如下:此SHEL

本篇内容主要讲解“如何用shell脚本防ssh和vsftpd暴力破解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用shell脚本防ssh和vsftpd暴力破解”吧!

脚本需求如下:此SHELL脚本放在crontab计划任务里,每隔6小时(此时间根据实际情况来定义)就去读取/var/log/secure脚本,取出里面恶意猜测IP,如果单位时间内(一星期)的连接数是高于一个阀值,例如100(此阀值也可以根据实际情况来定义),则将其加进/etc/hosts.deny黑名单里,如果低于此阀值,则无视此IP。

/var/log/secure里认证失败信息如下:

代码如下:

Nov 28 10:18:08 Centos2 sshd[7556]: Connection closed by 222.216.30.109
Nov 28 10:18:08 centos2 sshd[7557]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=222.216.30.109  user=root
Nov 28 10:18:09 centos2 sshd[7559]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=222.216.30.109  user=root
Nov 28 10:18:10 centos2 sshd[7551]: Failed passWord for root from 222.216.30.109 port 2391 ssh3
Nov 28 10:18:10 centos2 sshd[7552]: Connection closed by 222.216.30.109
Nov 28 10:18:10 centos2 sshd[7553]: Failed password for root from 222.216.30.109 port 2397 ssh3
Nov 28 10:18:10 centos2 sshd[7554]: Connection closed by 222.216.30.109
Nov 28 10:18:11 centos2 sshd[7557]: Failed password for root from 222.216.30.109 port 2401 ssh3
Nov 28 10:18:11 centos2 sshd[7558]: Connection closed by 222.216.30.109
Nov 28 10:18:11 centos2 sshd[7559]: Failed password for root from 222.216.30.109 port 2403 ssh3
Nov 28 10:18:11 centos2 sshd[7560]: Connection closed by 222.216.30.109
Nov 28 10:37:01 centos2 vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Nov 28 10:37:01 centos2 vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=hello rhost=centos1.cn7788.com
Nov 28 10:37:01 centos2 vsftpd: pam_succeed_if(vsftpd:auth): error retrieving infORMation about user hello
Nov 28 10:37:19 centos2 vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Nov 28 10:37:19 centos2 vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=yhc rhost=centos1.cn7788.com
Nov 28 10:37:19 centos2 vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user yhc
Nov 28 10:37:36 centos2 vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Nov 28 10:37:36 centos2 vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=yuhonGChun rhost=centos1.cn7788.com
Nov 28 10:37:36 centos2 vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user yuhongchun
Nov 28 10:42:44 centos2 vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Nov 28 10:42:44 centos2 vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=yuhongchun rhost=114.112.169.70
Nov 28 10:42:44 centos2 vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user yuhongchun
Nov 28 10:42:56 centos2 vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Nov 28 10:42:56 centos2 vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=andrewyu rhost=114.112.169.70
Nov 28 10:42:56 centos2 vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user andrewyu

我们观察下/var/log/secure文件轮询特征,如下所示:

代码如下:

[root@centos2 log]# ls -lsart secure.*
512 -rw------- 1 root root 516379 11-04 01:31 secure.4
660 -rw------- 1 root root 668192 11-11 00:05 secure.3
304 -rw------- 1 root root 306589 11-17 10:33 secure.2
484 -rw------- 1 root root 488620 11-25 02:33 secure.1

基本上,secure文件是以星期为轮询周期的,如果对安全要求严格的朋友还可以本着“一个不放过”的原则来抓取上面的旧secure的恶意IP,下面我们就们就要想办法高效的来抓取这些恶意IP,如果参考原始版本的SHELL脚本写法,,我们这里要抓取secure日志中的侦测vsftpd及sshd服务的IP地址,我们可以用如下命令,命令如下所示:

代码如下:

cat /var/log/secure | awk '/Failed/{print $(NF-3)}'| sort| uniq -c| awk '{print $2"="$1;}'

很明显,这样是取不到vsftpd失败的IP值的,sshd日志失败信息跟vsftpd日志失败信息不一样,我写了几种awk混合sed的方法,测试了效率,感觉用awk脚本速度是最快的,大家也可以写几种,用time命令测试下;最后精简了下代码,完成了整个脚本,脚本内容如下所示:

代码如下:

#!/bin/bash
#Denyhosts For vsftpd and sshd
#2012-12-28
awk '{for(i=1;i<=NF;i++){if($i ~ /rhost/)print substr($i,7)}}' /var/log/secure  | sort | uniq  -c  >/root/black.txt
DEFINE="100"
for i in `cat  /root/black.txt`
do
        IP=`echo $i |awk  '{print $1}'`
        NUM=`echo $i|awk  '{print $2}'`
        if [ $NUM -gt $DEFINE ];
        then
         grep $IP /etc/hosts.deny > /dev/null
          if [ $? -gt 0 ];
          then
          echo "sshd:$IP" >>  /etc/hosts.deny
          echo "vsftpd:$IP" >> /etc/hosts.deny
          fi
        fi
done

脚本运行一段时间后,我们可以观察此脚本涉及到的一些文件,如/root/black.txt,结果如下所示:

代码如下:

[root@centos2 ~]# cat /root/black.txt
      2 113.17.144.156
      4 114.112.51.208
      4 114.112.69.170
    169 118-163-227-50.hinet-ip.hinet.net
      8 119.188.7.200
      8 122.70.130.11
     61 124.248.32.246
     12 183.203.14.121
      3 189.26.255.11
     56 199.204.237.60
      3 199.30.53.220
      5 201.236.80.4
      6 220.172.191.31
     30 222.216.30.109
     60 222.253.159.111
     58 223.4.180.23
    166 58.221.42.178
      1 61.132.4.85
    152 61.142.106.34
     22 61.167.33.222
      7 85.126.166.83
    166 www.b-nets.com

/etc/hosts.deny脚本内容如下:

代码如下:

sshd:124.248.32.246
vsftpd:124.248.32.246
sshd:199.204.237.60
vsftpd:199.204.237.60
sshd:222.253.159.111
vsftpd:222.253.159.111
sshd:223.4.180.23
vsftpd:223.4.180.23
sshd:58.221.42.178
vsftpd:58.221.42.178
sshd:61.142.106.34
vsftpd:61.142.106.34
sshd:118-163-227-50.hinet-ip.hinet.net
vsftpd:118-163-227-50.hinet-ip.hinet.net
sshd:www.b-nets.com
vsftpd:www.b-nets.com

最后,我们将此shell脚本放进crontab 里,每间隔六小时就运行一次,命令如下:

代码如下:

* */6 * * * root /bin/bash /root/hostsdeny.sh >> /dev/null 2>&1


由于/var/log/secure日志是以星期为轮询的,此脚本执行频率可自行设定,如果感觉服务器被频繁侦测,执行频率间隔可设置短些,反之,可设置长些。

到此,相信大家对“如何用shell脚本防ssh和vsftpd暴力破解”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 如何用shell脚本防ssh和vsftpd暴力破解

本文链接: https://www.lsjlt.com/news/257596.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何用shell脚本防ssh和vsftpd暴力破解
    本篇内容主要讲解“如何用shell脚本防ssh和vsftpd暴力破解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用shell脚本防ssh和vsftpd暴力破解”吧!脚本需求如下:此SHEL...
    99+
    2023-06-09
  • Linux如何防止SSH暴力破解
    这篇文章将为大家详细讲解有关Linux如何防止SSH暴力破解,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。SSH暴力破解是指攻击者通过密码字典或随机组合密码的方式尝试登陆服务器(针对的是全网机器),这种攻...
    99+
    2023-06-28
  • Linux中如何使用fail2ban防御SSH暴力破解
    这篇文章将为大家详细讲解有关Linux中如何使用fail2ban防御SSH暴力破解,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。fail2ban 是 Linux 上的一个著名的入侵保护的开源框架,它会监控...
    99+
    2023-06-27
  • Centos7中怎么利用DenyHosts防止ssh暴力破解
    这期内容当中小编将会给大家带来有关Centos7中怎么利用DenyHosts防止ssh暴力破解,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。下载DenyHosts包[root@localhost ...
    99+
    2023-06-05
  • 怎么使用fail2ban防御SSH服务器的暴力破解攻击
    小编今天带大家了解怎么使用fail2ban防御SSH服务器的暴力破解攻击,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“怎么使用fai...
    99+
    2023-06-28
  • 美国服务器如何防止被暴力破解
    美国服务器可以通过以下方式来防止被暴力破解: 强密码:确保使用强密码来保护服务器,包括使用足够长的密码,包括字母、数字和特殊字符...
    99+
    2024-04-09
    美国服务器 服务器
  • 如何在Apache中抵御暴力破解和DDoS攻击
    本篇文章给大家分享的是有关 如何在Apache中抵御暴力破解和DDoS攻击,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。保护系统不受攻击对因特网上提供服务主机的人是一个非常重要...
    99+
    2023-06-28
  • 如何用python暴力破解wifi密码EXE应用
    本篇内容介绍了“如何用python暴力破解wifi密码EXE应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前置准备-依赖库comtype...
    99+
    2023-07-04
  • 如何用PHP执行shell 脚本和 shell命令
    执行 shell 脚本: 或者首先使用 ssh2_connect 函数连接到远程主机,然后使用 ssh2_auth_password 函数进行身份验证。接下来,使用 ssh2_exec 函数执行 shell 脚本,将其输出流作为结果返回。...
    99+
    2023-08-31
    php linux 开发语言 Powered by 金山文档
  • 如何处理租用香港服务器被暴力破解的问题
    租用香港服务器被暴力破解的处理方法:1、限制ip远程登陆香港服务器,防止香港服务器被远程操控;2、修改香港服务器远程端口,提高服务器防御力;3、给香港服务器安装安全软件提高暴力破解的审核机制,使香港服务器更加安全。具体内容如下限制ip的登陆...
    99+
    2024-04-02
  • 如何使用Shell脚本break和continue命令
    本篇内容介绍了“如何使用Shell脚本break和continue命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在循环过程中,有时候需要...
    99+
    2023-06-09
  • 如何理解Linux Shell脚本数组和关联数组
    本篇内容主要讲解“如何理解Linux Shell脚本数组和关联数组”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解Linux Shell脚本数组和关联数组”吧!一、数组和关联数组数组是Sh...
    99+
    2023-06-09
  • 如何理解Linux查找后门思路和shell脚本
    本篇内容介绍了“如何理解Linux查找后门思路和shell脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!每个进程都会有一个PID,而每一...
    99+
    2023-06-09
  • Java和JavaScript:如何在Shell脚本中使用它们?
    Shell脚本是一种能够在Unix和Linux操作系统中运行的脚本语言。它是一种强大的工具,可以用来自动化操作系统的各种任务,包括文件管理、系统管理、网络管理等。在Shell脚本中,我们可以使用各种编程语言的代码来完成任务,包括Java和...
    99+
    2023-11-11
    javascript shell 关键字
  • 如何理解shell脚本联合PHP脚本采集网站的pv和alexa排名
    这篇文章主要讲解了“如何理解shell脚本联合PHP脚本采集网站的pv和alexa排名”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解shell脚本联合PHP脚本采集网站的pv和ale...
    99+
    2023-06-09
  • 如何理解Shell脚本定义变量和重新赋值
    本篇内容主要讲解“如何理解Shell脚本定义变量和重新赋值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解Shell脚本定义变量和重新赋值”吧!Shell支持自定义变量。定义变量定义变量时...
    99+
    2023-06-09
  • Shell脚本常用命令及如何通过shell脚本实现服务器上文件的上传和下载
    Shell脚本常用命令 简介 1、什么是shell: Shell 是一个用 C 语言编写的应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 脚本(shell script),是一种为 shell 编写...
    99+
    2023-08-23
    服务器 linux 自动化
  • Java和Unix Shell编程学习笔记:如何编写可重用的Shell脚本?
    Shell脚本是Unix系统中常用的一种脚本语言,它可以通过命令行界面或者脚本文件来执行一系列的操作。而编写可重用的Shell脚本则可以大大提高脚本的灵活性和可维护性,使得我们可以更加高效地完成工作。本文将介绍如何编写可重用的Shell脚...
    99+
    2023-09-12
    shell unix 学习笔记
  • 无法在shell脚本中使用cd命令如何解决
    这篇文章将为大家详细讲解有关无法在shell脚本中使用cd命令如何解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。代码如下:#! /bin/bash# c.shcd&n...
    99+
    2023-06-09
  • 如何使用Java和Shell脚本高效地操作数组和文件?
    当涉及到处理数组和文件时,Java和Shell脚本是最常用的编程语言之一。因为它们都具有强大的处理能力,可以轻松地对大量数据进行处理。在本文中,我们将深入探讨如何使用Java和Shell脚本高效地操作数组和文件。 一、使用Java处理数组 ...
    99+
    2023-10-31
    shell 数组 文件
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作