阅读视图

发现新文章,点击刷新页面。

kali linux 安装使用 dirmap目录扫描工具

dirmap是一个高级web目录扫描工具,其扫描速度远快于Dirsearch、御剑等;功能字典上比dirsearch强不少,个人觉得,当然,字典这种东西其实看自己收集,默认的都差不多

前往github下载dirmap-master安装包,我这边直接克隆

git clone https://github.com/H4ckForJob/dirmap.git
cd dirmap

1.查看kali中python版本

9100d6ccde86fbf217291829412f0892

2. 进入dirmap-master文件夹下,查看requirement.txt文件中该工具需要的依赖文件

3e49176e109975e7dc754289d9e7c7ec

分别安装上述依赖文件

apt install python3-gevent
apt install python3-requests
apt install python3-progressbar2
apt install python3-lxml

调用dirmap.py文件扫后台文件,结果报错,显示对应的文件中没有名为“progressbar1”的模块

187e631fe44f67b9a627eb3463c34d9a

前往对应的目录下,将bruter.py文件中的21行、56行的“progressbar”全部替换为“progressbar2”

461968760bbcab64efc8117da9ad9acf

再回到dirmap.py目录下,使用对应的参数再次扫描即可

Kali 修改 apt 源为国内源 修改kali linux安装源

Kali 系统中自带的镜像源是官方的的apt  org 源,经常会因为网络问题,导致无法安装或更新程序。而且国外的 apt 源使用起来速度是相当慢。因此最好直接使用国内的源来解决此问题。这里带的是阿里的源,如需其他源方法是一样的只是地址换一下

1.编辑 atp 源的配置文件:

vim /etc/apt/sources.list

d14fe24f80a20ea2658dc8ed33df927c

将配置文件中原有 kali 的官方源 前面加# 注释掉

而后在配置文件末行中添加阿里云的 apt 源

deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib

然后保存幵退出。
使用 apt 命令更新源中的源数据:

apt update

apt upgrade 即可更新

apt upgrade

 

接口授权IP授权-支持采集接口授权+解析授权+在线任意授权-IP授权高性能高效果 PHP源码

一个授权IP 功能,类型 API 接口以及任意接口授权的代码,让你实现接口安全调用,不被白嫖!

PS:最近写了几个接口,因为是自用得,一天被盗刷好几万次,emmm,所以就搞了这个功能,非常强大!收10元辛苦费,IP授权功能点十分完善了,适合单接口授权类验证,带ip记录,日志记录!默认注释掉的,需要取消注释即可!不懂得可问

51f7bc30342a0b21336be5066b556ec7

PCDN 和近期网络攻击频繁的那些事

前段时间接到父母电话,说有自称宽带运营商的工作人员上门检查。父母的安全意识还是很好的,担心会动手脚,人家还没进门,电话就过来了。这让杜老师想起 PCDN 事件,今日整理相关内容,给小伙伴们普及下!

什么是 PCDN

PCDN 或 P2P 是一种基于 P2P 技术和 CDN 的内容分发加速网络。它通过在网络中添加大量的低成本缓存服务器,将用户请求的内容从原始服务器分发到这些缓存服务器,从而实现内容更快、更稳定传输到终端用户。

随着网络技术发展,我们对大带宽的需求也不断增长。各大站群为了用户访问体验,通过 CDN 将用户的请求直接发送到用户所在城市的服务器,从而实现快速、稳定访问。

在内容分发网络服务领域业界普遍采用两种主流的计费模式:流量计费、带宽计费。无论选择哪种计费方式,随着流量的增加其运营成本相应上升,对于任何规模的网站都是一个不容忽视的经济压力。

大型网站由于其庞大的用户基础和高流量需求,对 CDN 服务的依赖则更为显著,因此成本控制成为其运营中关键环节。在这样背景下,一些领先的技术公司开始探索利用家庭宽带资源以优化成本结构。家庭宽带通常有较高的下行速率,而上行速率则相对较低,且普通用户往往未能充分利用其上行带宽。

为更高效地利用这些未被充分利用的上行带宽资源,一些企业推出了挂机宝。这类服务通过在用户设备上部署特定软件,利用用户的闲置带宽进行数据缓存和存储。在需要时,这些数据可以通过用户的家庭网络传输给其他的需求方,从而在减轻大型网站 CDN 负载同时,也为用户带来一定激励回报。

这种模式不仅有效降低了大型网站对传统 CDN 节点的依赖,降低运营成本,而且在经济上对用户也具有一定的吸引力。尽管需要向用户提供一定的激励,但与高昂的 CDN 节点带宽费用相比,这种成本节约是显著的。通过这种方式,企业能够以较低的成本扩展其 CDN 网络,同时为用户提供了一种将闲置资源变现的途径,实现了双方的共赢。

运营商限制 PCDN 原因主要

