惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
Google DeepMind News
Google DeepMind News
G
Google Developers Blog
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
月光博客
月光博客
Jina AI
Jina AI
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
D
DataBreaches.Net
V
V2EX
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
B
Blog
博客园 - 叶小钗
小众软件
小众软件
Stack Overflow Blog
Stack Overflow Blog
P
Proofpoint News Feed
A
About on SuperTechFans
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Y
Y Combinator Blog
Microsoft Security Blog
Microsoft Security Blog

FreeBuf网络安全行业门户

四大AI编码Agent曝0-Click RCE漏洞,两款尚未修复 - FreeBuf网络安全行业门户 AI驱动恶意软件每小时重写自身,规避特征检测规则 - FreeBuf网络安全行业门户 恶意VS Code项目暗藏One Click攻击路径,攻击者可持久访问开发者工作站 - FreeBuf网络安全行业门户 研究人员借助Claude Opus 5入侵OpenAI论坛,触及内部代码仓库 - FreeBuf网络安全行业门户 26秒攻破11家组织:数百AI代理涌向PaperCut,打印服务器怎么变成了域控跳板 - FreeBuf网络安全行业门户 ThreatsDay发布本周安全动态,自改写Agent、800余漏洞修复在列 - FreeBuf网络安全行业门户 八类错配三条合法命令,AD CS 把域控钥匙签给了攻击者 - FreeBuf网络安全行业门户 Docker Sandboxes曝严重逃逸漏洞,恶意代码可读写macOS主机文件 - FreeBuf网络安全行业门户 从配置即执行到会话劫持:MCP 两种传输方式的安全属性对决 - FreeBuf网络安全行业门户 AI Agent 拿下域控:同一条 AD CS 链路,人打 7.2 秒、AI 打 6 分 17 秒 裸 Codex 把专用 AI 渗透框架的 benchmark 优势抹平了 修复已提交不是已修复,27 天补丁差,AI 把 CVE-2026-85046 武器化压到三周 15 次干净发布,换来 300 家组织的凭据:MCP 供应链投毒的量化测量与驻留防护 OWASP Agent 标准族选型地图:AOS ACS AISVS AST10 四标准实测对照与分期落地指南 FreeBuf早报 | 黑客可租用VectraRAT远控工具;虚假AI交易Agent网站投放窃密木马 - FreeBuf网络安全行业门户 SGLang 的漏洞报告压了 74 天没等来补丁:四周四个洞,自托管 LLM 栈的安全债到期了(CVE-2026-86793) 一封邮件拿 root:Cisco 邮件网关的 9.8 分零日 CVE-2026-76461 只给 3 天修复期 变电站监控系统(SCADA)等保测评:现场最容易被忽略的 7 个坑 - FreeBuf网络安全行业门户 Google推出Agent异常检测系统,可检测工具误用、执行循环与越界行为 - FreeBuf网络安全行业门户 Anthropic 强化 Claude 安全防护:AI 模型在评估中未经授权访问真实系统 黑名单只防了 AWS?Directus 默认配置下 SSRF 直通国产云 metadata 告警堆到 100 万条那天,我决定自己写一个“会用 AI“的安全运营中心 - FreeBuf网络安全行业门户 新手勇闯网络安全 | 网络通信基础(三) - FreeBuf网络安全行业门户 FreeBuf早报 | 宇树G1 EDU人形机器人漏洞可致root级远程代码执行;Claude平台遭攻击 - FreeBuf网络安全行业门户 保障 Claude Code 安全:全新 Compliance API、本地可见性与身份治理 Apache Shiro rememberMe 反序列化漏洞:从 Cookie 到 RCE 免费路由器 DNS 调整可拦截家庭网络中的恶意软件和钓鱼攻击 - FreeBuf网络安全行业门户 黑客利用信息窃取恶意软件窃取 Claude 登录会话,劫持账户 - FreeBuf网络安全行业门户 奇安信2026半年报:营收跌了14%,亏损却砍半,这笔账怎么算? - FreeBuf网络安全行业门户 出厂即后门:一台深圳路由器里藏着的两个钉子户——SPEAKINGSTONE 与 DARKLANTERN 拆解 - FreeBuf网络安全行业门户
新手勇闯网络安全 | Linux 安全基础(四) - FreeBuf网络安全...
关 注 0 文章数 0 关注者 · 2026-09-17 · via FreeBuf网络安全行业门户

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

