首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux自动ip拉黑

基础概念

Linux自动IP拉黑是指在Linux系统中,通过脚本或程序自动检测并阻止某些IP地址访问系统或网络服务的技术。这种技术通常用于防御恶意攻击、DDoS攻击、暴力破解等网络安全威胁。

相关优势

  1. 提高安全性:自动拉黑恶意IP可以有效减少系统受到的攻击。
  2. 减少人工干预:自动化处理可以减少管理员的工作量,提高响应速度。
  3. 灵活性:可以根据不同的规则和策略进行配置,适应不同的安全需求。

类型

  1. 基于防火墙的拉黑:使用iptables、ufw等工具来阻止特定IP地址。
  2. 基于脚本的拉黑:编写脚本定期检查日志文件,发现恶意IP后自动添加到防火墙规则中。
  3. 基于服务的拉黑:使用专门的安全服务或软件,如Fail2Ban,它可以监控多个服务并自动拉黑恶意IP。

应用场景

  1. Web服务器:防止恶意爬虫、DDoS攻击等。
  2. 数据库服务器:防止暴力破解密码。
  3. SSH服务:防止暴力破解登录。
  4. 邮件服务器:防止垃圾邮件发送者。

示例代码(基于iptables)

以下是一个简单的脚本示例,用于自动拉黑频繁访问SSH服务的IP地址:

代码语言:txt
复制
#!/bin/bash

# 定义日志文件路径
LOG_FILE="/var/log/auth.log"

# 定义拉黑阈值(每分钟超过10次失败的登录尝试)
THRESHOLD=10

# 定义时间窗口(1分钟)
TIME_WINDOW=60

# 获取当前时间戳
CURRENT_TIMESTAMP=$(date +%s)

# 清空之前的记录
echo "" > /tmp/ssh_attempts.log

# 解析日志文件,统计每个IP的失败登录尝试次数
awk '/Failed/{print $11}' $LOG_FILE | sort | uniq -c | while read count ip; do
    if [ "$count" -gt "$THRESHOLD" ]; then
        echo "$CURRENT_TIMESTAMP $ip $count" >> /tmp/ssh_attempts.log
    fi
done

# 检查并拉黑超过阈值的IP
while read timestamp ip count; do
    if [ $(($(date +%s) - $timestamp)) -lt $TIME_WINDOW ]; then
        iptables -A INPUT -s $ip -j DROP
        echo "Blocked IP: $ip" >> /var/log/blocked_ips.log
    fi
done < /tmp/ssh_attempts.log

参考链接

常见问题及解决方法

  1. 误判正常IP:可以通过调整阈值和时间窗口来减少误判。
  2. 拉黑后无法访问:确保拉黑的IP地址确实是恶意IP,并且没有影响到正常用户。
  3. 脚本执行失败:检查脚本权限、依赖库和环境变量,确保脚本能够正常运行。

通过以上方法,可以有效提高Linux系统的安全性,减少恶意攻击的影响。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux系统防CC攻击自动拉黑IP增强版Shell脚本

num=50 else         num=$1 fi   #巧妙的进入到脚本工作目录 cd $(cd $(dirname $BASH_SOURCE) && pwd)   #请求检查、判断及拉黑主功能函数...每 10s 将检查一次服务器请求,如果某个 IP 超过 50 个并发,立即拉黑,并发一封邮件给你!...三、效果测试 测试很简单,先使用 nohup 启动脚本,然后在另一台 Linux 或 Windows 安装 webbench,然后模拟 50+并发去抓取该服务器的某个页面,20s 之内可见到效果,下面是我的测试截图...③、攻击 IP 被拉黑后的报警邮件: ? 测试时,模拟 55 个并发攻击了 20s,立马就被拉黑了,效果很明显!...⑤、对于白名单过滤,只要将白名单 IP 保存到脚本同一目录下的 white_ip.txt 文件中即可,若发现攻击 IP 在白名单中,脚本不会直接拉黑,而是发一封邮件给你,让你自己判断这个白名单攻击你是为毛

2.9K50

CC攻击应急:自动拉黑IP的Shell脚本

他假定的场景是网站没有任何防护措施(就是在互联网上裸奔),好吧,既然没有任何的防护,在应急的时候,能不能通过脚本自动分析web日志,根据访问量自动拉黑ip?...脚本介绍 脚本设计思路:通过计划任务统计单位时间内的IP访问量,设定一个阀值,访问量超过阀值就自动拉黑。 #!.../bin/bash #该脚本可以根据web日志的访问量,自动拉黑IP(加入计划任务,结合计划任务在固定时间段内执行,并根据该时间段内产生的日志进行分析) #首先把日志保存到根目录一份,计算日志有多少行...会被自动拉黑 if (($num>12)) then ip=`awk '{print$2}' /line` firewall-cmd --add-rich-rule="rule family...5.再访问可以看到本地的IP已经无法访问网页 ? 6.通过firewall-cmd —list-all 可以看到自己本地的ip地址已经被拉黑 ?

