运维转安全运维:5 个复用命令 + 1 个 ELK 实战,1 周上手

在这里插入图片描述

“做了 3 年 Linux 运维,天天用grep查日志、iptables配端口,想转安全运维却不知道从哪切入;听说要学 Wazuh、Splunk,担心又要从头学新工具;面试时被问‘怎么找服务器里的恶意进程’,只会说‘用 ps 看进程’,说不出安全分析思路”—— 这是多数运维转型安全运维的典型困境。

其实安全运维的核心能力,早已藏在你日常的运维操作里:你用grep查应用日志,稍作调整就能分析攻击日志;你用iptables配端口访问,改改规则就能封禁恶意 IP;你部署过 ELK 收集业务日志,换个日志源就是安全日志分析平台。本文帮你把运维技能 “升级” 为安全运维能力,5 个复用命令 + 1 个 ELK 实战,1 周就能上手,不用学复杂新工具。

一、先搞懂:运维转安全运维的 “天然优势”

你不用从零开始,这些运维技能就是你的 “安全敲门砖”:

  • 系统熟度:懂 Linux 文件权限、进程管理、服务配置,能快速定位 “异常文件”“可疑进程”(安全运维的核心场景);

  • 工具复用:会用 ELK、Prometheus 等监控工具,转安全时只需换 “日志源”(从业务日志到安全日志)、改 “分析维度”(从性能指标到攻击行为);

  • 故障思维:日常排查 “应用宕机”“网络不通” 的逻辑,和安全运维 “排查入侵事件” 的思路高度一致(都是 “发现异常→定位原因→解决问题”)。

安全运维不是 “全新领域”,而是运维的 “安全方向深化”—— 你缺的不是技能,而是 “安全场景的技能迁移”。

二、5 个复用命令:从 “日常运维” 到 “安全分析”

这 5 个命令你每天都用,但在安全场景下只需调整参数或思路,就能实现 “漏洞排查、恶意行为溯源、攻击拦截”,每个命令都附 “运维日常用法” vs “安全运维用法” 对比,帮你快速切换思维。

命令 1:grep(日志分析→安全日志溯源)
运维日常用法
  • 查应用错误日志:grep “ERROR” /var/log/tomcat/catalina.out

  • 统计关键词出现次数:grep -c “Timeout” /var/log/nginx/access.log

安全运维用法(核心场景:找攻击 IP、定位入侵痕迹)
  1. 找 SSH 暴力破解 IP(分析auth.log,运维熟悉的系统日志):
# 1. 筛选登录失败记录,提取IP(Failed password是关键词)
grep "Failed password" /var/log/auth.log | awk '{print $11}' > failed_ips.txt
# 2. 统计IP出现次数(降序,找出攻击最频繁的IP)
sort failed_ips.txt | uniq -c | sort -nr | head -10
# 输出示例:203 192.168.1.100(该IP尝试登录203次,大概率是攻击IP)

  1. 找 Web 后门文件痕迹(分析 Web 访问日志,找可疑路径):
# 筛选含webshell、phpmyadmin等关键词的请求(运维熟悉的Nginx日志)
grep -E "webshell|phpmyadmin|eval\(" /var/log/nginx/access.log | awk '{print $1,$7}'
# 输出示例:10.0.0.5 /upload/webshell.php(该IP访问可疑路径,需重点排查)

实战价值
  • 不用学新工具,用grep+awk+sort就能完成 “攻击 IP 识别”,比用商业扫描器更灵活,适合应急响应场景。
命令 2:ps(进程管理→恶意进程排查)
运维日常用法
  • 查指定进程:ps -ef | grep tomcat

  • 看进程资源占用:ps aux --sort=-%cpu | head -5(按 CPU 降序)

安全运维用法(核心场景:查挖矿进程、木马进程)
  1. 查 CPU / 内存高的可疑进程(挖矿进程常占满 CPU):
# 1. 按CPU降序,排除已知正常进程(如ssh、nginx),找陌生进程
ps aux --sort=-%cpu | grep -vE "ssh|nginx|mysql|java" | head -10
# 2. 查看可疑进程的完整命令行(避免进程名伪装,如伪装成"system")
ps auxww | grep 12345  # 12345是可疑进程PID,ww显示完整命令
# 输出示例:root 12345 99.0 5.0 100000 50000 ? R 10:00 2h ./mine.sh -o http://挖矿地址 (确认是挖矿进程)

  1. 查进程关联的文件路径(定位恶意文件):