前三篇掌握了 Linux 命令行、权限机制和运维排查,这一篇进入远程管理与反检测的核心战场。软件怎么装、SSH 怎么安全登录、服务怎么加固、黑客如何隐藏进程 —— 每一项都是内网渗透和系统加固的必考点。看完你就能从零搭建一套安全的 SSH 远程管理体系,并理解恶意程序的隐身原理。

一、软件安装与更新

1.1 包管理器对比

主流发行版包文件格式默认包管理器系统更新核心命令
CentOS / RHEL / Fedora.rpmyum / dnfyum update / dnf update
Ubuntu / Debian / Kali.debapt / apt-getapt update && apt upgrade
  • RPM 系(CentOS / RHEL):基于 Red Hat 生态,企业级服务器最主流的选择。CentOS 8+ 默认用 dnf,yum 是软链接。

  • DEB 系(Ubuntu / Debian):以稳定性著称,个人桌面和云原生开发的首选。

1.2 CentOS / RHEL 软件管理(yum /dnf)

命令说明示例
yum install 软件名安装软件yum install vim
yum update 软件名更新软件yum update vim
yum remove 软件名删除软件yum remove vim
yum search 关键词搜索软件yum search python
yum info 软件名查看软件信息yum info vim
yum clean all清理缓存-
yum makecache手动刷新缓存-

仓库配置文件目录:

/etc/yum.repos.d/

1.3 Kali / Ubuntu 软件管理(apt)

命令说明示例
apt update更新软件包列表-
apt upgrade升级已安装软件-
apt install 软件名安装软件apt install vim
apt remove 软件名删除软件apt remove vim
apt purge 软件名删除软件及配置文件apt purge vim
apt search 关键词搜索软件apt search vim
apt show 软件名查看软件信息apt show vim
apt clean/apt autoclean清理缓存-

仓库配置文件:

/etc/apt/sources.list

/etc/apt/sources.list.d/

1.4 源码编译安装

当软件不在官方仓库中,或需要自定义编译参数时,使用源码编译安装。

通用六步流程

\# 1. 安装编译依赖

yum install -y gcc make          # CentOS / RHEL

apt install -y gcc make          # Kali / Ubuntu

\# 2. 下载源码

cd /usr/local/src

wget https://example.com/src.tar.gz

\# 3. 解压

tar -xzf src.tar.gz

cd src

\# 4. 配置:检测系统环境,生成 Makefile

./configure --prefix=/usr/local

\# 5. 编译:根据 Makefile 编译源码,生成二进制可执行程序

make

\# 6. 安装:将编译好的程序复制到系统目录(需要 root)

make install

二、SSH:密码与公钥远程登录管理

2.1 SSH 基础

核心配置文件/etc/ssh/sshd_config

配置项说明默认值
Port 22服务监听端口22
ListenAddress 0.0.0.0监听地址所有地址
PermitRootLogin yes是否允许 root 登录yes
PasswordAuthentication yes是否允许密码认证yes
PubkeyAuthentication yes是否允许公钥认证yes
AuthorizedKeysFile .ssh/authorized_keys公钥文件位置-

SSH 服务管理

\# CentOS / RHEL

systemctl status sshd

systemctl start sshd

systemctl enable sshd

\# Kali / Ubuntu

systemctl status ssh

systemctl start ssh

systemctl enable ssh

密码登录基本使用

ssh 用户名@主机IP

ssh -p 端口号 用户名@主机IP

ssh 用户名@主机IP "命令"    # 执行远程命令

2.2 公钥认证原理(难点)

核心概念:非对称加密 —— 公钥加密,私钥解密。

形象比喻:

  • 公钥 = 锁头(可以公开给别人,用于加密)

  • 私钥 = 唯一的钥匙(必须自己保管,用于解密)

  • 服务器 = 装了锁头的房间,只认锁不认人

  • 客户端 = 想进房间的人,有能开锁的钥匙就能进

认证流程六步走

  1. 客户端本地生成 "公钥 + 私钥" 密钥对

  2. 手动将公钥上传到服务器

  3. 客户端向服务器发起 SSH 登录请求

  4. 服务器用公钥加密随机 "挑战码" 发回

  5. 客户端用私钥解密挑战码,并回传结果

  6. 验证通过即建立连接,允许登录