网络压力:PCDN 产生的海量流量对运营商的骨干传输网络形成了巨大压力。由于用户宽带通常是包月的,而不是按流量计费,因此用户使用越多,运营商网络的压力越大,而且运营商并不能因此收到更多费用。

盈利影响:视频类服务商搭建常规 CDN 服务节点需要租用运营商的高价机房和带宽。而用 PCDN 后,服务商对资源租用需求大幅减少,这直接影响了运营商的盈利。

安全风险:PCDN 节点与其它设备存在数据交互,可能导致隐私数据泄露,甚至产生安全漏洞,遭到恶意攻击。

成本问题:PCDN 业务会导致设备长期开启,增加电能浪费,影响硬盘寿命,甚至整个设备寿命。

PCDN 节点的排查逻辑

运营商对 PCDN 的打击已经产生了扩大化影响。一些地方运营商的政策更加激进,如全面回收 IPv6 地址、限制网络连接数量、网络类型改为 NAT4 等。

运营商需要对网络流量进行监控,区分正常上行流量和 PCDN 流量。这无疑又增加了人力和物力成本,所以大多数运营商都选择封杀 PCDN。

在现代互联网架构中运营商通过精细化的流量数据分析技术,对用户的网络行为进行深入洞察。特别是对上行和下行流量的对比分析,已经成为识别 PCDN 行为的关键指标之一。

普通用户在互联网中主要扮演资源获取者的角色而非资源提供者。因此,从流量分布的一般规律来看,用户的下行流量通常会显著高于上行流量。

这种流量分布的不对称性是家庭宽带非对称带宽特性的直接体现。所谓的非对称带宽,是指在数据传输过程中,上行和下行的带宽速率存在差异,通常情况下下行带宽会高于上行带宽,以适应用户更多下载而非上传的需求。

然而,在特定情况下,如果监测到用户的上行流量异常高甚至超过了下行流量,亦或者上行流量与下行流量的比例超出了正常阈值,这可能表明用户正在作为资源提供方参与到 PCDN 活动。PCDN 利用普通用户的闲置资源,通过 P2P 技术实现内容的分发,这在一定程度上改变了传统上下行流量的分布比例。

近期网络攻击频繁猜想

所谓,上有政策,下有对策。PCDN 服务商面对这种筛查机制,也有其应对的方法「以下内容是杜老师对近期网络攻击频繁的猜想,信息来自于互联网」

上面提到筛查的规则是判断上下行流量的比例,所以一些 PCDN 服务商开始使用刷流量的方式躲避筛查。

他们会在闲时「一般指午夜后」下发指令给 PCDN 设备,使其访问互联网的部分站点,来获得大量的下行流量。

很多博主反馈自己网站在后半夜会有短暂的高流量访问,很有可能就是因为 PCDN 刷流量导致。

面对这种情况,杜老师采用的方式就是根据时段限制流量,如闲时段可以限制带宽,或者流量上限。如触发后及时中断流量,避免因流量造成的资金损失。

最后补充一句,除 PCDN 之外,部分运营商对 PT 的政策也开始收紧了。杜老师的想法非常简单:要么别给那么高的带宽,既然给了,就不要限制我们的使用!

什么是 OWASP 安全项目

开放 Web 应用程序安全项目是致力于 Web 应用程序安全的国际非营利组织。OWASP 核心原则之一是,他们的所有资料都免费提供并可以在其网站上轻松访问,这使得任何人都能够改善自己的 Web 应用程序安全性。

注入

当不被信任的数据通过表单输入或其它一些提交到 Web 应用程序数据发送到代码解释器时,就会发生注入攻击。

如攻击者可能向本应填写纯文本用户名的表单输入 SQL 数据库代码。

如果该表单输入未得到正确保护,则将导致执行该 SQL 代码。这称为 SQL 注入攻击。

可通过验证或清除用户提交的数据来防止注入攻击。

验证表示拒绝看似可疑数据,而清理指清除数据中可疑的部分。

此外,数据库管理员可以设置控件以最大程度地减少注入攻击可能接触的信息量。

身份验证失效

攻击者可通过身份验证系统中的漏洞访问用户帐户,甚至可以使用管理员帐户来破坏整个系统。

例如,攻击者可以获取一个包含在数据泄露中获得的数千个已知用户名与密码组合的列表。

并使用脚本尝试在登录系统尝试所有这些组合,以查看是否有任何有效组合。

一些防护身份验证漏洞的策略要求双要素身份验证以及使用限制或延迟重复的登录尝试。

敏感数据暴露

如果 Web 应用程序不保护财务数据和密码等敏感数据,则攻击者可访问这些数据并将其用于恶意目的。

窃取敏感信息的一种热门方法是使用在途攻击。

通过加密所有敏感数据并禁用任何敏感信息的缓存,可最大程度地降低数据暴露风险。

此外,Web 应用程序开发人员应注意确保避免不必要地存储任何敏感数据。

缓存是一种临时存储数据以供重用的做法。

例如,网络浏览器通常会缓存网页,这样一来,如用户在特定时间段内重新访问这些页面,浏览器就不必从 Web 获取页面。

