精华内容
下载资源
问答
  • Fail2ban

    万次阅读 2021-05-18 12:09:21
    使用 Fail2ban 对 Server 进行防护

    • 优点:使用简单、灵活、功能强大

    • 公网网站如果一直被人暴力破解 SSHD 服务密码,会导致系统负载很高,原因是在暴力破解的时候,系统会不断地认证用户,从而增加了系统资源额外开销,导致访问公司网站速度很慢。

    • 然而 fail2ban 程序可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是防火墙),而且可以发送 e-mail 通知系统管理员,很实用、很强大!

    • 简单来说其功能就是防止暴力破解。

    • 工作的原理是通过分析一定时间内的相关服务日志,将满足动作的相关 IP 利用 iptables 加入到 dorp 列表一定时间。

    • 下载软件包

    • 官方地址:http://www.fail2ban.org

    • 还可以使用 yum 的 epel 方式安装(方便)

    • yum -y install epel-release && yum -y install fail2ban

    • 首先 实现 Fail2ban + iptables 对 SSH 服务防护

    • 实验环境 CentOS 7.8.2003

    • iptables-services 为运行状态  

    • 需要 python 开发环境,并且版本要大于 2.4

    • 设置条件:SSH 远程登录 5 分钟内 3 次密码验证失败,禁止用户 IP 访问主机 1 小时,1 小时该限制自动解除,用户可重新登录。
              因为动作文件(action.d/iptables.conf)以及日志匹配条件文件(filter.d/sshd.conf )安装后是默认存在的。基本不用做任何修改。所有主要需要设置的就只有 jail.conf 文件。启用 SSHD 服务的日志
       分析,指定动作阀值即可。

    • 编辑配置文件

    • vim /etc/fail2ban/jail.conf

    • [sshd] #单个服务检查设置,如设置 bantime、findtime、maxretry 和全局冲突,服务优先级大于全局设置。
    • port = ssh
    • logpath = %(sshd_log)s
    • backend = %(sshd_backend)s
    • enabled = true #是否激活此项(true/false)修改成 true。
    • filter = sshd #过滤规则 filter 的名字,对应 filter.d 目录下的 sshd.conf。
    • action = iptables[name=SSH, port=22, protocol=tcp] #动作的相关参数,对应action.d/iptables.conf 文件。
    • sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.com, sendername="Fail2Ban"] #触发报警的收件人。
    • logpath = /var/log/secure #检测的系统的登陆日志文件。这里要写 sshd 服务日志文件。默认为 logpath = /var/log/sshd.log(在 centos8 当中需要删除默认的 ssh 区域 logpath 选项) 。
    • #5 分钟内 3 次密码验证失败,禁止用户 IP 访问主机 1 小时。 配置如下。
    • bantime = 3600   #禁止用户 IP 访问主机 1 小时。单位:秒
    • findtime = 300     #在 5 分钟内内出现规定次数就开始工作。单位:秒
    • maxretry = 3       #3 次密码验证失败。

    • 启动服务

    • 测试:故意输入错误密码 3 次,再进行登录时,会拒绝登录。

    • 检测 fail2ban 工作状态

    Status
    |- Number of jail: 1
    `- Jail list: sshd #具体看某一项的状态也可以看,如果显示被 ban 的 ip 和数目就表示成功了,如果都是 0,说明没有成功。

    • fail2ban-client status sshd

    Status for the jail: sshd
    |- Filter
    |  |- Currently failed:    0
    |  |- Total failed:    6
    |  `- Journal matches:    _SYSTEMD_UNIT=sshd.service + _COMM=sshd
    `- Actions
       |- Currently banned:    2
       |- Total banned:    2
       `- Banned IP list:    192.168.2.2 192.168.2.4  #加入黑名单的 IP

    • fail2ban 从黑名单中移除 IP 的方法:
      fail2ban-client set sshd unbanip 192.168.2.2


    • 下面实现 Fail2ban + firewalld 对 SSH 服务防护

    • 实验环境: CentOS 8.2.2011
    • firewalld 为 开启状态,并且 SSH 端口已经添加
    • firewall-cmd --zone=public --add-port=2222/tcp --permanent
    • firewall-cmd --zone=public --list-ports
    • yum -y install epel-release && yum -y install fail2ban fail2ban-firewalld

    • 安装好 fail2ban 后 新建配置文件

    • vim /etc/fail2ban/jail.local 

      [DEFAULT]
      ignoreip = 127.0.0.1/8
      bantime  = 86400
      findtime = 600
      maxretry = 5
      #这里 banaction 必须用 firewallcmd-ipset ,这是 friewalld 支持的关键,如果是用 Iptables 请不要这样填写
      banaction = firewallcmd-ipset
      action = %(action_mwl)s

      [sshd]
      enabled = true
      filter  = sshd
      port    = 2222
      action = %(action_mwl)s
      logpath = /var/log/secure

    • ignoreip:IP白名单,白名单中的IP不会屏蔽,可填写多个以(,)分隔

    • bantime:屏蔽时间,单位为秒(s)

    • findtime:时间范围

    • maxretry:最大次数

    • banaction:屏蔽IP所使用的方法,上面使用firewalld屏蔽端口

    • [sshd]:名称,可以随便填写

    • filter:规则名称,必须填写位于filter.d目录里面的规则,sshd是fail2ban内置规则

    • port:对应的端口

    • action:采取的行动

    • logpath:需要监视的日志路径

    • 重启服务
    • systemctl restart fail2ban.service firewalld.service
    • fail2ban-client status sshd
    • 测试

    • 防止CC攻击

      这里仅以Nginx为例,使用fail2ban来监视nginx日志,匹配短时间内频繁请求的IP,并使用firewalld将其IP屏蔽,达到CC防护的作用。

    需要先新建一个nginx日志匹配规则 vim /etc/fail2ban/filter.d/nginx-cc.conf

    [Definition]
    failregex = <HOST> -.*- .*HTTP/1.* .* .*$
    ignoreregex =

    然后修改 jail.local 追加如下内容:

    [nginx-cc]
    enabled = true
    port = http,https
    filter = nginx-cc
    action = %(action_mwl)s
    maxretry = 20
    findtime = 60
    bantime = 86400
    logpath = /var/log/nginx/access.log

    如果在60s内,同一IP达到20次请求,则将其IP ban 1小时,上面只是为了测试,请根据自己的实际情况修改。logpathnginx日志路径。

    • 测试,这里为了看到效果将访问次数调低

    展开全文
  • 在网络安全,网络可视化架构部署中,经常会提到Fail Closed,Fail open,Fail Safe,Fail over,这些分别是什么意思,怎么实现,典型的应用场景及实现方案是什么呢?

    目录

     

    1、Fail Closed(故障关闭)

    故障关闭的用例和好处

    部署故障关闭注意事项

    2、Fail Open(故障打开)

    故障打开的用例及好处

    部署故障打开注意事项

    3、Fail Safe(故障保护)

    故障保护的典型用例与好处

    部署故障保护的注意事项

    4、Fail over(故障转移)

    故障转移的典型应用案例及好处

    部署故障转移的注意事项


    1、Fail Closed(故障关闭)

           简而言之,故障关闭是指在当监测到故障条件时,通过在物理上或通过软件将设备或系统设置为关闭并防止进一步操作。此策略在安全考虑高于访问需求的情况下很常见。我们每天都会遇到这种情况,当我们忘记了很少使用的个人账户的密码并被拒绝进入。一个实际的例子是,联邦法院大楼入口处的金属探测器发生故障,导致人们在第二扇门排起了长队等待进入,而技术人员试图修复第一扇门。在这些情况下,访问权限是安全性的第二优先级。

    故障关闭的用例和好处

           故障关闭的组合要用例是确定网络安全的优先级。在IP网络中,可以将防火墙等安全设备配置为失败关闭,从而在防火墙无法确认数据包是否允许时阻止传入的网络流量进入您的内部网络。如果设备防火墙迅速接管了处理任务(例如法院的第二扇门),则由防火墙中断导致的网络中断可以降到最低。故障失败条件通常提供更大的信心,即在防火墙脱机时不会受到网络威胁或攻击。

    部署故障关闭注意事项

          重要的是要注意,即使对于诸如防火墙这样的设备,故障关闭策略也并非始终如此/在某些环境中,网络中断可能比安全性更令人担忧,从而导致选择故障打开。这种情况在防火墙部署的初期更为常见,当时组织正在学习如何在安全检查需求于网络可用性之间取得平衡。

    2、Fail Open(故障打开)

           当出现故障情况时,设置为故障打开的系统不会关闭。取而代之的是系统保持“打开”状态。并且操作继续进行,就好像系统甚至没有到位一样。

           当认为访问比身份验证更重要时,则使用此策略。医疗保健系统有时是在故障打开的基础上运行的,例如,即使在没有保险覆盖认证或支付能力的情况下也提供紧急护理。通过事后执行身份认证,可以大大降低(在这种情况下为未付款)的风险。

           另一个经常并引用的例子是,当系统出现故障并且无法验证访问凭证时,带有电子锁定机制的门被自动解锁。这确保出口可用,特别是在发生火灾或自然灾害而使电子系统瘫痪的情况下。

    故障打开的用例及好处

           保护网络可用性,即网络正常运行时间历史上,一些组织将网络防火墙内联部署视为“可有可无”,而不是IT安全的基本要素。当防火墙出现故障时,他们更愿意让它故障打开,让互联网流量在没有身份验证的情况下继续进入内部网络。当时的方法是,大多数流量是安全的,网络泄露的风险很低,因此中断网络运行没有商业意义。通过优先考虑防火墙恢复以限制潜在的风险,并通过分析网络流量副本(使用外带工具)在事后检测可疑活动,将业务风险降至最低。在访问被认为比安全更重要的情况下,故障打开更盛行。

    补充另一个安全设备

    组织可能希望在故障打开条件下运行安全解决方案,以补充现有安全设备的功能。一个示例是高级恶意软件防护(AMP)沙箱,该沙箱用于安全环境中执行未知文件,并将结果提供给反恶意软件解决方案。由于沙箱是对主设备的补充,因此它的故障可能不需要完全关闭处理。

    部署和测试

    故障打开的另一个实际用途是在新安全设备的初始部署和测试期间。将新设备配置为故障打开使团队能够熟悉操作并了解如何响应警报情况而不会感到不知所措。一旦团队感到有信息,设备就可以切换到故障关闭状态,以实现更大的风险管理。

    部署故障打开注意事项

    故障打开情况的主要考虑因素实际上归结为您的安全体系结构的设计是什么?此架构将对您的选择产生很大的影响。 

    3、Fail Safe(故障保护)

           故障保护,也叫故障安全,失效安全,是指被配置在为在设备本身发生故障时保护系统中的所有其他组件免受故障影响的设备。实际上,这可能会产生与故障打开相同的结果,但故障保护通常是通过添加单独设备(称为旁路开关)来实现的。

    故障保护的典型用例与好处

           旁路交换机部署在网络设备的“前面”,并通过与设备建立直接连接并监视其接收和处理能量的能力来工作。这是通过以非常快的时间间隔(通常是每隔2微秒一个)向设备发送一个非常小的网络数据包(称为心跳数据包)来实现的。如果数据包返回,则旁路保持打开状态;如果数据包未返回,流量将绕过设备并移到网络中的下一台交换机。

    部署故障保护的注意事项

            现在,许多网络安全设备(如下一代防火墙和IPS解决方案)都包括内部旁路功能。但是,内部旁路不能提供外部旁路交换机的所有功能。IT人员可以主动激活部署在网络设备前面的外部旁路交换机,使设备脱机以进行常规维护,定期故障排除或在网络中重新定位。外部旁路实质上使将特定设备临时从活动网络中移除,从而无需等待网络维护窗口来执行升级或响应支持问题。

    4、Fail over(故障转移)

            故障转移是恢复出现故障的网络设备功能的能力。这是一个比故障保护更广泛的概念,故障保护只规定对其他组件没有不利影响。故障转移意味着通过冗余实现功能的恢复。

    故障转移的典型应用案例及好处

          此功能通常集成到核心设备中,例如网络交换机和数据包代理,以确保最长的网络正常运行时间。尽管该功能可以包含在安全和监控工具中,但是许多故障情况会使该解决方案的实用性失效。此功能最好作为专用解决方案的一部分。

    部署故障转移的注意事项

           现在可以使用外部旁路交换机和网络数据包代理(NPB),它们能够在网络设备发生故障时为流量指定备用路径。例如,如果主IPS设备出现故障,当外部旁路交换机或网络数据包代理监测到故障(事件发生的几个微秒内)时,交换机可以自动开始向辅助备用设备发送流量。这对于实现弹性而言可能是一种经济高效的解决方案。

     

     

    展开全文
  • getImageInfo:fail download image fail. reason: downloadFile:fail createDownloadTask:fail exceed max download connection count 10 源代码如下: 我原本是想把头像画出来,但就是显示不了。刚刚我才注意到...

    刚刚在写微信小程序的海报功能,报错如下:

    getImageInfo:fail download image fail. reason: downloadFile:fail createDownloadTask:fail exceed max download connection count 10

    源代码如下:

    我原本是想把头像画出来,但就是显示不了。刚刚我才注意到一个地方是,头像是网络地址,后缀不是在最后。然后我换成了本地图片就可以了。

    展开全文
  • Fail safe vs Fail fast

    2015-07-10 10:48:14
    Fail safe” means: it won’t fail. “Fail fast” means: it may fail(只是有可能,所以,有时也不会fail,例如你在使用iterator遍历到数组的最后一个元素时,数组被删除了一个元素,这时候是不会fail的) … ...

    “Fail safe” means: it won’t fail.
    “Fail fast” means: it may fail(只是有可能,所以,有时也不会fail,例如你在使用iterator遍历到数组的最后一个元素时,数组被删除了一个元素,这时候是不会fail的) … and the failure condition is checked aggressively so that the failure condition is detectedbefore damage can be done.
    The alternative to “fail safe” and “fail fast” is to fail unpredictably; e.g. to sometimes give the wrong answer or throw some unexpected exception. (This was the behaviour of some standard implementations of the Enumeration API in early versions of Java.)
    … and are they different from the iterator we use for collection.
    No. These are properties of the Iterators implemented by standard Collection types; i.e. they are either “fail fast” or “fail safe” … when used correctly with respect to synchronization and the Java memory model. (By contrast, if you use an non-concurrent Iterator or Collection without the correct external synchronization, all bets are off …)
    Also what is the name of iterator we normally use to iterate.
    Umm … the actual class name depends on how you got the Iterator, as do the Iterator’s properties; e.g. “fail fast” versus “fail safe”. For the standard classes and iterators obtained using the iterator() method, the properties are specified by the collection classes javadocs.
    … how are they implemented.
    The fail-fast iterators are typically implemented using a volatile counter on the list object.

    * When the list is updated, the counter is incremented.
    * When an Iterator is created, the current value of the counter is embedded in the Iterator object.
    * When an Iterator operation is performed, the method compares the two counter values and throws a CME if they are different.
    

    The implementation of fail-safe iterators is typically light-weight. They typically rely on properties of the specific list implementation’s data structures. There is no general pattern. (Read the source code for the specific cases you are interested in.)

    展开全文
  • Fail Fast Vs Fail Safe

    2017-02-19 14:18:13
    原文Fail Fast And Fail Safe Iterators In Java :java中的迭代器使我们能够遍历Collection对象。 集合返回的迭代器本质上是Fail Fast的或 Fail Safe的。 如果在迭代集合时修改集合,则Fail-Fast迭代器立即抛出...
  • fail-safe fail-fast知多少

    千次阅读 2020-04-30 06:54:50
    文章目录简介Fail-fast IteratorFail-fast 的原理Fail-safe Iterator总结 fail-safe fail-fast知多少 简介 我们在使用集合类的时候,通常会需要去遍历集合中的元素,并在遍历中对其中的元素进行处理。这时候我们就要...
  • connect:fail, reason: connect server 22 port fail 说明22端口被服务器关闭了,导致普通ROOT用户无法访问 解决方法: 1.打开阿里云控制台救援连接,(管理员连接) 2.输入连接密码,进入连接界面,输入登录用户名...
  • Fail-Safe 迭代 vs Fail-Fast 迭代 本文介绍Fail-Safe(安全失败) 和 Fail-Fast (快速失败)概念。 Fail-Safe(安全失败) 机制:尽可能立即暴露故障并停止整个操作。 Fail-Fast (快速失败) 机制: 失败情况下不中断...
  • fail-fast 与 fail-safe机制

    千次阅读 2020-10-12 23:11:18
    fail-fast fail-fast的字面意思是“快速失败”。当我们在遍历集合元素的时候,经常会使用迭代器,但在迭代器遍历元素的过程中,如果集合的结构被改变的话,就会抛出异常,防止继续遍历。这就是所谓的快速失败机制。 ...
  • fail-fast 与 fail-safe 的区别

    千次阅读 2020-04-11 10:36:23
    文章目录什么是 fail-fast?原理使用场景什么是 fail-safe?原理fail-safe 有什么缺点吗?使用场景 什么是 fail-fast? fail-fast(快速失败)是在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行...
  • fail-fast和fail-safe详解

    千次阅读 2017-08-21 23:43:08
    fail-fasthe fail-safe详解
  • sign check fail: check Sign and Data Fail

    千次阅读 2019-01-17 12:02:31
    支付宝开发报错:com.alipay.api.AlipayApiException: sign check fail: check Sign and Data Fail 解决方法: 确认使用的支付宝公钥是否正确,不同的环境使用的支付宝公钥不同, 如沙箱环境、线上openapi网关和...
  • fail-safe
  • 什么是fail-fast? 简单的来说就是优先考虑出现异常的场景,当异常产生时,直接抛出异常,程序终止。 在jcl中的fail-fast? jcl中的fail-fast只要是体现在当我们在遍历集合元素的时候,经常会使用迭代器,但在迭代器...
  • Fail Fast与Fail Safe的区别

    千次阅读 2015-07-12 13:57:32
    Fail FastFail Fast Iterator在遍历集合时,若该集合发生了结构性的改变,则将抛出 ConcurrentModification 异常。例如: Map, String> premiumPhone = new HashMap, String>(); premiumPhone.put("Apple", "iPhone...
  • fail-fast和fail-safe的介绍和区别

    千次阅读 2018-05-17 20:46:06
    fail-fast和fail-safe 前言 前段时间公司招的实习生在使用迭代器遍历的时候,对集合内容进行了修改,从而抛出ConcurrentModificationException. 然后给他讲解之余也整理了这一篇文章. fail-fast ( 快速失败 ...
  • 我们先看一下类似的错误信息如下:com.alipay.api.AlipayApiException: sign check fail: check Sign and Data Fail这里着重说明,报这个错误是因为支付宝公钥(alipay_public_key)使用错误导致的!很多开发者把...
  • 小程序上传图片报错 uploadFile:fail createUploadTask:fail file not found 报错原因可能是在app.js中没有配置的env变量 如图: 我们可以查看自己的env环境变量,把它复制到这里来就可以了,打开云开发,在设置中...
  • 在腾讯云安装RabbitMq安装了好几个...connect:fail, reason: connect server 22 port fail 别想了,网上的方法都试了,最后发现,宝塔面板的问题: 我们需要把这里打开 找了半天竟然是这的问题,吐血了... ...
  • fail-fast(快速失败)是Java对java.util包下的所有集合类的是一种错误检测机制。 fail-safe(安全失败)采用安全失败机制的集合容器,在遍历时不是直接在集合内容上访问的,而是先复制原有集合内容,在拷贝的集合上...
  • java中fail-fast 和 fail-safe的区别
  • 错误信息:errMsg:getImageInfo:fail download image fail 翻译:errMsg:getImageInfo:fail下载镜像失败 这种情况一般有两种: 一,域名没在小程序的白名单中也就是download合法域名里面(需要去小程序后台配置) 二...
  • fail-fast 与 fail-safe 机制有什么区别

    千次阅读 2017-11-19 21:08:43
    在我们详细讨论这两种机制的区别之前,首先得先了解并发修改。 1.什么是同步修改? 当一个或多个线程正在遍历一个...fail-fast机制在遍历一个集合时,当集合结构被修改,会抛出Concurrent Modification Excepti
  • fail-fast: 简言之,快速失败。我们在设计一个模块(可以是一个函数,一个类甚至是一个服务)时,如果有某种条件会导致模块无法正常运行下去,就应该让模块立刻终止(可以是return,也可以抛一个runtimeexception...
  • fail-fast和fail-safe迭代器的区别?

    千次阅读 2018-03-28 19:29:19
    区别:fail-safe允许在遍历的过程中对容器中的数据进行修改,而fail-fast则不允许。fail-fast:直接在容器上进行遍历,在遍历过程中,一旦发现容器中的数据被修改了,会立刻抛出ConcurrentModificationException异常...
  • fail-fast和fail-safe的区别:  fail-safe允许在遍历的过程中对容器中的数据进行修改,而fail-fast则不允许。 fail-fast ( 快速失败 ) fail-fast:直接在容器上进行遍历,在遍历过程中,一旦发现容器中的数据被...
  • Java,你告诉我 fail-fast 是什么鬼?

    千次阅读 多人点赞 2019-11-22 08:50:43
    本篇我们来聊聊 Java 的 fail-fast 机制,文字一如既往的有趣哦。
  • fail2ban

    2018-08-08 19:04:56
    Fail2ban 阻止暴力破解 Fail2ban 能够监控系统日志,匹配日志中的错误信息(使用正则表达式),执行相应的屏蔽动作(支持多种,一般为调用 iptables ),是一款很实用、强大的软件。 功能、特性: 1、支持大量...
  • Java中Fail fast与Fail safe迭代器的区别

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 453,359
精华内容 181,343
关键字:

fail