为什么公钥认证更安全

  • 私钥永不传输,只传输解密后的挑战

  • 几乎无法被暴力破解(密钥长度通常 2048/4096 位)

  • 每次登录挑战不同,防止重放攻击

  • 公钥泄露不影响安全,私钥泄露才危险

2.3 密码登录 vs 公钥登录对比

对比项密码登录公钥登录
安全性较低,易受暴力破解较高,基于密钥认证
便利性需记忆密码配置后无需密码
配置复杂度简单较复杂
适用场景临时访问、测试环境生产环境、自动化脚本
等保合规不符合三级要求符合三级要求

2.4 实战演示:配置公钥认证

步骤 1:客户端生成密钥对

ssh-keygen -t rsa -b 4096 -C "备注信息"

\# 按提示输入保存路径和密码(可选,建议设置密码保护私钥)

步骤 2:上传公钥到服务器

ssh-copy-id 用户名@服务器IP

\# 自动将公钥追加到服务器的 authorized\_keys 文件中

步骤 3:服务器端权限加固(关键)

chmod 700 \~/.ssh                          # 目录只允许所有者进入

chmod 600 \~/.ssh/authorized\_keys          # 文件只允许所有者读写

步骤 4:校验配置并重启服务

sshd -t                      # 先校验配置,避免 sshd 起不来

systemctl restart sshd       # CentOS / RHEL

systemctl restart ssh        # Kali / Ubuntu

步骤 5:测试免密登录

ssh 用户名@服务器IP

\# 应该无需输入密码即可登录

如果私钥泄露,立即删除服务器上的公钥(

~/.ssh/authorized_keys

),然后重新生成新的密钥对。

三、SSH 服务加固

3.1 基本加固措施

1. 修改默认端口

vim /etc/ssh/sshd\_config

\# 修改 Port 2222

\# 注意:修改前必须在防火墙放行新端口!

firewall-cmd --zone=public --add-port=2222/tcp --permanent

firewall-cmd --reload

systemctl restart sshd

2. 禁用 root 登录

重要提醒:禁用 root 登录前,必须先创建其他可 sudo 用户,否则可能死锁!

\# 先创建普通用户并授予 sudo 权限

useradd -m shiba

passwd shiba

usermod -aG wheel shiba      # CentOS / RHEL

usermod -aG sudo shiba       # Kali / Ubuntu

\# 再禁用 root 登录

vim /etc/ssh/sshd\_config

\# 修改 PermitRootLogin no

systemctl restart sshd

3. 禁用密码认证,仅允许公钥认证

vim /etc/ssh/sshd\_config

\# 修改:

PasswordAuthentication no

PubkeyAuthentication yes

systemctl restart sshd

前提:确保已正确配置并测试好公钥认证后,再禁用密码。

4. 限制用户登录

vim /etc/ssh/sshd\_config

AllowUsers 用户1 用户2        # 仅允许特定用户登录

DenyUsers 用户1               # 拒绝特定用户登录

AllowGroups 组名1 组名2       # 允许特定组登录

DenyGroups 组名               # 拒绝特定组登录

3.2 使用 Fail2ban 防止暴力破解(难点)

工作原理:Fail2ban 通过实时监控 SSH 日志文件,检测短时间内的多次登录失败尝试,自动调用防火墙规则(如 iptables)封禁该可疑 IP,有效阻断暴力破解攻击。

安装

\# CentOS / RHEL(需先安装 EPEL 源)

yum -y install epel-release

yum -y install fail2ban

\# Kali / Ubuntu

apt update

apt install fail2ban

配置

\# 推荐复制模板文件修改,避免直接编辑 jail.conf

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

vim /etc/fail2ban/jail.local

jail.local中添加 SSH 防护配置:

\[sshd]

enabled = true

port = 2222

filter = sshd

action = iptables-multiport\[name=sshd, port="2222", protocol=tcp]

logpath = /var/log/secure

maxretry = 3

findtime = 300

bantime = 86400
参数说明
enabled是否启用
port监听端口
logpath日志文件路径
maxretry最大重试次数
findtime检测时间窗口(秒)
bantime封禁时间(秒)

