防火墙规则来阻止攻击者的 IP 地址

1. iptables

要禁止服务器与特定 IP 地址的通信,可以使用防火墙来设置规则。在 Ubuntu 上,iptables 是一个常用的防火墙工具。以下是使用 iptables 设置禁止与特定 IP 通信的步骤:

  1. 阻止所有进出的通信

如果你想阻止服务器与特定 IP 地址的所有通信(包括进出通信),你可以使用以下命令:

sudo iptables -A INPUT -s 167.235.7.72 -j DROP
sudo iptables -A OUTPUT -d 167.235.7.72 -j DROP
  1. 阻止特定端口的通信

如果你只想阻止特定端口的通信,例如阻止端口 10300 的通信,你可以使用以下命令:

sudo iptables -A INPUT -s 167.235.7.72 --dport 10300 -j DROP
sudo iptables -A OUTPUT -d 167.235.7.72 --sport 10300 -j DROP
  1. 保存规则

为了确保重启后规则仍然有效,需要保存 iptables 规则:

sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
  1. 验证规则

你可以使用以下命令来查看现有的 iptables 规则:

sudo iptables -L -v -n
  1. 取消规则

如果你需要取消某条规则,可以使用以下命令(假设规则是按顺序添加的,1 是规则的编号):

sudo iptables -D INPUT 1
sudo iptables -D OUTPUT 1

注意事项

确保在执行防火墙规则前备份当前的规则设置,以防出错。
在生产环境中,执行这些命令前需要小心,防止误操作导致服务器无法访问。

这些步骤可以帮助你禁止服务器与特定 IP 地址的通信。如果有其他防火墙工具或更高级的需求,可以根据实际情况选择合适的解决方案。

2. 使用 fail2ban 锁定 IP 地址

以下是配置 fail2ban 的详细步骤:

安装 fail2ban:

对于基于 Debian/Ubuntu 的系统:

sudo apt-get install fail2ban

对于基于 Red Hat/CentOS 的系统:


sudo yum install fail2ban

配置 fail2ban:

创建或编辑 jail.local 文件以覆盖默认设置。这是推荐的方法,因为直接修改 jail.conf 会在软件更新时被覆盖。


sudo nano /etc/fail2ban/jail.local

添加 SSH 的 fail2ban 配置:

添加以下内容来配置 fail2ban 监控 SSH 登录尝试:

[sshd]
enabled = true
port    = ssh
filter  = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 300

enabled: 启用该规则。
port: 监控的端口,通常是 ssh 或 22。
filter: 指定 fail2ban 使用的过滤器,通常是 sshd。
logpath: 指定日志文件路径,一般为 /var/log/auth.log。
maxretry: 允许的最大失败尝试次数,这里设置为 5 次。
bantime: 封锁时间,以秒为单位,这里设置为 300 秒(5 分钟)。

重启 fail2ban 服务:

使配置生效:

sudo systemctl restart fail2ban

查看 fail2ban 状态:

使用以下命令查看 fail2ban 的运行状态及当前被封锁的 IP 地址:

sudo fail2ban-client status sshd

你将看到类似如下的输出,列出当前正在监控的 jail(如 sshd)及被封锁的 IP 地址:

