主题
🛡️ 安全基础概念
安全不是一次性的"打补丁",而是一种持续的习惯。在动手配防火墙、改 SSH 之前,先建立几个核心概念,后面的操作才会知其所以然。
CIA 三要素
信息安全有三大核心目标,取首字母简称 CIA:
| 要素 | 含义 | 举例 |
|---|---|---|
| 机密性 Confidentiality | 数据不被未授权的人看到 | 数据库密码用环境变量存储,而非写死在代码里 |
| 完整性 Integrity | 数据不被未授权篡改 | HTTPS 中间人无法修改传输内容;Git 签名防止代码被伪造 |
| 可用性 Availability | 服务在需要时可以正常访问 | 服务器宕机了,再安全也没用 |
一句话记忆
机密性 = 不该看的人看不了,完整性 = 不该改的人改不了,可用性 = 该用的人用得了。
三者有时会相互制约。比如为了可用性开很多端口,就增加了机密性风险——安全就是在三者之间找到平衡。
威胁模型与攻击面
威胁模型回答一个问题:你在防谁?
- 随机扫描的自动化脚本?
- 竞争对手定向攻击?
- 国家级的 APT(高级持续性威胁)?
威胁不同,投入不同。个人博客站和银行系统的防护策略不可能一样。
攻击面则是可以被攻击利用的入口总和:
- 开放的端口(SSH 22、HTTP 80)
- Web 应用的输入点(表单、API)
- 第三方依赖(NPM 包、Python 库)
- 人为因素(弱密码、社工钓鱼)
提示
安全加固的思路就是 缩小攻击面:不需要的端口就关掉,不给攻击者可乘之机。
纵深防御
不把鸡蛋放在一个篮子里——即使某一层被突破,后面还有防线。
互联网 → 防火墙 → 反向代理 → Web 应用 → 数据库
↓ ↓ ↓ ↓
端口管控 WAF 规则 输入校验 权限隔离每一层独立防御,层层递进。攻击者过了防火墙,还有 WAF;绕过了 WAF,还要面对最小权限的数据库账号。
最小权限原则
只给完成工作所必需的最小权限,多余的坚决不给。
- 数据库给 Web 应用的账号只有 SELECT/INSERT,没有 DROP
- 日常用普通用户,需要时
sudo,不要直接拿 root - nginx 跑在
www-data用户下,不是 root
注意
用 root 跑一切是最常见的坏习惯。一旦应用被攻破,攻击者直接拿下整台服务器。
常见攻击类型概览
| 攻击类型 | 原理 | 典型防御 |
|---|---|---|
| DDoS | 用海量请求打满带宽或资源 | CDN、流量清洗、速率限制 |
| SQL 注入 | 在输入里拼接恶意 SQL | 参数化查询、ORM、输入校验 |
| XSS | 在页面注入恶意脚本 | 输出编码、CSP 头 |
| 中间人 | 拦截/窃听通信数据 | HTTPS、证书校验、HSTS |
| 暴力破解 | 穷举密码尝试登录 | fail2ban、复杂密码、密钥登录 |
| CSRF | 诱导用户点击触发恶意请求 | CSRF Token、SameSite Cookie |
安全工具清单
刚入门的同学,推荐了解这几款行业标准工具:
| 工具 | 用途 | 一句话介绍 |
|---|---|---|
| nmap | 端口扫描 | 发现目标开放了哪些端口和服务,渗透测试第一步 |
| Wireshark | 抓包分析 | 图形化抓包工具,能看到数据包的每一层内容 |
| Burp Suite | Web 安全测试 | HTTP 代理拦截、重放,Web 漏洞挖掘利器 |
| Metasploit | 漏洞利用框架 | 内置大量漏洞 exploit,适合在靶场练手 |
| John the Ripper | 密码破解 | 哈希破解,检测弱密码 |
| tcpdump | 命令行抓包 | Linux 原生抓包工具,服务器上没有 GUI 时的首选 |
法律提醒
上述工具仅限在自己拥有或获得书面授权的系统上使用。未经授权扫描他人服务器属违法行为。
小结
这一节没有一行命令,但概念比命令更重要。理解 CIA、攻击面、纵深防御和最小权限,后面每一章的操作你都能自动关联到"我在保护什么、在防谁"。
下一步,从最常见的防线开始——防火墙配置。
🎯 本章要点
- 完整性 Integrity 确保数据不被未授权篡改;机密性 = 不被未授权看到;
- 文章中列出的常见攻击类型包含 DDoS、SQL 注入、XSS、中间人、暴力破解
- 攻击面是可被攻击利用的入口总和,安全加固的思路就是缩小攻击面
- nmap 是端口扫描工具
- 纵深防御不把鸡蛋放一个篮子里——互联网→防火墙→反向代理→Web应用→数据库
加载练习题中...