外部实体

这是对解析 XML 输入 Web 应用程序的攻击。

此输入可引用外部实体,以尝试利用解析器中的漏洞。在此,外部实体是指存储单元,如硬盘驱动器。

攻击可欺骗 XML 解析器将数据发送到未经授权的外部实体,然后后者可将敏感数据直接传递给攻击者。

防止 XEE 攻击的最佳方法是让 Web 应用程序接受不太复杂的数据类型,如 JSON,或者至少给 XML 解析器打补丁并禁止在 XML 应用程序中使用外部实体。

XML 全称可扩展标记语言,是种旨在同时实现人类可读和机器可读的标记语言。

由于其复杂性和安全性漏洞,许多 Web 应用程序现在已经逐步淘汰了这种语言。

JavaScript 对象表示法是一种简单的、人类可读的表示法,通常用于通过网络传输数据。

尽管 JSON 最初是为 JavaScript 创建,但它不受语言限制,并且可以由许多不同的编程语言解释。

访问控制中断

访问控制是指控制对信息或功能的访问权限的系统。

损坏的访问控制使攻击者可以绕过授权并执行任务,像他们是管理员等特权用户一样。

例如,Web 应用程序可能允许用户仅通过更改 URL 的一部分即可更改他们登录的帐户,无需任何其它验证。

通过确保 Web 应用程序使用授权令牌并对其设置严格控制,可确保访问控制的安全。

许多服务在用户登录时都会发布授权令牌。用户发出每个特权请求都需出示授权令牌。

这是确保用户身份与声称相符的安全方法,而无需他们不断的输入登录凭据。

安全配置错误

安全配置错误是列表上最常见的漏洞,通常是使用默认配置或显示过多详细错误结果。例如,一个应用程序可能在向用户显示错误时描述得过于详尽,以致于揭示出应用程序中的漏洞。

这种情况可通过删除代码中任何未使用的功能并确保错误消息更加笼统来防护。

XSS 跨站点脚本

跨站点脚本漏洞在 Web 应用程序允许用户将自定义代码添加到 URL 路径或其他用户可看到的网站上时发生。

利用漏洞,可在受害者的浏览器上运行恶意的 JavaScript 代码。

例如,攻击者可向受害者发送似乎来自受信任银行的电子邮件,并随附指向该银行网站链接。

链接可能在 URL 的末尾标记一些恶意 JavaScript 代码。

如银行的站点没有得到适当的跨站点脚本保护,则当受害者单击链接时,该恶意代码将在受害者的 Web 浏览器中运行。

跨站点脚本的缓解策略包括对不受信任的 HTTP 请求转义以及验证和、或清除用户生成的内容。

不安全的反序列化

这种威胁目标是各种经常对数据进行序列化和反序列化的 Web 应用程序。

序列化意味着从应用程序代码中获取对象,并将其转换为可用于其它目的的格式,例如将数据存储到磁盘或对其进行流传输。

反序列化正好相反:将序列化的数据转回应用程序可以使用的对象。序列化就像在搬家前将家具打包到箱子里,而反序列化就像在搬家后拆开箱子并组装家具。

不安全的反序列化攻击就像搬家公司在拆箱前篡改箱子中的物品。

不安全的反序列化漏洞利用是不可信来源的数据反序列化的结果,并可能导致严重的后果,例如 DDoS 攻击和远程代码执行攻击。

尽管可采取措施尝试检出攻击者,如监视反序列化和实施类型检查,但防止不安全的反序列化攻击的唯一肯定有效方法是禁止来自不受信任来源的数据反序列化。

使用具有已知漏洞组件

许多现代 Web 开发人员在其 Web 应用程序中使用库和框架之类的组件。

这些组件是可帮助开发人员避免多余工作并提供所需功能的软件。

一些攻击者会在这些组件中寻找漏洞,然后利用这些漏洞组织攻击。

一些较为热门组件在数十万个网站上使用。攻击者如在其中一个组件中发现安全漏洞,就可能使数十万个站点易受攻击。

组件开发人员通常会提供安全补丁和更新程序修补已知漏洞,但 Web 应用程序开发人员并不总是在其应用程序上运行组件修补版本或最新版本。

为最大程度地降低运行具有已知漏洞的组件的风险,开发人员应从项目中删除未使用组件,并确保他们从受信任的来源接收组件并确保它们是最新版本。

记录监控不足

许多 Web 应用程序没有采取足够措施来检测数据泄露。

漏洞发生后平均发现的时间约为 200 天。

这使攻击者有大量时间在开发人员没任何响应之前造成破坏。

OWASP 建议 Web 开发人员实施日志记录和监视及事件响应计划,以确保他们了解应用程序遭到的攻击。

推荐 10 个 Linux 下的防病毒软件

在 Linux 系统,虽然由于设计上的安全性使得病毒和恶意软件的感染率相对较低,但在某些特定场景,如服务器环境或需要处理敏感数据的系统,安装防病毒软件仍然是一个明智选择。

