centos下fail2ban安装与配置详解

下面就是详细讲解“centos下fail2ban安装与配置详解”的完整攻略。

安装fail2ban

在CentOS上安装fail2ban,可以使用下面的命令:

sudo yum install fail2ban

配置fail2ban

一旦成功安装后,就可以进行基本的配置了。

配置jail

jail是由fail2ban提供的一个防护模块。其目的是检测并且屏蔽不良的行为。常见的检测包括SSH登录失败,Nginx连接失败等等。固定的jail配置文件位于/etc/fail2ban/jail.conf,你可以在这里修改一些默认设置。

更好地操作是使用全新的文件,并将旧的文件重命名:

sudo mv /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

创建一个新的jail配置文件:

sudo touch /etc/fail2ban/jail.d/customised.conf

打开这个新文件并输入以下内容:

[sshd]
enabled = true
port = ssh
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/secure
maxretry = 3

上面的配置所做的事情是防止SSH攻击。配置enabled为true,表示启用jail,port表示将要被监听的端口号。为了实现这种防御,使用了iptables的防护机制,具体信息在action区块中。日志的位置可以在logpath配置中指定,最后的参数是最大尝试次数。

配置邮件通知

将配置通知到你的邮箱可以更好地控制你的n服务器。使用fail2ban向管理员发送警报电子邮件是件好事。下面是如何做到这一点的方法。打开以下文件进行编辑:/etc/fail2ban/jail.local

并附上以下配置:

# mail setup
destemail = recipient@example.com
sendername = Fail2Ban
mta = sendmail
action_mail_acct = sender@example.com

这些配置告诉fail2ban接收人和发送人的电子邮件地址,以及将使用的邮件传输。接下来,可以对特定的jail进行通知。将以下配置添加到,/etc/fail2ban/jail.local 文件:

[sshd]
#
# Action
#
action = %(action_mwl)s

上面这个配置意味着向管理员电子邮件地址发送包含此信息的电子邮件:

Subject: [Fail2Ban] SSH: banned 111.222.123.123
Hi,

The IP 111.222.123.123 has just been banned by Fail2Ban after
3 attempts against SSH.

Here are more information about 111.222.123.123:

[...]

释放IP地址

如果你需要将封锁的IP地址解封,请执行以下操作:

sudo fail2ban-client set sshd unbanip 192.168.6.1

例子

现在让我们看看两个示例。

例子1:防止SSH攻击

这是你可以在/etc/fail2ban/jail.d/customised.conf文件中配置的SSH保护:

[sshd]
enabled = true
port = ssh
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/secure
maxretry = 3

这个配置的意思是:针对ssh的攻击有3次尝试消息失败后将IP封锁。

例子2:防止Nginx爆破攻击

可以防止针对Nginx爆破攻击的配置如下:

[http-auth]
enabled = true
port = http,https
filter = http-auth
logpath = /var/log/nginx/error.log
maxretry = 6

这个配置的意思是:针对Nginx的http认证攻击在6此尝试错误后会被封锁。

希望这些信息能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:centos下fail2ban安装与配置详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • php iconv() : Detected an illegal character in input string

    PHP的iconv函数是一个字符集转换的函数,常用于解决编码问题。当使用iconv函数时,有时会出现如下错误提示: PHP Warning: iconv(): Detected an illegal character in input string in /path/to/file.php on line 10 这个错误的意思是,在输入字符串中检测到了非法…

    jquery 2023年5月28日
    00
  • jQWidgets jqxKnob allowValueChangeOnMouseWheel属性

    jQWidgets jqxKnob allowValueChangeOnMouseWheel属性攻略 jQWidgets 是一个基于 jQuery 的 UI 组件库,提供了丰富的 UI 组件和工具,可于创建现代化 Web 应用程序。 jqxKnob旋钮组件,用于可视化调整数值。攻略将详细介绍 jqxKn 的 allowValueChangeOnMouseWh…

    jquery 2023年5月10日
    00
  • jQuery UI Button enable()方法

    jQuery UI 的 Button 组件提供了一个 enable() 方法,该方法用于启用已禁用的 Button 实例。在本教程中,我们将详细介绍 Button 的 enable() 方法的使用方法。 enable() 方法基本语法如下: $( ".selector" ).button( "enable" ); 其中…

    jquery 2023年5月11日
    00
  • EasyUI使用DataGrid实现动态列数据绑定

    让我来详细讲解一下“EasyUI使用DataGrid实现动态列数据绑定”的攻略。 思路简介 使用 EasyUI 的 DataGrid 实现动态列数据绑定的步骤如下: 第一步:定义 DataGrid 第二步:获取数据 第三步:根据数据动态生成列 第四步:将列数据填充至 DataGrid 中 详细步骤 第一步:定义 DataGrid 首先,在 HTML 页面中定…

    jquery 2023年5月27日
    00
  • jQuery UI的Draggable scope选项

    以下是关于 jQuery UI 的 Draggable scope 选项的详细攻略: jQuery UI Draggable scope 选项 scope 选项用于指定可拖动元素的范围。可以使用该选项来限制可拖动元素的拖动范围。 语法 $(selector).draggable({ scope: "scopeName" }); 参数 sc…

    jquery 2023年5月11日
    00
  • jQWidgets jqxSplitter disabled属性

    jqxSplitter是jQWidgets中的一种布局控件,可以将一个页面分割成不同的区域,并且允许用户改变区域的尺寸。其中,disabled属性可以设置分割器是否可用,即是否允许用户改变区域的尺寸。下面是该属性的详细讲解攻略。 disabled属性的基本语法 disabled属性是jqxSplitter的一个布尔型属性,用于控制分割器是否可用。当设置为tr…

    jquery 2023年5月11日
    00
  • jQWidgets jqxDataTable initRowDetails属性

    以下是关于“jQWidgets jqxDataTable initRowDetails属性”的完整攻略,包含两个示例说明: 简介 jqxDataTable 控件的 initRowDetails用于初始化的详细信息。可以使用该属性在代码中动态控行的详细信息的显示和隐藏。 整攻略 以下是jqxDataTable控件initRowDetails` 属性完整攻略。 …

    jquery 2023年5月11日
    00
  • 解释AJAX中回调函数的作用

    解释AJAX中回调函数的作用 AJAX(Asynchronous JavaScript and XML)是一种用于创建异步Web应用程序的技术。在AJAX中,回调函数是一个非常重要的概念,它用于处理异步请求的响应。在本攻略中,我们将详细介绍回调函数在AJAX中的作用,并提供两个示例来说明它们的用途。 回调函数的作用 在AJAX中,回调函数是一个函数,它异步请…

    jquery 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部