引子:一个真实的故事
某中型互联网公司,运维小哥图方便,给云服务器设置了root/123456的密码,同时把SSH端口改为默认的22。三个月后,安全巡检发现服务器对外发送了大量异常流量——被人用弱口令爆破进来了。肉鸡卖了半年,删数据又花了三周。事后复盘,所有"没想到"都指向同一个问题:对Linux系统安全的理解太浅。
这个故事不是个例。Linux是全球80%以上服务器的操作系统,也是网络安全攻防的"主战场"。无论你未来做渗透测试、安全运维还是安全开发,Linux安全都是绕不开的基石。
一、理解Linux:从"开源"二字说起
什么是Linux
Linux由林纳斯·托瓦兹于1991年发布,最初只是一个内核——一块管理硬件、调度资源的核心代码。内核本身不是操作系统,真正可用的系统是"内核 + 配套软件"打包在一起的完整发行版。
打个比方:内核相当于发动机的引擎,发行版则是把发动机、车身、方向盘组装好之后能开的车。
开源的意义不只是"免费":
- 源代码全球开发者共同维护,漏洞修复速度远快于闭源系统
- 任何人都可以审计代码,发现问题可以自己修或者报告社区
主流发行版一览
| | |
|---|
| Ubuntu | | |
| Kali Linux | | |
| CentOS / Rocky | | |
| Debian | | |
对于网络安全学习,Kali Linux是标配,它预装了几乎所有主流渗透测试工具,拿来即用。但要注意:Kali只是工具平台,真正的能力来自对Linux系统本身的理解。
Linux vs Windows:几个关键差异
Linux核心目录速记:
/etc — 系统级配置文件(用户、网络、服务配置都在这里)/var/log — 日志目录(系统运行记录,排查问题的第一手资料)/home — 普通用户的主目录/root — root用户的主目录(系统最高权限用户)/tmp — 临时文件目录,系统重启后通常清空/usr — 用户级应用程序和文档,可理解为"软件仓库"
二、命令行基础:这是你与Linux对话的唯一语言
为什么要先学命令行
Windows你可能习惯了点点鼠标。Linux不一样——尤其是服务器环境,几乎没有图形界面,所有操作都要靠命令完成。命令行不仅是操作方式,更是理解Linux系统运作逻辑的窗口。
核心快捷键(记住这4个就够了)
文件与目录操作命令
| | |
|---|
pwd | | pwd |
ls | | ls -l(详细列表)/ls -a(含隐藏文件) |
cd | | cd /etc(绝对路径)/cd ..(返回上级) |
mkdir | | mkdir test |
touch | | touch readme.txt |
cp | | cp a.txt /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,三者相加得到权限值。
修改权限:chmod
chmod 755 filename # 数字方式:755 = rwxr-xr-xchmod 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。
用户组(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通过包管理器安装软件,类似手机应用商店。
| | |
|---|
| | apt update / apt install openssh-server |
| | 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密码足够弱,攻击者用工具自动尝试大量密码组合,总有一个能中。
弱口令爆破的本质是"信息差"攻击:利用人们在安全与便利之间倾向便利的心理。
防御手段:
- 设置强密码
- 禁用root远程登录
- 使用密钥登录
- 修改默认端口SSH默认端口22,改为高位端口(如22222)可以减少大量扫描
- 配置fail2ban
后门用户:隐蔽的长期控制
拿到服务器权限后,攻击者往往会植入一个"后门用户"——一个看起来正常、但只有攻击者知道的账户。这样即使管理员改了密码,攻击者依然能随时进来。
防御视角的应对:
- 定期检查
/etc/passwd,关注陌生的UID=0用户(正常情况UID=0只有root) - 用命令筛选所有UID=0的用户:
awk -F: '1}' /etc/passwd
七、应急响应:日志是服务器的"监控录像"
当怀疑服务器被入侵,日志是第一排查入口。
核心日志文件
| |
|---|
/var/log/syslog | |
/var/log/auth.log | |
/var/log/nginx/access.log | |
高效查看方法
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、 | |
| 进程 | ps -ef、top | |
| 端口 | netstat -tulnp、 | |
| 计划任务 | crontab -l、 | |
| 启动项 | ls /etc/init.d/ | |
| 服务 | systemctl list-unit-files --type=service | |
八、系统加固:六步建立基本防线
第一步:账户加固
userdel 陌生用户名 # 删除无关账户passwd root # 给root设强密码# 编辑SSH配置,禁止root远程登录nano /etc/ssh/sshd_config# 找到 PermitRootLogin yes,改为 nosystemctl restart sshd
第二步:防火墙加固
| | |
|---|
| ufw enable | systemctl start firewalld |
| ufw allow 22/tcp | firewall-cmd --permanent --add-port=22/tcp |
| ufw allow 80/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 # 查看所有监听端口,关闭不需要的服务
第四步:定期更新系统
# Ubuntuapt update && apt upgrade -y && apt full-upgrade -yreboot# CentOSyum update -y && yum upgrade -yreboot
第五步:限制文件权限
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登录、修改默认端口、及时打补丁 |
| |
| |
| |
| |
审计思维的价值
对于有审计背景的同学来说,理解这个框架并不难——渗透测试本质上是一次有计划的"内部审计",只不过审计员是攻击者视角,报告读者是防御者。渗透测试报告的逻辑结构(目标→方法→发现→建议),与审计报告的逻辑高度一致。安全审计(Security Audit)正是这两个领域的交汇点。
十、个人安全行动清单
以下是可以立刻执行的操作:
账户与密码
- 禁用root远程SSH登录,改用普通用户+sudo
访问控制
- 配置防火墙,只开放必要端口(SSH、Web服务等)
系统维护
监控与响应
总结:网络安全筑基的核心逻辑
学习Linux安全,本质上是理解**“攻防不对称”**:
这看起来不公平,但恰恰是网络安全的魅力所在。掌握Linux基础、理解权限模型、熟悉日志分析、建立防御体系——这些"笨功夫"才是真正的护城河。
技术会过时,工具会更新,但系统逻辑、安全原理、攻防思维是穿越周期的底层能力。
本文整理自网络安全课程资料,内容仅供学习与安全意识提升使用。请勿将相关知识用于未经授权的系统测试,遵守法律法规。