ClamAV

特点:ClamAV 是一款免费开源的防病毒程序,专为类 Unix 系统设计。它提供强大的病毒检测引擎,能够识别清除各种病毒、间谍软件、蠕虫和其它的恶意软件。

优势:它支持多线程扫描,提高了扫描速度和效率;免费开源,拥有活跃社区支持;病毒库更新较频繁,保持对新威胁快速响应。

Sophos Protection for Linux

特点:Sophos Protection for Linux 是一款功能强大安全软件,集成了防病毒、防火墙和入侵检测多种功能,能够有效地保护 Linux 服务器和端点免受各种网络威胁侵害。

优势:提供实时保护、扫描文件目录、定期扫描功能;与 Sophos 中央管理平台集成,实现集中管理监控;支持多种 Linux 发行版,如 Ubuntu、Red Hat 等。

Avast Antivirus for Linux

特点:Avast Antivirus for Linux 是一款功能强大跨平台防病毒软件,专门为 Linux 系统设计。它提供了实时保护、手动扫描、定时扫描多种安全功能。

优势:拥有强大的病毒库和出色的保护能力;界面设计简洁直观,操作简便;与多种 Linux 发行版本兼容,如 Ubuntu、Fedora 等。

Kaspersky for Linux

特点:Kaspersky 为 Linux 系统提供一款防御性安全程序,旨在抵御可能渗透到 Linux 系统病毒、木马、间谍软件、广告软件。

优势:功能全面、兼容性强、易用性高;通过实时威胁检测、恶意软件扫描清除、防火墙保护等多种手段提供全面安全保护;支持多种 Linux 发行版,如 Ubuntu、Fedora 等。

ESET NOD32 Antivirus for Linux

特点:ESET NOD32 Antivirus for Linux 是 ESET 公司开发一款专为 Linux 系统设计的防病毒软件。它提供了高效的恶意软件检测和防护功能。

优势:拥有独特的 ThreatSense 技术,能够通过行为分析和模式识别快速准确地识别新的威胁;提供实时保护功能,监控系统运行中的进程、文件、网络连接;提供免费限时试用版供用户评估。

Comodo Antivirus for Linux

特点:Comodo Antivirus for Linux 是一款功能强大、兼容性好、用户友好的防病毒软件。它提供了实时保护功能,能够主动监控系统运行中的进程、文件、网络连接。

优势:集成了防火墙功能;独特的沙箱技术允许在虚拟环境中运行未知或可疑文件;提供电子邮件过滤功能和反垃圾邮件系统;跨平台支持多 Linux 发行版。

F-Prot Antivirus for Linux

特点:F-Prot Antivirus for Linux 是一款由 Cyren 开发跨平台防病毒软件。它提供了高效的病毒和恶意软件检测功能。

优势:支持 32/64 位体系结构;能够保护用户免受超过 2100 万种威胁及其变种的侵害;免费且可移植;允许扫描内部驱动器和驱动程序以及木马、宏病毒等。

chkrootkit

特点:chkrootkit 是一款轻量级的便携式防病毒程序,专注于检测 rootkit。

优势:易于使用;可以从命令行轻松运行;提供一次管理和解决多个错误的功能。

Rootkit Hunter

特点:Rootkit Hunter 是一款通过命令行使用防病毒工具,专注检测和消除病毒和木马软件。

优势:提供高效的 rootkit 检测功能;支持 SHA-1 比较和检测恶意软件;提供详细的调查结果报告和日志。

Firetools

特点:Firetools 是一个开源的沙箱 GUI 工具,允许用户在隔离环境中运行脚本和软件以验证其安全性。

优势:与其它防病毒扫描程序结合使用可以提高系统的整体安全性;特别适用于处理恶意 Web 脚本。

NEW Nginx 对于 WordPress 的安全配置优化与设置 加强保护WordPress系统文件

辰安博客自用的一个用于保保护系统文件的Nginx配置片段。该配置主要用于保护WordPress网站的系统文件和目录,防止未经授权的访问和潜在的安全威胁

c8a86530f811aec8cc85050fa397cd29

# 禁止访问 WordPress 安装脚本,并记录日志
location = /wp-admin/install.php {
    deny all;
    access_log /var/log/nginx/deny.log;
}

# 禁止访问 Nginx 配置文件
location = /nginx.conf {
    deny all;
}

# 禁止访问用户扩展目录
location ~ ^/user_extention/ {
    deny all;
}

# 禁止访问 .htaccess 文件
location ~ /\.htaccess$ {
    deny all;
}

# 禁止访问 WordPress readme 文件
location ~ /readme\.(html|txt)$ {
    deny all;
}

# 禁止访问 WordPress 配置文件
location ~ ^/wp-config.php$ {
    deny all;
}

# 禁止访问 WordPress admin 和 includes 目录中的 PHP 文件
location ~ ^/wp-admin/includes/ {
    deny all;
}

