网安筑基:搞懂Linux安全,从这7个核心模块开始
网络安全筑基:搞懂Linux安全,从这7个核心模块开始
日期:2026年4月22日
引子:一个真实的故事
某中型互联网公司,运维小哥图方便,给云服务器设置了
root/123456的密码,同时把SSH端口改为默认的22。三个月后,安全巡检发现服务器对外发送了大量异常流量——被人用弱口令爆破进来了。肉鸡卖了半年,删数据又花了三周。事后复盘,所有"没想到"都指向同一个问题:对Linux系统安全的理解太浅。这个故事不是个例。Linux是全球80%以上服务器的操作系统,也是网络安全攻防的"主战场"。无论你未来做渗透测试、安全运维还是安全开发,Linux安全都是绕不开的基石。
一、理解Linux:从"开源"二字说起
什么是Linux
Linux由林纳斯·托瓦兹于1991年发布,最初只是一个内核——一块管理硬件、调度资源的核心代码。内核本身不是操作系统,真正可用的系统是"内核 + 配套软件"打包在一起的完整发行版。
打个比方:内核相当于发动机的引擎,发行版则是把发动机、车身、方向盘组装好之后能开的车。
开源的意义不只是"免费":
- 源代码全球开发者共同维护,漏洞修复速度远快于闭源系统
- 任何人都可以审计代码,发现问题可以自己修或者报告社区
- 安全机制更透明,默认配置偏"安全"而非"易用"
主流发行版一览
| 发行版 | 特点 | 适用场景 |
|---|---|---|
| Ubuntu | 桌面友好、生态完善、社区活跃 | 入门学习、日常使用 |
| Kali Linux | 预装大量安全工具(MSF、Hydra等) | 网络安全学习、渗透测试 |
| CentOS / Rocky | 稳定、兼容RedHat、企业级 | 服务器部署、运维 |
| Debian | 极度稳定、社区驱动 | 高可靠性服务器 |
对于网络安全学习,Kali Linux是标配,它预装了几乎所有主流渗透测试工具,拿来即用。但要注意:Kali只是工具平台,真正的能力来自对Linux系统本身的理解。
Linux vs Windows:几个关键差异
| 维度 | Windows | Linux |
|---|---|---|
| 目录结构 | C盘/D盘,盘符驱动 | 根目录/下统一树状结构,无盘符 |
| 操作方式 | 图形化界面为主 | 命令行操作为核心 |
| 权限模型 | UAC辅助,普通用户也能用得很顺手 | 严格root权限,普通用户处处受限 |
| 默认开放 | 图形界面默认开启 | 服务器通常无图形,纯命令行 |
| 资源占用 | 内核+图形界面,资源消耗大 | 无冗余组件,极低占用 |
Linux核心目录速记:
/etc— 系统级配置文件(用户、网络、服务配置都在这里)/var/log— 日志目录(系统运行记录,排查问题的第一手资料)/home— 普通用户的主目录/root— root用户的主目录(系统最高权限用户)/tmp— 临时文件目录,系统重启后通常清空/usr— 用户级应用程序和文档,可理解为"软件仓库"
二、命令行基础:这是你与Linux对话的唯一语言
为什么要先学命令行
Windows你可能习惯了点点鼠标。Linux不一样——尤其是服务器环境,几乎没有图形界面,所有操作都要靠命令完成。命令行不仅是操作方式,更是理解Linux系统运作逻辑的窗口。
核心快捷键(记住这4个就够了)
| 快捷键 | 作用 |
|---|---|
| Tab | 自动补全命令或路径,输入错误减少90% |
| Ctrl + C | 强制终止当前命令(卡住的时候常用) |
| Ctrl + L | 清屏 |
| ↑ / ↓ | 翻看历史命令 |
文件与目录操作命令
| 命令 | 功能 | 示例 |
|---|---|---|
pwd |
显示当前目录路径 | pwd |
ls |
列出目录内容 | ls -l(详细列表)/ls -a(含隐藏文件) |
cd |
切换目录 | cd /etc(绝对路径)/cd ..(返回上级) |
mkdir |
创建目录 | mkdir test/mkdir -p a/b/c(递归创建) |
touch |
创建空文件 | touch readme.txt |
cp |
复制文件/目录 | cp a.txt /tmp/cp -r folder/ /tmp |
mv |
移动或重命名 | mv old.txt new.txt |
rm |
删除(慎用!) | rm -rf /tmp/old/(强制删除目录) |
cat |
查看文件内容 | cat /etc/passwd |
grep |
文本搜索 | grep "error" /var/log/syslog |
tail -f |
实时追踪日志 | tail -f /var/log/syslog |
⚠️ 操作禁忌:
rm -rf /这条命令会递归强制删除根目录下的一切,系统直接报废。操作前养成pwd确认当前位置的习惯。
三、权限管理:Linux安全的核心逻辑
权限是什么
Linux的核心安全哲学是“最小权限原则”——每个用户、每个程序只给它完成工作所必需的最小权限,不多给。
权限表示规则
用ls -l查看文件时,每行开头有一串类似-rwxr-xr--的字符,这就是权限标识,共10位:
- rwx r-x r--
│ │ │ │ │
│ │ │ │ └── 其他用户权限
│ │ │ └───── 所属组权限
│ │ └──────── 所有者权限
│ └────────── 执行权限 (x)
└───────────── 写权限 (w)
第1位是文件类型:-表示普通文件,d表示目录,l表示链接。
rwx的含义:
- r(Read):读权限,文件可查看内容,目录可列出列表
- w(Write):写权限,文件可修改,目录可增删文件
- x(Execute):执行权限,文件可作为程序运行,目录可进入
权限的数字表示法
每个权限对应一个数字:r=4、w=2、x=1,三者相加得到权限值。
| 权限值 | 含义 | 场景 |
|---|---|---|
| 777 | rwxrwxrwx | 完全开放(极度危险) |
| 755 | rwxr-xr-x | 所有者完全控制,其他人读和执行 |
| 644 | rw-r–r– | 文件:所有者可读写,其他只读 |
| 600 | rw------- | 私密文件,仅所有者可见 |
修改权限:chmod
chmod 755 filename # 数字方式:755 = rwxr-xr-x
chmod u+x filename # 给所有者添加执行权限
chmod g-x filename # 取消所属组的执行权限
chmod -R 700 /data # 递归修改目录及子文件
修改所有者:chown
chown user:group filename # 修改文件的所有者和所属组
chown -R www-data:www-data /var/www # 递归修改网站目录归属
实操建议:生产环境中,非必要不给777权限。如果某个程序报错"权限不够",优先检查文件所有者是否正确,而不是直接改成777。
四、用户与用户组:权限管控的基本单元
用户(user)
Linux中的每个用户都有一个唯一标识:UID。
| UID范围 | 用户类型 | 说明 |
|---|---|---|
| 0 | root | 系统最高权限,可执行任何操作 |
| 1-999 | 系统用户 | 服务进程专用,如www-data、mysql |
| ≥1000 | 普通用户 | 手动创建的日常使用账户 |
用户组(group)
用户组是权限的"批量管理工具"。一个用户可以属于多个组,组内成员自动继承该组的权限。
- 主组(Primary Group):用户创建文件时默认归属的组
- 附加组(Supplementary Group):用户可加入的额外权限组
用户管理命令
useradd -m username # 创建用户(-m 自动创建主目录)
passwd username # 设置用户密码
su username # 切换到目标用户
sudo su # 切换到root用户(需当前用户在sudoers中)
userdel -r username # 删除用户及其主目录
groupadd groupname # 创建用户组
usermod -g groupname username # 将用户加入某组
关键配置文件
/etc/passwd— 用户基本信息(用户名:密码占位符:UID:GID:说明:主目录:登录shell)/etc/shadow— 用户密码的加密存储(仅root可读)/etc/sudoers— sudo权限配置(控制哪些用户可以用sudo提升权限)
五、网络配置基础:让Linux"上网"
查看与测试网络
ifconfig # 查看网卡配置和IP地址
ip addr # 同上,更新的命令
ping -c 4 baidu.com # 测试网络连通性(-c指定ping次数)
netstat -tulnp # 查看正在监听的端口和对应进程
ss -tulnp # 同上,效率更高
软件安装:包管理器
Linux通过包管理器安装软件,类似手机应用商店。
| 系列 | 发行版 | 命令示例 |
|---|---|---|
| Debian系 | Ubuntu、Kali | apt update / apt install openssh-server |
| RedHat系 | CentOS、Rocky | yum install openssh-server |
apt update # 更新软件包索引
apt install nginx # 安装软件
apt remove nginx # 卸载软件
apt upgrade # 升级所有已安装软件
SSH:远程管理的入口
SSH(Secure Shell)类似于Windows的远程桌面,但以命令行操作为主。它是管理Linux服务器最常用的方式,也是网络安全攻防中的高频目标。
apt install openssh-server # 安装SSH服务
nano /etc/ssh/sshd_config # 编辑SSH配置文件
service ssh restart # 重启SSH服务
常见配置项:
PermitRootLogin yes/no— 是否允许root用户远程登录PasswordAuthentication yes/no— 是否允许密码认证
六、攻防实战:SSH与后门用户
⚠️ 说明:本节从防御视角讲解,重点是理解攻击原理、建立防范意识,不涉及具体攻击步骤的展开。
SSH暴力破解:为什么弱口令是头号杀手
SSH是远程管理Linux的必经之路,也是攻击者最常瞄准的目标之一。暴力破解的逻辑很简单:如果服务器的SSH密码足够弱,攻击者用工具自动尝试大量密码组合,总有一个能中。
弱口令爆破的本质是"信息差"攻击:利用人们在安全与便利之间倾向便利的心理。
防御手段:
- 设置强密码:长度≥12位,包含大小写字母+数字+特殊符号
- 禁用root远程登录:
PermitRootLogin no - 使用密钥登录:生成SSH密钥对,禁用密码认证,完全杜绝暴力破解
- 修改默认端口:SSH默认端口22,改为高位端口(如22222)可以减少大量扫描
- 配置fail2ban:自动封禁多次登录失败的IP
后门用户:隐蔽的长期控制
拿到服务器权限后,攻击者往往会植入一个"后门用户"——一个看起来正常、但只有攻击者知道的账户。这样即使管理员改了密码,攻击者依然能随时进来。
防御视角的应对:
- 定期检查
/etc/passwd,关注陌生的UID=0用户(正常情况UID=0只有root) - 用命令筛选所有UID=0的用户:
awk -F: '$3==0{print $1}' /etc/passwd - 关注非正常时间段的登录日志
七、应急响应:日志是服务器的"监控录像"
当怀疑服务器被入侵,日志是第一排查入口。
核心日志文件
| 日志路径 | 记录内容 |
|---|---|
/var/log/syslog |
系统级日志:启动信息、服务状态、错误报告 |
/var/log/auth.log(或/var/log/secure) |
认证日志:SSH登录、sudo操作、用户认证 |
/var/log/nginx/access.log |
Web服务访问日志 |
高效查看方法
cat /var/log/auth.log # 查看认证日志全文
grep "Failed password" /var/log/auth.log # 筛选登录失败记录(暴破痕迹)
grep "Accepted" /var/log/auth.log # 筛选登录成功的记录
tail -f /var/log/syslog # 实时追踪系统日志
journalctl -u sshd # 查看SSH服务的日志
高级审计工具:auditd
Linux内核级审计工具,可记录文件访问、命令执行等行为,日志不可被普通手段删除,适合高安全场景。
apt install auditd # 安装
systemctl start auditd # 启动
auditctl -w /usr/sbin/useradd -p x -k useradd_exec # 监控useradd命令执行
ausearch -k useradd_exec # 查询useradd相关的审计记录
入侵排查清单
| 排查项 | 核心命令 | 看什么 |
|---|---|---|
| 账户 | cat /etc/passwd、awk -F: '$3==0{print $1}' /etc/passwd |
陌生账户、非root的UID=0账户 |
| 进程 | ps -ef、top |
名字异常、CPU/内存占用过高的进程 |
| 端口 | netstat -tulnp、ss -tulnp |
陌生对外监听端口 |
| 计划任务 | crontab -l、cat /etc/crontab |
异常定时任务、陌生脚本 |
| 启动项 | ls /etc/init.d/ |
不明启动脚本 |
| 服务 | systemctl list-unit-files --type=service |
开机自启的陌生服务 |
八、系统加固:六步建立基本防线
第一步:账户加固
userdel 陌生用户名 # 删除无关账户
passwd root # 给root设强密码
# 编辑SSH配置,禁止root远程登录
nano /etc/ssh/sshd_config
# 找到 PermitRootLogin yes,改为 no
systemctl restart sshd
第二步:防火墙加固
| 功能 | Ubuntu (ufw) | CentOS (firewalld) |
|---|---|---|
| 启用防火墙 | ufw enable |
systemctl start firewalld |
| 允许SSH | ufw allow 22/tcp |
firewall-cmd --permanent --add-port=22/tcp |
| 允许HTTP/HTTPS | ufw allow 80/tcp / ufw allow 443/tcp |
同上端口规则 |
| 默认拒绝入站 | ufw default deny incoming |
firewall-cmd --permanent --set-default-zone=drop |
| 查看状态 | ufw status |
firewall-cmd --list-all |
第三步:关闭不必要的服务
systemctl disable bluetooth # 关闭蓝牙服务
systemctl stop cups # 关闭打印服务(无打印机时)
ss -tulnp # 查看所有监听端口,关闭不需要的服务
第四步:定期更新系统
# Ubuntu
apt update && apt upgrade -y && apt full-upgrade -y
reboot
# CentOS
yum update -y && yum upgrade -y
reboot
第五步:限制文件权限
chmod 700 /root # 仅root可访问root主目录
chmod 600 /etc/shadow # 仅root可读密码文件
chmod 644 /etc/passwd # 所有用户可读passwd文件(必要)
第六步:启用日志审计
安装并配置auditd,监控关键命令和文件,建立完整的审计追踪链。
九、攻防思维:理解对立才能真正防御
攻击链视角
真实的入侵通常不是一步到位的:
侦察(Recon)→ 突破入口(Initial Access)→ 权限提升(Privilege Escalation)
→ 持久化(Persistence)→ 横向移动(Lateral Movement)→ 目标达成(Exfiltration/Impact)
- 侦察阶段:攻击者扫描端口、收集信息,寻找薄弱点
- 突破入口:利用弱口令、未修复的漏洞进入系统
- 权限提升:从普通用户升级到root
- 持久化:植入后门用户、计划任务、服务伪装,确保"随时能回来"
- 横向移动:以当前服务器为跳板,渗透内网其他机器
- 目标达成:窃取数据、部署勒索软件、挖矿等
防御链视角
每个攻击阶段都有对应的防御手段:
| 攻击阶段 | 防御手段 |
|---|---|
| 侦察 | 关闭无用端口、隐藏版本信息 |
| 突破入口 | 强密码、禁用root登录、修改默认端口、及时打补丁 |
| 权限提升 | 最小权限原则、SELinux/AppArmor |
| 持久化 | 定期查账户/计划任务/启动项、启用auditd |
| 横向移动 | 网络分段、防火墙严格控流出方向 |
| 目标达成 | 数据备份、蜜罐诱捕、异常流量监控 |
审计思维的价值
对于有审计背景的同学来说,理解这个框架并不难——渗透测试本质上是一次有计划的"内部审计",只不过审计员是攻击者视角,报告读者是防御者。渗透测试报告的逻辑结构(目标→方法→发现→建议),与审计报告的逻辑高度一致。安全审计(Security Audit)正是这两个领域的交汇点。
十、个人安全行动清单
以下是可以立刻执行的操作:
账户与密码
- 检查root密码强度,不够强的立刻改
- 禁用root远程SSH登录,改用普通用户+sudo
- 检查
/etc/passwd是否有陌生账户
访问控制
- 配置防火墙,只开放必要端口(SSH、Web服务等)
- 考虑改SSH默认端口22为高位端口
- 禁止密码登录,改用SSH密钥对
系统维护
- 制定系统更新计划,至少每月一次
- 安装并启用
auditd,监控关键命令 - 确认日志正常记录且有足够存储空间
监控与响应
- 熟悉
/var/log/auth.log的查看方法 - 了解如何用
journalctl追踪服务状态 - 建立异常登录的发现和响应流程
总结:网络安全筑基的核心逻辑
学习Linux安全,本质上是理解**“攻防不对称”**:
- 攻击者只需要找到一个漏洞就能突破
- 防御者需要堵住所有可能的入口
这看起来不公平,但恰恰是网络安全的魅力所在。掌握Linux基础、理解权限模型、熟悉日志分析、建立防御体系——这些"笨功夫"才是真正的护城河。
技术会过时,工具会更新,但系统逻辑、安全原理、攻防思维是穿越周期的底层能力。
本文整理自网络安全课程资料,内容仅供学习与安全意识提升使用。请勿将相关知识用于未经授权的系统测试,遵守法律法规。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)