一、安全防护概述

✅ 目标:CIA 三原则

  • Confidentiality(机密性):防止未授权访问(如加密、权限控制)
  • Integrity(完整性):防止数据篡改(如校验和、数字签名)
  • Availability(可用性):保障服务持续可用(如 DDoS 防护、高可用)

🔒 常见威胁类型

类型 说明
信息泄露 敏感配置、日志暴露
未授权访问 弱口令、开放高危端口
拒绝服务(DoS/DDoS) 耗尽资源导致服务不可用
中间人攻击(MITM) 窃听或篡改通信
漏洞利用 利用软件缺陷(如 Log4j、Heartbleed)

🛡️ 防护策略(纵深防御)

  1. 网络层:防火墙、ACL、VPC 隔离
  2. 主机层:系统加固、最小权限
  3. 应用层:WAF、输入校验、HTTPS
  4. 监控层:日志审计、IDS/IPS、异常告警

二、Nmap 扫描 —— 网络侦察利器

nmap 用于发现主机、端口、服务版本、操作系统等。

🔍 常用命令

场景 命令 说明
快速扫描存活主机 nmap -sn 192.168.1.0/24 Ping 扫描(无端口探测)
全端口扫描 nmap -p- 192.168.1.10 扫描 65535 个端口
服务与版本识别 nmap -sV 192.168.1.10 探测服务版本(如 nginx/1.18)
操作系统识别 nmap -O 192.168.1.10 估算 OS 类型
脚本扫描(高级) nmap --script=vuln 192.168.1.10 调用 NSE 脚本检测漏洞
规避防火墙 nmap -f -D RND:5 192.168.1.10 分片 + 诱饵 IP(谨慎使用)

⚠️ 安全建议

  • 禁止对外网随意扫描(可能违法);
  • 内部定期扫描,关闭非必要端口(如 22、3306 不应公网暴露);
  • 结合 masscan(高速) + nmap(精准)做资产测绘。

三、Tcpdump 抓包 —— 命令行抓包神器

轻量级、无图形界面,适合服务器环境。

📦 基本语法

tcpdump [选项] [过滤表达式]

🔧 常用选项

选项 作用
-i eth0 指定网卡
-nn 不解析主机名/端口名(加快速度)
-c 10 抓 10 个包后退出
-w file.pcap 保存为 pcap 文件(供 Wireshark 分析)
-A 以 ASCII 显示包内容(适合 HTTP)
-X 十六进制 + ASCII 显示

🎯 实用过滤示例

# 抓取目标 IP 的所有流量
tcpdump -i eth0 host 192.168.1.100

# 抓取 80 端口的 HTTP 流量
tcpdump -i eth0 port 80

# 抓取 TCP SYN 包(连接请求)
tcpdump 'tcp[tcpflags] & tcp-syn != 0'

# 抓取 DNS 查询
tcpdump -i any port 53

# 保存到文件(后台运行)
tcpdump -i eth0 -w /tmp/debug.pcap &

💡 提示:生产环境抓包建议加 -ctimeout,避免磁盘爆满。


四、Wireshark 抓包 —— 图形化深度分析

功能强大,支持协议解析、流追踪、统计图表。

🔍 核心功能

  1. 过滤器
    • Capture Filter(抓包时):同 tcpdump 语法
    • Display Filter(显示时):http, ip.addr == 192.168.1.1, tcp.flags.syn == 1
  2. Follow Stream:右键 → "Follow → TCP Stream" 查看完整会话
  3. Statistics:分析协议分布、会话数、吞吐量
  4. 导出对象:File → Export Objects → HTTP 可提取图片/JS/CSS

🕵️‍♂️ 安全分析场景

  • 检测明文传输(HTTP Basic Auth、FTP 密码)
  • 分析异常连接(大量 SYN、ICMP flood)
  • 追踪恶意 C2 通信(DNS 隧道、非常规端口)

✅ 建议:将 tcpdump 抓的 .pcap 文件导入 Wireshark 做深度分析。


五、Nginx 服务安全加固

🔐 1. 隐藏版本号

server_tokens off;

🔐 2. 限制请求方法

if ($request_method !~ ^(GET|HEAD|POST)$ ) {
    return 405;
}

🔐 3. 防止目录遍历

location ~ /\. {
    deny all;
    access_log off;
    log_not_found off;
}

🔐 4. 限制客户端行为

# 限制连接数
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
limit_conn conn_limit 10;

# 限制请求速率(防 CC 攻击)
limit_req_zone $binary_remote_addr zone=req_limit:10m rate=1r/s;
limit_req zone=req_limit burst=5 nodelay;

🔐 5. 启用 HTTPS + 安全头

server {
    listen 443 ssl http2;
    ssl_certificate /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;
    
    # 安全头
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
    add_header Content-Security-Policy "default-src 'self';" always;
}

🔐 6. 禁用不必要的模块

编译时移除 --without-http_autoindex_module 等。


六、Linux 系统安全加固

🔒 1. 账户与认证安全

  • 禁用 root 远程登录:PermitRootLogin no(/etc/ssh/sshd_config)
  • 使用密钥登录,禁用密码:PasswordAuthentication no
  • 设置强密码策略(pwquality)+ 定期更换
  • 删除无用账户:userdel games

🔒 2. 权限最小化

  • 应用以普通用户运行(如 nginx、mysql)
  • 敏感文件权限:chmod 600 /etc/shadow, chmod 644 /etc/passwd

🔒 3. 防火墙(iptables/nftables/firewalld)

# 仅开放必要端口
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload

🔒 4. 日志与审计

  • 启用 rsyslog 远程日志(防本地删除)
  • 安装 auditd 监控关键文件:
    auditctl -w /etc/passwd -p wa -k passwd_changes
    

🔒 5. 内核参数加固(/etc/sysctl.conf)

# 防 SYN Flood
net.ipv4.tcp_syncookies = 1

# 禁用 ICMP 广播
net.ipv4.icmp_echo_ignore_broadcasts = 1

# 限制地址反向路径验证
net.ipv4.conf.all.rp_filter = 1

生效:sysctl -p

🔒 6. 定期更新与漏洞扫描

  • yum update / apt upgrade 定期执行
  • 使用 lynisOpenSCAP 做安全基线检查

✅ 总结:安全加固 Checklist

层级 关键动作
网络 关闭非必要端口,部署防火墙
主机 最小权限、禁用 root 登录、内核加固
应用 隐藏版本、限流、HTTPS、安全头
监控 日志集中、异常告警、定期扫描
应急 备份、快照、入侵响应流程

安全不是功能,而是持续的过程。
建议结合 自动化工具(如 Ansible 安全 playbook、Falco 运行时防护)实现 DevSecOps。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