location ~ ^/wp-includes/[^/]+\.php$ {
    deny all;
}

# 禁止访问 .git 和 .svn 目录
location ~ ^.*/\.git/.*$ {
    deny all;
}

location ~ ^.*/\.svn/.*$ {
    deny all;
}

# 禁用 Uploads 目录的 PHP 文件
location ~ ^/wp\-content/uploads/.*\.(?:php[1-7]?|pht|phtml?|phps)$ {
    deny all;
}

# 禁用 Plugins 目录的 PHP 文件
location ~ ^/wp\-content/plugins/.*\.(?:php[1-7]?|pht|phtml?|phps)$ {
    deny all;
}

# 禁用 Themes 目录的 PHP 文件
location ~ ^/wp\-content/themes/.*\.(?:php[1-7]?|pht|phtml?|phps)$ {
    deny all;
}

# 禁用一些文件扩展名,并返回404
location ~ .*\.(ini|zip|7z|rar|tar|gz|sql|conf|bak|asp|aspx|jsp)?$ {
    return 404;
}

# 添加安全头
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options DENY;
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https:; style-src 'self' 'unsafe-inline' https:; img-src 'self' data: https:;";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
add_header Referrer-Policy "no-referrer-when-downgrade";

# 限制上传文件大小
client_max_body_size 2M;

# 速率限制配置,防止暴力攻击
limit_req_zone $binary_remote_addr zone=login_zone:10m rate=1r/s;

location = /wp-login.php {
    limit_req zone=login_zone burst=5 nodelay;
}

# 示例访问控制
# location /wp-admin/ {
#     allow 192.168.1.0/24;
#     deny all;
# }

The post <span class="zyx-badge-text jb-red">NEW</span> Nginx 对于 WordPress 的安全配置优化与设置 加强保护WordPress系统文件 appeared first on 辰安博客.

SamWaf 网站防火墙工具安装使用

SamWaf 网站防火墙是一款适用于小型公司、工作室和个人网站的免费的轻量级网站防火墙,可完全私有化部署,数据加密且仅保存本地,一键启动,支持 Linux/Windows 等 64 位操作系统。

主要功能

  • 完全独立引擎,防护功能不依赖 IIS/Nginx。

  • 可自定义防护规则,支持脚本、界面编辑。

  • 可支持白名单访问。

  • 支持 IP 黑名单。

  • 支持 URL 白名单。

  • 可支持限制 URL 访问。

  • 支持指定界面数据隐私输出。

  • 可支持 CC 频率访问。

  • 支持全局一键配置。

  • 可支持分网站单独防护策略。

工具安装

使用下面的命令安装 Docker:

1
curl -sSL https://get.docker.com/ | sh

创建目录,并启动 SamWaf 容器:

1
2
3
4
mkdir -p /data/samwaf/conf
mkdir -p /data/samwaf/data
mkdir -p /data/samwaf/logs
docker run -d --name=samwaf-instance -p 26666:26666 -p 80:80 -p 443:443 -v /data/samwaf/conf:/app/conf -v /data/samwaf/data:/app/data -v /data/samwaf/logs:/app/logs samwaf/samwaf

面板访问

在容器启动后,使用下面的地址可访问面板:

1
http://IP:26666

默认用户名和密码如下:

1
2
admin
admin868

工具截图

SamWaf 网站防火墙概览:

从日志中进行快速处理:

自动创建规则脚本:

界面编辑:

配置 CC 攻击的规则。速率如 1 限制次数 100 则代表每秒访问 100 次将被限制:

防御日志记录查询所有正常、异常请求。可以根据规则名称,时间进行查询:

Linux 安全 Auditd 审计工具使用说明

Auditd 是 Linux 系统中的一个强大的审计框架,它能帮助系统管理员监控和记录系统中的安全相关事件。杜老师整理了一些关于 Auditd 审计工具的详细使用说明。

安装工具

在大多数 Linux 发行版中可以通过包管理器安装 Auditd。例如,在银河麒麟高级服务器操作系统/CentOS 上,可以使用以下命令安装:

1
yum -y install audit

在银河麒麟桌面操作系统上,可以使用以下命令安装:

1
sudo apt -y install auditd audispd-plugins

配置工具

Auditd 的主要配置文件是/etc/audit/auditd.conf

此外,审计规则的配置文件通常位于/etc/audit/audit.rules

相关工具

以下是 Auditd 中常用的工具:

工具名称功能描述
auditctl用于添加、删除审计规则,及查看审计规则等。
aureport用于生成审计报告。
ausearch用于搜索审计事件。
auditspd用于将事件通知转发给其它应用程序。
autrace用于跟踪进程。

审计规则

审计规则可以分为三类:控制规则、文件系统规则、系统调用规则。控制规则用于更改审计系统本身的配置和设置。例如,设置审计缓冲区的最大数量:

1
auditctl -b 8192