# 用/proc文件系统找进程对应的可执行文件(运维熟悉的系统特性)
ls -l /proc/12345/exe  # 12345是PID,exe是符号链接,指向进程文件
# 输出示例:lrwxrwxrwx 1 root root 0 11月 20 10:00 /proc/12345/exe -> /tmp/mine.sh(恶意文件路径)

实战价值
  • 运维熟悉ps,但安全场景更关注 “陌生进程 + 完整命令 + 文件路径”,这三步能快速定位挖矿、木马等恶意行为,是安全运维的 “基础操作”。
命令 3:netstat/ss(网络监控→异常连接排查)
运维日常用法
  • 查端口占用:netstat -tuln | grep 8080 或 ss -tuln | grep 8080

  • 查进程对应的端口:netstat -tulnp | grep tomcat

安全运维用法(核心场景:找对外恶意连接、未授权端口)
  1. 查对外可疑连接(木马常主动连接控制端):
# 1. 查所有ESTABLISHED状态的连接,排除内网IP(假设内网是192.168.1.0/24)
netstat -antp | grep ESTABLISHED | grep -v "192.168.1."
# 输出示例:tcp 0 0 10.0.0.10:54321 203.0.113.10:8080 ESTABLISHED 12345/./backdoor(对外异常连接)
# 2. 用ss更高效(大并发场景):
ss -antp | grep ESTAB | grep -v "192.168.1."

  1. 查未授权开放的高危端口(如 3389、445,易被攻击):
# 查监听0.0.0.0(对公网开放)的高危端口(3389 RDP、445 SMB)
ss -tuln | grep -E ":3389|:445" | grep "0.0.0.0"
# 若输出结果,说明端口对公网开放,需用iptables封禁

实战价值
  • 运维每天查端口,安全场景只需多关注 “对外连接 + 非内网 IP + 高危端口”,就能发现木马连接、端口暴露等安全风险,操作零门槛。
命令 4:iptables(端口控制→恶意 IP 封禁)
运维日常用法
  • 开放端口:iptables -A INPUT -p tcp --dport 80 -j ACCEPT

  • 端口转发:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

安全运维用法(核心场景:封禁攻击 IP、限制高危端口访问)
  1. 临时封禁 SSH 暴力破解 IP(结合前面grep找出的攻击 IP):
# 封禁192.168.1.100(攻击IP),拒绝所有连接
iptables -A INPUT -s 192.168.1.100 -j DROP
# 若只需封禁SSH端口(22),更精准:
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j DROP

  1. 限制高危端口仅内网访问(如 MySQL 3306,只允许内网 IP 连接):
# 先拒绝所有IP访问3306
iptables -A INPUT -p tcp --dport 3306 -j DROP
# 再允许内网192.168.1.0/24访问3306
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 3306 -j ACCEPT

  1. 保存规则(避免重启失效,运维熟悉的操作)
# CentOS:
service iptables save
# Ubuntu:
iptables-save > /etc/iptables/rules.v4

实战价值
  • iptables是运维的 “老熟人”,转安全后直接用它做 “攻击拦截”,不用学新的 WAF 规则,应急响应时能快速止损。
命令 5:find(文件管理→恶意文件定位)
运维日常用法
  • 找指定文件:find /var/log -name “*.log”

  • 按修改时间找文件:find /tmp -mtime -1(找 1 天内修改的文件)

安全运维用法(核心场景:找 webshell、挖矿脚本、隐藏文件)
  1. 找近期新增的可执行文件(恶意脚本常放 /tmp、/var/tmp):
# 找/tmp目录下1天内新增的可执行文件(+x权限)
find /tmp -type f -mtime -1 -perm +x -exec ls -l {} \;
# 输出示例:-rwxr-xr-x 1 root root 1024 11月 20 09:30 /tmp/mine.sh(可疑可执行文件,需检查)

  1. 找含恶意代码的文件(如 webshell 中的 eval、assert 函数):
# 递归查找/var/www目录下含"eval("、"assert("的.php文件(webshell特征)
find /var/www -name "*.php" -exec grep -lE "eval\(|assert\(|base64_decode" {} \;
# 输出示例:/var/www/upload/webshell.php(找到可疑webshell文件)

  1. 找隐藏文件(文件名以。开头,恶意文件常伪装隐藏)
# 找/root目录下的隐藏文件,排除正常的.ssh、.bashrc等
find /root -type f -name ".*" -exec ls -la {} \; | grep -vE "\.ssh|\.bash|\.profile"