1.7K10
  • 利用Nginx 脚本自动拉黑IP,防止服务器被攻击

    1.在ngnix的conf目录下创建一个blacklist_ip.conf文件2.里面放需要封禁的IP,格式如下deny 127.0.0.1;3.在ngnix的HTTP的配置中添加如下内容deny 127.0.0.1...;4.重启 ngnix以上方式是手动添加ip,下面是实现使用ngnix自动封禁ip的功能操作一: AWK统计access.log,记录每分钟访问超过60次的ipawk '{print $1}' access.log...| sort | uniq -cd | awk '{if($1>60)print $0}'1.awk '{print $1}' access.log 取出access.log的第一列即为ip。...uniq -cd 去重和排序3.awk '{if($1>60)print $0}' 判断重复的数量是否超过60个,超过60个就展示出来操作二: 编写shell脚本,实现整体功能(写了注释代码)#不能把别人IP.../local/nginx/logs/11.log /usr/local/nginx/sbin/nginx -s reloadelse #如果不为空 前面加上 deny格式和ip

    1.3K20

    CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放

    目前设计的功能特性如下: ①、秒级检查 很多人写的防御脚本都是使用了 Linux 系统的计划任务 crontab 来定时检查的。...②、拉黑时长 CCKiller 可以设置拉黑时长,默认为 10 分钟。当发现有恶意请求时,会自动拉黑目标 IP,并在拉黑时长结束后自动释放,这个功能算是对我之前写的脚本的一个大的改进。...⑥、手动拉黑 支持手动拉黑,执行后会立即检查,将并发请求超过 n 的 IP 拉黑一段时间,比如 cckiller -k 100 就会将目前超过 100 个请求的 IP 拉黑一段时间,如果没有则不会执行任何拉黑操作...IP 的判断方式; 增加日志记录功能,每天一个日志文件,位于安装目录下的 log 文件内; 集成手动拉黑 IP 和解封 IP 功能,使用 cckiller -b IP 拉黑,使用 cckiller -...因此,1.0.3 版本加入永久拉黑设置。只要在安装的时候,设置拉黑时长为 0,则 CCKiller 不会再产生后台释放脚本,也不会释放已拉黑的 IP 了: ?

    3.1K60

    Linux如何设置IP地址_linux添加ip

    对于很多刚刚接触linux的朋友来说,如何设置linux系统的IP地址,作为第一步,下面学习啦小编以centos系统为例,给大家演示如何给centos设置IP地址 设置linux系统的IP地址方法...1、自动获取IP地址 虚拟机使用桥接模式,相当于连接到物理机的网络里,物理机网络有DHCP服务器自动分配IP地址。...#dhclient 自动获取ip地址命令 #ifconfig 查询系统里网卡信息,ip地址、MAC地址 分配到ip地址后,用物理机进行ping ip地址,检测是否ping通。...2、手动设置ip地址 如果虚拟机不能自动获取IP,只能手动配置,配置方法如下: 输入命令 #vi /etc/sysconfig/network-scripts/ifcfg-eth0 [编辑网卡的配置文件...看过“ 如何设置linux系统的IP地址 ”的人还看了: 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    26.4K20

    物联网卡设备接入EasyCVR,如何查看拉流IP以及拉流时间?

    但是物联网卡设备需要走网络流量,有些设备如果经常被拉流,对用户来说,则会产生一笔不小的流量费用,导致使用成本过高。...因此针对这种情况,我们有两种方法可以查看相关拉流记录,了解究竟是哪一个IP对设备进行了拉流。1)查看日志。...最新的EasyCVR日志可以查看到所有设备的接口调用情况,以及是由哪个IP进行了拉流播放、以及具体的拉流时间,这样可以方便用户定位到设备拉流信息,从而进行具体的排查:2)抓包查看。...可以通过抓一段时间的包,然后将数据包拷贝出来,用wireshark打开后筛选http,这样也可以查看到详细的接口调用:通过以上两种办法,可以帮助用户快速定位设备拉流情况,从而进行相关的判断和进一步操作,

    1.1K20

    Linus 回应“拉黑”事件:触犯禁忌,违背信任!

    4 月 21 日,Linux 内核管理员 Greg Kroah-Hartman 在与明尼苏达人员沟通的邮件中表示: “您和您的团队此前提交了有 bug 的代码,以观察 Linux 内核社区的反应,并据此发表了一篇论文...Greg 表示:「Linux 社区欢迎有意愿帮助 Linux 的开发者,但不希望成为试验场,接受无益代码或有 BUG 代码的『测试』。...Linux 庞大的内核社区的规模,更是让程序员之间的信任成为了开发过程中至关重要的一部分。...而正巧 Aditya 在进行另一个新项目时,向 Linux 提交的补丁不小心出现了错误。...所以他们明知这项实验会浪费 Linux 内核维护者本就不充裕的时间,却还是进行了这个实验。可这项实验又何尝不是利用 Linux 开源工作者的热情与义务,变相向他们增负呢?

    432100

    Linux CC攻击防御工具脚本

    iptables 是否已存在操作IP的判断方式; 增加日志记录功能,每天一个日志文件,位于安装目录下的log文件内; 集成手动拉黑IP和解封IP功能,使用cckiller -b IP 拉黑,使用 cckiller.../install.sh -u 即可检测是否有新版本:CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放 如果发现有新版本则显示更新内容,并提示是否执行更新。...只要在安装的时候,设置拉黑时长为0,则CCKiller不会再产生后台释放脚本,也不会释放已拉黑的IP了 但是,考虑到灵活性问题,并没有在新版中加入 service iptables save 的保存命令...,所以当你重启系统或者重启iptables,这些拉黑的IP都将得到释放。...IP,DEBUG记录全部日志,包括拉黑、释放的报错信息,OFF表示关闭日志。

    1.8K20
    领券