文件系统规则用于监控特定文件或目录的访问。例如,监控/etc/passwd 文件写入和属性修改:

1
auditctl -w /etc/passwd -p wa -k passwd_changes

系统调用规则用于记录特定程序系统调用。例如,记录使用 adjtimexsettimeofday 系统调用的行为:

1
auditctl -a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change

例如,要监控/etc/passwd 文件读写访问,可以使用以下命令。这条规则表示监控/etc/passwd 文件当有读写操作时,使用关键字 passwd_monitor 记录审计事件:

1
auditctl -w /etc/passwd -p rw -k passwd_monitor

使用命令查看当前配置审计规则:

1
auditctl -l

使用 auditctl -D 可删除所有规则,或使用下面命令删除指定路径的规则:

1
auditctl -W

日志报告

审计日志默认存储在/var/log/audit/audit.log 文件。使用 ausearch 工具可以搜索和查看审计日志。例如,要搜索所有与 passwd_monitor 相关的日志条目,可以使用:

1
ausearch -k passwd_monitor

使用 aureport 命令可生成审计报告。例如,要生成一个关于用户登录失败的报告,可以使用:

1
aureport -au

保存规则

要使规则永久生效,需要将规则添加到/etc/audit/audit.rules 文件中,然后重启或重新加载 Auditd 服务:

1
sudo systemctl restart auditd

或者重新加载规则:

1
sudo auditctl -R /etc/audit/audit.rules

服务管理

Auditd 服务默认开机自启动。可使用以下命令来管理服务:

描述命令
查看服务状态systemctl status auditd
开启服务systemctl start auditd
停止服务systemctl stop auditd
重启服务systemctl restart auditd

确保 Linux 审计日志安全性和完整性

  1. 配置审计守护进程:

将日志文件路径设置在单独挂载点上,以防止其它的进程消耗空间,并确保审计守护进程能够准确的检测剩余空间。
设置 max_log_file 参数以充分利用保存审计日志文件分区上的可用空间。
max_log_file_action 设置为 keep_logs,防止审计日志文件被覆盖。
配置 space_left 以及 space_left_action 参数,以确保在磁盘空间不足时能够及时通知管理员。
设置 admin_space_left 以及 admin_space_left_action 参数,为记录管理员所执行的操作保留足够空间。
disk_full_action 设置为 haltsingle,以确保在磁盘空间耗尽时系统能够关闭或以单用户模式运行。
disk_error_action 设置为 syslogsingle 或者 halt,以便在检测到磁盘错误时采取适当的行动。

  1. 配置审计规则:

auditctl 命令添加规则,监控关键文件以及系统调用,确保只有授权的更改被记录。
将规则持久化到/etc/audit/audit.rules 文件,以确保在系统重启后规则仍有效。

  1. 保护审计日志文件:

确保审计日志文件的存储位置具有适当的权限设置,只有授权用户才能访问。
考虑使用加密存储审计日志,以防止未授权的访问或篡改。

  1. 日志轮转、归档:

配置日志轮转策略,避免日志文件无限制增长并填满磁盘空间。
定期归档旧的审计日志,确保归档过程不会破坏日志文件的完整性。

  1. 监控、响应:

定期监控审计日志,用 ausearchaureport 命令分析日志,以识别异常行为或潜在安全威胁。
根据审计结果,采取相应响应措施,并且生成审计报告。

  1. 定期审查、更新:

定期审查审计策略、规则,以适应不断变化的安全需求。
更新审计规则以覆盖新安全场景,并确保审计系统有效性。

多方式防止网站被镜像

最近好多小伙伴的博客都被镜像,包括杜老师的。整理了多种方式放置网站被镜像,需要的小伙伴可以试试。虽说被镜像会增加流量,但却减少了域名的权重,还是要避免的!

检查域名

1
2
3
4
var domain = "dusays.com";
if (location.href.indexOf(domain) === -1) {
window.location = 'https://dusays.com';
}

注意:在前端使用 JavaScript 判断当前域名是否合法,如果不是授权域名,则会跳转到原域名。为增强安全性,可对这段代码进行混淆处理,以防止被替换。

设置头部

1
2
add_header X-Frame-Options "DENY";
add_header Content-Security-Policy "frame-ancestors 'none'";

注意:使用 X-FRAME-OPTIONSContent-Security-Policy 头部来防止网站被嵌入到 iframe 中,可在 Nginx 配置中添加上面内容。

限制访问

定期分析访问日志,将可疑的 IP 地址加入黑名单,或者限制访问频率。

这可以通过 Nginx 的 limit_connlimit_req 指令实现。

过滤爬虫

1
2
3
if ($http_user_agent ~* "curl|wget|python") {
return 403;
}

注意:通过检查请求的 User-Agent,拒绝来自已知爬虫或代理的请求。

使用证书

强制使用证书,可通过配置 Nginx 来实现。

确保所有流量都通过安全的连接传输,这样可增加安全性。

监控访问