实战价值
  • 运维用find管理文件,安全场景只需加 “权限、时间、内容特征” 筛选条件,就能定位 webshell、挖矿脚本等恶意文件,比用专业查杀工具更灵活。

三、1 个 ELK 实战:SSH 暴力破解日志分析(1 周上手)

ELK(Elasticsearch+Logstash+Kibana)是运维常用的日志分析平台,转安全运维后,用它做 “安全日志分析” 不用学新工具,只需换 “日志源”(从业务日志到系统安全日志)。本实战以 “SSH 暴力破解溯源” 为场景,全程用 Docker 部署(运维熟悉的方式),1 周即可完成从环境搭建到安全分析的全流程。

实战目标
  • 用 Filebeat 收集 Linux 的/var/log/auth.log(SSH 登录日志);

  • 用 Elasticsearch 存储日志,Logstash 过滤字段(提取 IP、登录结果);

  • 用 Kibana 做可视化分析(攻击 IPTOP10、登录失败趋势图);

  • 产出《SSH 暴力破解分析报告》,定位攻击源并提出防护方案。

实施步骤(分 5 天,每天 1-2 小时)
Day1:环境搭建(Docker-compose 一键部署 ELK)

运维熟悉 Docker,用 Docker-compose 避免复杂的依赖配置:

  1. 新建docker-compose.yml文件(复制即用):
version: '3'
services:
  # Elasticsearch:存储日志
  es:
    image: elasticsearch:7.14.0
    environment:
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"  # 调整内存,避免卡顿
    ports:
      - "9200:9200"
    volumes:
      - es-data:/usr/share/elasticsearch/data
  
  # Logstash:过滤日志(提取IP、登录结果)
  logstash:
    image: logstash:7.14.0
    depends_on:
      - es
    volumes:
      - ./logstash/pipeline:/usr/share/logstash/pipeline  # 配置文件目录
    environment:
      - "LS_JAVA_OPTS=-Xms256m -Xmx256m"
  
  # Kibana:可视化分析
  kibana:
    image: kibana:7.14.0
    depends_on:
      - es
    ports:
      - "5601:5601"
    environment:
      - ELASTICSEARCH_HOSTS=http://es:9200  # 连接ES地址
  
  # Filebeat:收集auth.log日志(安全日志源)
  filebeat:
    image: elastic/filebeat:7.14.0
    user: root  # 需root权限读取系统日志
    volumes:
      - ./filebeat.yml:/usr/share/filebeat/filebeat.yml  # 配置文件
      - /var/log/auth.log:/var/log/auth.log  # 挂载本地auth.log到容器
    depends_on:
      - es
      - logstash

volumes:
  es-data:

  1. 配置 Logstash(过滤auth.log字段):
  • 新建logstash/pipeline/logstash.conf:
input {
  beats {
    port => 5044  # 接收Filebeat的日志
  }
}

filter {
  # 过滤SSH登录日志,提取IP($11)、登录结果(成功/失败)
  if [log][file][path] == "/var/log/auth.log" {  # 只处理auth.log
    grok {
      # 匹配auth.log格式,提取字段:ssh_ip(登录IP)、ssh_result(结果)
      match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{HOSTNAME:host} sshd\[%{NUMBER:pid}\]: %{DATA:ssh_action} .* from %{IPV4:ssh_ip} port %{NUMBER:ssh_port} .* %{DATA:ssh_result}" }
    }
    # 统一登录结果字段(成功=success,失败=failed)
    mutate {
      gsub => [ "ssh_result", "Accepted", "success" ]
      gsub => [ "ssh_result", "Failed", "failed" ]
    }
  }
}

output {
  elasticsearch {
    hosts => ["es:9200"]  # 输出到ES
    index => "ssh-log-%{+YYYY.MM.dd}"  # 按日期建索引
  }
  stdout { codec => rubydebug }  # 控制台打印(调试用)
}

  1. 配置 Filebeat(收集auth.log):
  • 新建filebeat.yml:
filebeat.inputs:
- type: filestream
  paths:
    - /var/log/auth.log  # 收集的日志路径
  fields:
    log_type: ssh-log  # 标记日志类型

output.logstash:
  hosts: ["logstash:5044"]  # 发送到Logstash

# 关闭无关模块(避免干扰)
setup.ilm.enabled: false
setup.template.enabled: false

  1. 启动 ELK:
docker-compose up -d  # 后台启动
docker-compose ps  # 检查所有服务是否正常运行(状态为Up)

Day2:验证日志采集
  1. 访问 Kibana:浏览器打开http://你的IP:5601(运维熟悉的 Web 界面);

  2. 创建索引模式:

  • 左侧菜单→Stack Management→Index Patterns→Create index pattern;

  • 输入ssh-log-*(匹配 ES 中的索引),按提示完成创建;

  1. 验证字段:
  • 左侧菜单→Discover→选择ssh-log-*索引,查看日志是否包含ssh_ip(登录 IP)、ssh_result(success/failed)字段 —— 有则说明采集成功。
Day3:Kibana 可视化分析(安全场景核心)

运维熟悉 Kibana 的可视化功能,重点做 3 个安全分析图表:

  1. SSH 登录失败 TOP10 IP(定位攻击源):
  • 左侧菜单→Visualize Library→Create visualization→选择 “Horizontal Bar”;

  • 聚合方式:Y 轴选 “Terms”,字段选ssh_ip.keyword,排序选 “Count” 降序;

  • 筛选条件:添加过滤器ssh_result: failed(只看失败记录);

  • 保存图表,命名为 “SSH 暴力破解 IP TOP10”—— 能直观看到攻击最频繁的 IP。

  1. SSH 登录失败趋势图(看攻击时间分布):
  • Create visualization→选择 “Line”;

  • X 轴选 “Date Histogram”,字段选@timestamp,间隔选 “1 小时”;

  • 筛选条件:ssh_result: failed;

  • 保存图表,命名为 “SSH 登录失败每小时趋势”—— 能看到攻击高峰时段(如凌晨 2-4 点)。

  1. SSH 登录结果饼图(看整体安全态势):
  • Create visualization→选择 “Pie”;

  • 聚合方式:“Terms”,字段选ssh_result.keyword;

  • 保存图表,命名为 “SSH 登录结果分布”—— 若失败占比过高(如 > 80%),说明存在严重暴力破解。

Day4:攻击溯源与防护
  1. 定位攻击 IP
  • 从 “TOP10 IP” 中选排名第一的 IP(如 192.168.1.100),在 Discover 中筛选ssh_ip: 192.168.1.100

  • 查看该 IP 的登录记录:攻击时间(如每天凌晨 2 点)、尝试的用户名(如 root、admin、test)—— 这些是溯源关键信息。

  1. 实施防护
  • 用iptables封禁攻击 IP(复用前面的命令):
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j DROP
service iptables save

  • 长期防护:修改 SSH 配置(/etc/ssh/sshd_config),禁用 root 登录(PermitRootLogin no)、限制密码尝试次数(MaxAuthTries 3),重启 SSH 服务(systemctl restart sshd)。
Day5:输出分析报告

整理实战成果,撰写《SSH 暴力破解日志分析报告》(运维熟悉的报告格式),核心内容:

  1. 分析背景(监控 SSH 登录日志,排查暴力破解);

  2. 攻击现状(TOP10 攻击 IP、攻击高峰时段、失败占比);

  3. 溯源结果(攻击 IP、尝试用户名、攻击频率);

  4. 防护措施(临时封禁 IP、长期 SSH 配置优化);

  5. 后续建议(开启 SSH 密钥登录、部署 fail2ban 自动封禁)。

实战成果(简历可写)

✅ “基于 ELK(Docker 部署)完成 SSH 暴力破解日志分析实战:

  • 日志采集:用 Filebeat 收集 Linuxauth.log,Logstash 过滤提取ssh_ip(登录 IP)、ssh_result(登录结果)字段,存储到 Elasticsearch;

  • 可视化分析:在 Kibana 制作 3 个安全图表(攻击 IP TOP10、失败趋势图、登录结果分布),定位出 2 个高频攻击 IP(192.168.1.100/101),攻击高峰集中在凌晨 2-4 点;

  • 防护落地:用 iptables 封禁攻击 IP,修改 SSH 配置禁用 root 登录、限制密码尝试次数,后续登录失败率下降 90%;

  • 成果输出:撰写《SSH 暴力破解分析报告》,含 5 张图表、3 条防护方案,具备安全日志分析与应急响应能力。”

四、简历写法:突出 “运维 + 安全” 的复合能力

1. 技能栏(复用运维技能,强调安全场景)

✅ 正确写法:

“Linux 运维:熟练使用 grep/ps/iptables/find 等命令进行安全日志分析(如 grep 分析 auth.log 找暴力破解 IP)、恶意进程排查(ps 查挖矿进程)、攻击 IP 封禁(iptables);

日志分析:精通 ELK 部署与配置,能用 Filebeat 收集安全日志(auth.log/nginx 访问日志),通过 Kibana 可视化分析 SSH 暴力破解、Web 攻击等场景;

安全防护:熟悉 Linux 系统安全配置(SSH 密钥登录、密码复杂度、日志轮转),能独立完成服务器安全基线检查与应急响应。”

❌ 错误写法:

“会用 Linux 命令,懂 ELK,了解安全运维。”

2. 项目经验(ELK 实战的完整表述)

✅ 正确写法:

Linux 服务器 SSH 暴力破解分析与防护项目

  • 背景:针对服务器频繁 SSH 登录失败,需定位攻击源并实施防护;

  • 行动:

  1. 用 Docker-compose 部署 ELK,配置 Filebeat 收集/var/log/auth.log,Logstash 提取ssh_ip、ssh_result字段;

  2. 在 Kibana 制作攻击 IP TOP10、登录失败趋势图,发现 2 个高频攻击 IP(尝试登录超 200 次 / IP);

  3. 用 iptables 临时封禁攻击 IP,修改 SSH 配置(禁用 root 登录、MaxAuthTries=3),部署 fail2ban 自动封禁工具;

  • 成果:登录失败率从 85% 降至 10%,输出含可视化图表的分析报告,形成《SSH 安全配置规范》,可复用至 10 台服务器。”

五、避坑指南(运维转安全运维常踩的 3 个问题)

1. 坑 1:ELK 日志采集不到auth.log
  • 原因:Filebeat 容器没有读取auth.log的权限(Linux 系统日志默认权限是 600,只有 root 能读);

  • 解决

  1. docker-compose.yml中给 Filebeat 加user: root(如本文配置);

  2. 本地auth.log权限调整为 644(chmod 644 /var/log/auth.log),确保容器内 root 能读取。

2. 坑 2:grep分析日志时关键词匹配不到
  • 原因:auth.log格式因系统版本不同有差异(如 CentOS 和 Ubuntu 的字段顺序不同);

  • 解决

  1. 先看auth.log的实际格式(head -10 /var/log/auth.log);

  2. 调整grep关键词,比如 Ubuntu 的 Failed 记录是 “Failed password for”,CentOS 是 “Failed password”,可加-E模糊匹配(grep -E “Failed password”)。

3. 坑 3:iptables封禁 IP 后重启失效
  • 原因:未保存 iptables 规则,Linux 重启后规则默认清空;

  • 解决

  • CentOS:service iptables save 或 iptables-save > /etc/sysconfig/iptables;

  • Ubuntu:iptables-save > /etc/iptables/rules.v4,并安装iptables-persistent(apt install iptables-persistent)确保开机加载。

最后:运维转安全运维的 “1 个月进阶路线”

  1. 第 1 周:熟练 5 个复用命令的安全用法,完成 ELK SSH 日志分析实战,产出分析报告;

  2. 第 2 周:学习服务器安全基线(如 CIS 基线),用find+grep做基线检查(如找世界可写文件、空密码账户);

  3. 第 3 周:部署 fail2ban(自动封禁暴力破解 IP)、ossec(主机入侵检测),复用 Docker 简化部署;

  4. 第 4 周:整理所有实战成果(命令脚本、ELK 配置、基线报告),上传 GitHub,优化简历。

运维转安全运维,不是 “放弃原有技能”,而是 “在熟悉的领域加安全维度”—— 你每天用的命令、部署的工具,都是转型的 “垫脚石”。重点是从 “关注业务可用性” 转向 “关注业务安全性”,1 周上手,1 个月就能形成竞争力。

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。

1、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

2、 部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

在这里插入图片描述

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

img

2、Linux操作系统

img

3、WEB架构基础与HTTP协议

img

4、Web渗透测试

img

5、渗透测试案例分享

img

6、渗透测试实战技巧

图片

7、攻防对战实战

图片

8、CTF之MISC实战讲解

图片

3、适合学习的人群

一、基础适配人群

  1. 零基础转型者‌:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌;
  2. 开发/运维人员‌:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展‌或者转行就业;
  3. 应届毕业生‌:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期‌;

二、能力提升适配

1、‌技术爱好者‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

img

Logo

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

更多推荐