管理 Fail2ban

systemctl start fail2ban

systemctl enable fail2ban

\# 查看状态

fail2ban-client status

fail2ban-client status sshd

\# 手动封禁 / 解封 IP

fail2ban-client set sshd banip IP地址

fail2ban-client set sshd unbanip IP地址

四、演示:libprocesshider 进程隐藏

4.1 简介与原理

libprocesshider是一个专门用于在 Linux 系统下隐藏指定进程的动态链接库。通过拦截系统调用,可让特定进程在pstop等常规进程查看工具中 "凭空消失"。

技术原理:利用 Linux 的LD_PRELOAD预加载机制,将自定义库注入所有由 bash 启动的进程。在系统调用读取/proc目录项时,重载readdir()readdir64()函数,对返回结果进行过滤,直接剔除目标进程名,达成 "隐形" 效果。

安全警示:该技术是恶意软件(如 Rootkit、挖矿木马)常用的 "反检测" 手段。理解它是为了更好地防御,而非用于非法用途。

4.2 环境准备与下载源码

\# 安装编译工具

yum groupinstall "Development Tools"    # CentOS / RHEL

yum install git

apt install build-essential git         # Kali / Ubuntu

\# 下载源码

git clone https://github.com/gianlucaborello/libprocesshider.git

源码结构

libprocesshider/

├── evil\_script.py      # 恶意测试脚本

├── Makefile            # 编译脚本

├── processhider.c      # 隐藏进程的核心代码

└── README.md           # 项目说明

4.3 编译和使用

\# 1. 进入项目目录

cd /root/libprocesshider

\# 2. 把要隐藏的进程名改成目标进程(例如 sleep)

sed -i 's/evil\_script.py/sleep/' processhider.c

\# 3. 编译

make clean

make

\# 4. 启动测试进程

sleep 9999 &

\# 5. 设置环境变量,开启隐藏(当前终端会话生效)

export LD\_PRELOAD=/root/libprocesshider/libprocesshider.so

\# 6. 测试隐藏效果,sleep 进程应消失

ps aux | grep sleep

\# 7. 取消隐藏

unset LD\_PRELOAD

4.4 永久隐藏(系统级)

\# 1. 将库文件复制到系统库目录

cp /root/libprocesshider/libprocesshider.so /usr/local/lib/

\# 2. 编辑系统预加载配置

echo "/usr/local/lib/libprocesshider.so" > /etc/ld.so.preload

\# 3. 重启系统或重新登录后,ps、top 等命令将自动隐藏目标进程

\# 取消永久隐藏

echo "" > /etc/ld.so.preload

rm -f /usr/local/lib/libprocesshider.so

ldconfig

4.5 安全防护建议

  1. 限制 LD_PRELOAD:在/etc/ld.so.preload中配置受信任的库,定期检查该文件是否被篡改

  2. 启用 SELinux / AppArmor:限制预加载机制的滥用

  3. 监控 /proc 目录:异常进程隐藏可能留下痕迹

  4. 使用入侵检测系统:如 AIDE、Tripwire 等,监控系统文件完整性

  5. 定期安全基线检查:检查系统库文件和预加载配置

五、知识小结

知识模块核心内容一句话速记
包管理器RPM 系用 yum/dnf,DEB 系用 apt企业用 yum,桌面用 apt
源码编译./configure → make → make install三步走,装遍天下
SSH 配置/etc/ssh/sshd_config,Port/PermitRootLogin/PasswordAuthentication改配置先备份
公钥认证ssh-keygen 生成 → ssh-copy-id 上传 → chmod 700/600 加固私钥是钥匙,公钥是锁
SSH 加固改端口、禁 root、禁密码、限用户、Fail2ban五板斧锁死 SSH
Fail2ban监控日志 + 自动封禁 IP,jail.local 配置暴力破解的克星
进程隐藏LD_PRELOAD 拦截 readdir,过滤 /proc 目录项黑客的隐身衣
永久隐藏写入 /etc/ld.so.preload,全局生效检查这个文件是防御关键
防护思路限制预加载、SELinux、入侵检测、基线检查多层防御不留死角

免责声明

1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。

2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。

3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。

已在FreeBuf发表 0 篇文章

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)