定期检查访问日志,识别异常流量模式,并采取相应的措施。

通过结合这些方法,可以有效降低网站被镜像的风险。

怎样在 Nginx 中配置防盗链

防盗链技术主要用于防止未经授权的网站直接链接到另一个网站上的资源,如图片等。这种技术通过各种方法验证请求的合法性,以确保只有授权的用户或网站才能访问特定的资源。

解决思路

在 Nginx 中配置防盗链主要是通过验证 HTTP 请求中的 Referer 头部来实现。如果请求的 Referer 头部不满足特定的条件,则 Nginx 可以拒绝服务。

可使用 valid_referers 指令,这指令用来定义哪些 Referer 是有效的。

可以使用 none 来拒绝所有没有 Referer 的请求,或 blocked 来拒绝所有 Referer 被屏蔽的请求。

可使用 if 语句和 return 指令,在 server 块中,可使用 if 语句来检查$invalid_referer 变量,如果这个变量为 true,则返回一个 403 禁止访问的状态码。

配置文件

打开 Nginx 的配置文件,通常这个文件位于:

1
/etc/nginx/nginx.conf

或者某个特定的站点配置文件中,比如:

1
/etc/nginx/sites-available/default

配置方法

下面是一个简单的配置示例:

1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 80;
server_name dusays.com;
location ~ .*\.(jpg|jpeg|gif|png|js|css)$ {
valid_referers none blocked dusays.com www.dusays.com;
if ($invalid_referer != ok) {
return 403;
}
root /var/www/html;
index index.html index.htm;
}
}

在这个配置中,location 一行用于匹配请求 URI,匹配所有以 jpg|jpeg|gif|png|js|css 结尾请求:

1
2
location ~ .*\.(jpg|jpeg|gif|png|js|css)$ {
}

下面一行内容定义哪些 Referer 是被允许的,none 表示不接受任何的 Referer,blocked 表示不接受被屏蔽 Referer,后面跟着的是被允许的域名:

1
valid_referers none blocked dusays.com www.dusays.com;

下面一行的内容检查$invalid_referer 变量,如果它不是 ok,则会返回 403 状态码:

1
2
3
if ($invalid_referer != ok) {
return 403;
}

注意事项

这种方法并不是完全安全的,因为 Referer 头部可以被伪造。

更安全的做法是使用基于 IP 地址、用户身份验证或者其它更复杂的安全措施来防止未经授权的访问。

如何配置 Nginx 防止 CC 攻击

CC 攻击是一种网络攻击手段,属于 DDoS 攻击的一种形式。CC 攻击的主要目的是通过发送大量看似合法的请求到目标服务器,耗尽服务器的资源,使得服务器无法处理正常的用户请求,从而导致网站服务无法访问。

限制请求速度

1
2
3
4
5
6
limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;
server {
location /login.html {
limit_req zone=one;
}
}

注意:在安装 Nginx 时加载 ngx_http_limit_req_module 模块,通过 limit_req_zone 指令定义请求速率限制的区域,并使用 limit_req 指令在特定的 location 中应用这些限制。这样设置可限制每个客户端 IP 每分钟最多发起 30 个请求。

限制连接数量

1
2
3
4
5
6
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
location /store/ {
limit_conn addr 10;
}
}

注意:在安装 Nginx 时加载 ngx_http_limit_conn_module 模块,通过 limit_conn_zone 指令定义连接数量限制的区域,并使用 limit_conn 指令在特定的 location 中应用这些限制。这将限制每个客户端的 IP 同时最多只能有 10 个连接。

关闭慢速连接

1
2
3
4
server {
client_body_timeout 5s;
client_header_timeout 5s;
}

注意:通过设置 client_body_timeoutclient_header_timeout 指令来定义读取客户端请求的超时时间,可以关闭慢速连接。这样可防止攻击者通过慢连接攻击耗尽服务器资源。

设置 IP 黑名单和白名单

1
2
3
4
location / {
allow 192.168.1.0/24;
deny all;
}

注意:使用 allowdeny 指令可控制特定 IP 地址或 IP 范围的访问权限。这样可以允许特定 IP 段访问,而拒绝其它所有 IP 访问。

限制文件类型和请求大小

1
2
3
4
5
6
7
8
server {
location /upload/ {
client_max_body_size 10M;
if ($content_type ~* "^image/") {
return 403 "Only non-image files are allowed.";
}
}
}

注意:通过 client_max_body_size 指令限制上传文件大小和类型,防止因大文件上传或超大数据包导致的服务中断或资源耗尽。

其它限制

可集成 Fail2Ban 工具,对日志文件进行自动化监控,一旦检测异常行为或恶意 IP 地址,立即将其加入黑名单并封锁。

定制化错误页面不仅能提升用户体验,还能在遭遇攻击时减少攻击者获取的有用信息。

持续关注 Nginx 的错误日志,借助日志分析工具,及时发现并响应任何异常行为或攻击迹象。

