|
|
这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
对于运维来说,端口异常往往意味着:服务意外退出;被恶意扫描或爆破;存在未知进程监听端口;挖矿木马占用高位端口;端口突然暴增引发高负载。能及时发现这些情况,比事后排查要轻松得多。本文介绍几种可落地的监控方式。
一、实时查看端口状态
1. 使用 ss 监控端口监听情况(推荐)
ss 是 netstat 的升级版,速度快、信息更全。
参数说明:
t:TCP
u:UDP
l:仅显示监听
n:不解析域名
p:显示进程名
常用做法:盯紧异常端口
- ss -tulnp | grep -E "0.0.0.0|LISTEN"
复制代码 如果你的服务器突然出现:
- 50000/tcp LISTEN ....
- 60123/tcp LISTEN ....
复制代码 而你不认识这些端口,那么可能有猫腻。
二、如何实时检测“新端口被开启”
有时候新端口突然出现,意味着有服务被拉起,或者有木马启动。
下面提供一个小型监控脚本,用来 实时对比端口变化。
端口变化监控脚本
- #!/bin/bash
- BASELINE=/tmp/port_baseline.txt
- CURRENT=/tmp/port_current.txt
- # 初始化基线
- if [ ! -f "$BASELINE" ]; then
- ss -tuln > "$BASELINE"
- echo "Baseline created."
- exit 0
- fi
- ss -tuln > "$CURRENT"
- DIFF=$(diff $BASELINE $CURRENT)
- if [ ! -z "$DIFF" ]; then
- echo "[Warning] New or removed ports detected:"
- echo "$DIFF"
- cp $CURRENT $BASELINE
- fi
复制代码 添加 crontab 每分钟跑一次也很方便。
三、实时监控端口连接量(发现攻击或异常流量)
1. 查看某端口连接数
- ss -ant | grep :80 | wc -l
复制代码 如果你的网站端口 80/443 突然出现上千个连接,很可能遭遇 CC 攻击。
2. 按 IP 统计访问量(定位恶意 IP)
- ss -tn state established | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head
复制代码 可以快速看到:哪个 IP 并发最高;是否存在恶意扫描;是否被海外机器人爆破。
四、实时监控流量情况
1. 使用iftop(像 top 的流量监控)
- yum install iftop -y
- iftop
复制代码 可以看到:实时带宽;每个 IP 的流量情况;是否存在异常上行流量(挖矿木马特征)
2. 使用 nethogs 查看每个进程占用的流量
如果发现:
- python 5MB/s
- node 4MB/s
- unknown 8MB/s
复制代码 那就要小心了。
五、监控端口变化的自动告警系统(可直接使用)
下面是一个 端口异常自动邮件告警脚本(适用于 Linux):
- #!/bin/bash
- LOG=/tmp/port_watch.log
- BASE=/tmp/port_base.txt
- CUR=/tmp/port_cur.txt
- ss -tuln > $CUR
- if [ ! -f $BASE ]; then
- cp $CUR $BASE
- exit 0
- fi
- DIFF=$(diff $BASE $CUR)
- if [ ! -z "$DIFF" ]; then
- echo "Port change detected:" > $LOG
- echo "$DIFF" >> $LOG
- mail -s "Server Port Change Alert" admin@example.com < $LOG
- cp $CUR $BASE
- fi
复制代码 适用于:端口异常监听;服务自动拉起;后门端口检测;木马扫描端口识别。
六、结合 fail2ban、firewalld 进行自动阻断
如果监控脚本发现某 IP 同时触发多端口访问,可以让 fail2ban 自动封禁:
例如封禁大量发起 SSH 连接的 IP:
- fail2ban-client set sshd banip 1.2.3.4
复制代码 或通过 firewalld:
- firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='1.2.3.4' reject"
复制代码
七、总结
实时监控端口和流量是服务器安全的关键环节。运维中 80% 的入侵事件,都能在端口层面提前发现异常。
本篇总结的要点包括:如何查看端口状态;如何检测端口变化;如何快速发现流量异常;如何追踪高访问 IP;如何自动告警端口变化;如何结合防火墙自动封禁攻击流量。
只要把以上方法掌握好,就能提前发现大多数异常服务、木马后门、扫描行为或流量攻击。
|
|