Status for the jail: sshd|- Filter|  |- Currently failed: 0|  |- Total failed: 10|  `- File list:    /var/log/auth.log`- Actions|- Currently banned: 1|- Total banned: 5`- Banned IP list: 192.168.1.100

测试配置

尝试使用错误的密码登录 SSH 超过 5 次。
之后,你的 IP 地址将被自动封锁,无法再进行连接。
尝试在 5 分钟后重新登录,封锁将自动解除。

手动管理 IP 封锁

如果需要手动管理被封锁的 IP 地址,可以使用以下命令:

查看当前被封锁的 IP 地址:

sudo fail2ban-client status sshd

手动解封某个 IP 地址:

sudo fail2ban-client set sshd unbanip <IP_ADDRESS>

手动封锁某个 IP 地址:

sudo fail2ban-client set sshd banip <IP_ADDRESS>

通过上述步骤,你可以有效地防止来自特定 IP 地址的暴力破解攻击,并在检测到多次失败登录尝试后自动封锁这些 IP 地址。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/29417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AES加解密工具类

文章目录 前言一、AES加解密工具类总结 前言 当涉及到数据的安全性和保密性时&#xff0c;加密是一种关键的技术手段。AES&#xff08;Advanced Encryption Standard&#xff09;是一种广泛使用的对称加密算法&#xff0c;被认为是目前最安全和最常用的加密算法之一。 一、AES…

2024年最好用的精简系统推荐!旧电脑福音!

精简版电脑系统经过精心优化&#xff0c;去除了冗余功能&#xff0c;保留了核心功能&#xff0c;让用户的操作更加便捷高效&#xff0c;同时也具备强大的兼容性和稳定性&#xff0c;整体操作体验感很好。但是&#xff0c;许多新手用户不知道在哪里才可以找到好用的精简版系统&a…

Mojo崛起:AI-first 的编程语言能否成为新流行?

眨眼之间&#xff0c;你可能会错过又一种编程语言的发明。 有个笑话说&#xff0c;程序员花费20%的时间编写代码&#xff0c;80%的时间决定使用什么语言。 事实上&#xff0c;编程语言如此之多&#xff0c;以至于我们不确定实际有多少种。据估计&#xff0c;至少有700种编程语…

【Android 11】AOSP Settings添加屏幕旋转按钮

前言 这里是客户要求添加按钮以实现屏幕旋转。屏幕旋转使用adb的命令很容易实现&#xff1a; #屏幕翻转 adb shell settings put system user_rotation 1 #屏幕正常模式 adb shell settings put system user_rotation 0这里的值可以是0&#xff0c;1&#xff0c;2&#xff0c…

中国天辰×蓝卓丨共创行业级工业操作系统,加速培育新质生产力!

6月17日&#xff0c;中国天辰工程有限公司&#xff08;以下简称“中国天辰”&#xff09;党委委员、总经理梁军湘一行莅临蓝卓&#xff0c;双方就工业互联网平台合作进行座谈交流。蓝卓总经理谭彰、副总经理蓝照斌、总经理助理俞益标&#xff0c;以及中控技术副总裁吴才宝、大客…

原生dom操作快速写入html渲染(insertAdjacentHTML)

// 旧方法 const btn document.createElement(div) btn.id material-btn-id btn.className material-btn btn.textContent 素材库 document.body.appendChild(btn) btn.addEventListener(click, () > {// 点击事件 }) // 新方法 const btn document.createElement(div…

软件开发小程序正规公司流程是什么样的?

正规软件开发的流程可以清晰地分为以下几个阶段&#xff0c;每个阶段都有其特定的目标和产出&#xff1a; 项目开发目的分析与确定&#xff1a; 此阶段主要是在软件开发商将开发项目确定下来之后&#xff0c;与需求方进行讨论&#xff0c;明确软件开发的目标及其具体需要实现…

NumPy 切片和索引

NumPy 切片和索引 NumPy 是 Python 中用于科学计算的核心库之一&#xff0c;它提供了一个强大的 N 维数组对象和许多用于操作这些数组的函数。在数据处理和数值计算中&#xff0c;切片和索引是常用的操作&#xff0c;它们允许我们有效地访问和修改数组的部分数据。本文将详细介…

调试的时候给打印加颜色

在 C 中&#xff0c;打印紫色文本通常涉及使用控制台的特定颜色输出。在大多数操作系统中&#xff0c;控制台颜色是通过特殊的转义序列来实现的。这些转义序列可以在输出文本之前插入&#xff0c;以改变文本的颜色、样式或其他属性。 使用 ANSI 转义序列 在 POSIX 兼容的系统&…

Altair 人工智能技术助力MABE预测消费者行为,实现设备性能优化

主要看点 行业&#xff1a; 家电行业 挑战&#xff1a; 企业面临的挑战是如何利用已收集的大量数据&#xff0c;深入了解消费者在产品使用过程中对某些保鲜程序的影响。 Altair 解决方案&#xff1a; Altair采用了Altair RapidMiner人工智能平台来解决问题&#xff0c;特别是…

QML Controls模块-标准对话框用法说明

文章目录 颜色对话框文件对话框字体对话框自定义对话框通知对话框在QML中,Qt提供了一个名为 QtQuick.Controls的模块,其中包含了一系列用户界面控件,可以用于创建现代化、响应式的用户界面。在QtQuick.Controls模块中,一些控件可以用来调用标准对话框,包括文件对话框、字体…

Java进阶示例

使用DataFrame和SQL查询处理数据 在Spark中&#xff0c;DataFrame是一种以结构化方式处理数据的强大工具&#xff0c;它允许用户以类似于SQL的方式操作数据&#xff0c;提供了比RDD更高的抽象层次和更好的性能。下面的示例将展示如何使用Spark SQL的DataFrame API来读取CSV数据…

docker安装消息队列mq中的rabbit服务

在现代化的分布式系统中&#xff0c;消息队列&#xff08;Message Queue, MQ&#xff09;已经成为了一种不可或缺的组件。RabbitMQ作为一款高性能、开源的消息队列软件&#xff0c;因其高可用性、可扩展性和易用性而广受欢迎。本文将详细介绍如何在Docker环境中安装RabbitMQ服务…

2024.6.18 刷题总结

2024.6.18 **每日一题** 2288.价格减免&#xff0c;这是一道纯字符串的题目&#xff0c;我们的目标是识别出字符串中的价格并将它替换为折扣后的数字。这道题利用了一些字符串的关键字&#xff1a; stringstream 是C标准库中的一个类&#xff0c;属于 <sstream> 头文件…

八股系列 Flink

Flink 和 SparkStreaming的区别 设计理念方面 SparkStreaming&#xff1a;使用微批次来模拟流计算&#xff0c;数据已时间为单位分为一个个批次&#xff0c;通过RDD进行分布式计算 Flink&#xff1a;基于事件驱动&#xff0c;是面向流的处理框架&#xff0c;是真正的流式计算…

网络学习(13)|Spring Boot中获取HTTP请求头(Header)内容的详细解析

文章目录 方法一&#xff1a;使用HttpServletRequest实现原理代码示例优点缺点适用场景 方法二&#xff1a;使用RequestContextHolder实现原理代码示例优点缺点适用场景 方法三&#xff1a;使用RequestHeader注解实现原理代码示例优点缺点适用场景 总结 在Spring Boot应用中&am…

访问学者谈CSC青年骨干教师项目出国经历及感受

CSC青年骨干教师出国研修项目实施已近20年&#xff0c;越来越多的青年教师成为该项目的受益者。知识人网小编推荐该项目资助老师谈谈在加拿大卡尔加里大学访学一年的经历及感受。 国家留学基金委&#xff08;以下简称CSC&#xff09;高等学校青年骨干教师出国研修项目&#xff…

41、商城系统(二十二):Sentinel实现熔断、降级、限流

目录 一、熔断、降级、限流 1.什么是熔断 2.什么是降级 3.什么是限流 二、整合Sentinel初体验 1.引入依赖 2.官网下载dashboard可视化页面 3.配置参数 4.启动服务 三、实时监控没数据,流控响应结果自定义 1.实时监控没有数据 2.自定义流控返回结果 四、解决rabbi…

弹性云是否支持按量计费?

一、什么是弹性云&#xff1f; 弹性云&#xff0c;顾名思义&#xff0c;是一种能够根据用户需求动态调整计算资源的云计算服务。它打破了传统IT架构的束缚&#xff0c;通过虚拟化技术将物理资源转化为可灵活调配的虚拟资源&#xff0c;从而实现了计算资源的弹性扩展与缩减。这…