强制所有的数据传输通过 HTTPS 加密,可以有效抵御中间人攻击和数据泄露风险。

Nginx 集成 ModSecurity 实现 Web 应用防火墙功能

ModSecurity 是一个开源、跨平台的 Web 应用程序防火墙引擎,适用于 Apache 和 Nginx。具有强大的基于事件的编程语言,可抵御针对 Web 应用程序的一系列攻击,并允许进行 HTTP 流量监控、日志记录、实时分析。

安装步骤

首先,需要安装一些必要的依赖包,例如 libxml2/libpcre3/libapr1 等。可以通过包管理器完成,例如在 Debian 或 Ubuntu 系统上使用 apt

1
2
sudo apt update
sudo apt -y install libxml2 libxml2-dev libpcre3 libpcre3-dev libapr1 libapr1-dev libaprutil1 libaprutil1-dev

接着,从 GitHub 克隆 ModSecurity 源代码,编译安装:

1
2
3
4
5
6
git clone --recursive https://github.com/owasp-modsecurity/ModSecurity ModSecurity
cd ModSecurity
./build.sh
./configure
make
sudo make install

安装模块

然后,下载 Nginx ModSecurity 模块并编译 Nginx 以包含模块:

1
2
3
4
5
git clone https://github.com/owasp-modsecurity/ModSecurity-nginx.git
cd /path/to/nginx/source
./configure --add-module=/path/to/ModSecurity-nginx
make
sudo make install

在 Nginx 的配置文件中启用 ModSecurity 并指定规则文件。例如,在 nginx.conf 添加:

1
2
3
4
5
6
7
server {
modsecurity on;
location / {
root /var/www/html;
modsecurity_rules_file /etc/nginx/modsec/main.conf;
}
}

配置规则

可使用默认的 OWASP 核心规则集,这是一个广泛认可的标准规则集,专门用于检测和阻止 Web 应用程序攻击。克隆并将其配置到 ModSecurity 中:

1
2
git clone https://github.com/coreruleset/coreruleset.git /etc/nginx/modsec/coreruleset
cp /etc/nginx/modsec/coreruleset/crs-setup.conf.example /etc/nginx/modsec/coreruleset/crs-setup.conf

修改 /etc/nginx/modsec/main.conf 来包含配置:

1
2
Include /etc/nginx/modsec/coreruleset/crs-setup.conf
Include /etc/nginx/modsec/coreruleset/rules/*.conf

测试防御

最后,重启 Nginx 以应用更改:

1
sudo service nginx reload

可以使用以下命令测试防护功能,如返回 403 Forbidden,说明防护已经生效,此处匹配规则是 User-Agent 中不能包含漏洞扫描器名字:

1
curl -H "User-Agent: Nikto" http://IP

服务器操作系统安全加固项

应宋童鞋需求,整理了一些服务器操作系统的安全加固项。因为涉及大量内容,所以直接用 PDF 文档形式展示,供需要的小伙伴们借鉴。需要注意的是:由于服务器配置和操作系统版本不同,部分内容可能无法直接复制粘贴,需要根据实际情况进行修改。

安全加固的必要性

服务器操作系统的安全加固是确保网络设施安全的关键步骤,可以有效降低安全风险,保护数据安全,提高服务器可用性和可靠性。安全加固必要性主要体现在以下几个方面:

  1. 增强防护能力。通过安全加固,可增强服务器的防病毒和防黑客攻击能力,提高其物理和网络安全防护水平;
  2. 保护数据安全。防止数据泄露、损坏,确保服务器上存储和处理的数据的安全性;
  3. 保证系统稳定运行。通过加固,可提高服务器的可用性和可靠性,确保业务的连续性;
  4. 提高可管理性、可维护性。方便日常的监控和维护工作,及时发现并解决潜在的安全问题。

实施服务器加固的步骤通常包括:

  1. 及时更新操作系统、应用程序,打上最新安全补丁;
  2. 配置合理安全策略,包括账户权限管理、访问控制;
  3. 加密数据传输,使用 SSL 等技术确保数据传输过程中的安全;
  4. 配置防火墙的规则,限制不必要的网络访问,防止非法入侵;
  5. 定期备份数据,以便在数据损坏或丢失时能及时恢复;
  6. 评估现有安全状况,找出安全隐患、漏洞;
  7. 制定加固方案,包括操作系统、应用程序、网络设备配置;
  8. 实施加固措施,例如更新补丁、配置安全策略、设置防火墙等;
  9. 测试、验证加固效果,确保符合预期;
  10. 持续监控、维护,解决新出现的安全问题。

服务器安全加固项

需要指出的是,安全加固并非一劳永逸,而是一个持续过程。定期更新系统补丁和部署具有一流防护能力的安全防护系统,及使用自动化加固工具,都是确保服务器安全的有效手段。同时,安全加固服务的实施是一个系统工程,涉及多个层面的策略与实践,需要持续关注安全动态,不断优化加固措施:

❌