aide通过监控关键服务配置文件变更来发现非法端口开放,需精准配置aide.conf、定期检查并结合脚本实现检测即响应。

AIDE本身不直接阻断端口开放,但它能第一时间发现服务配置文件被篡改——而非法端口开放往往就藏在这些改动里。关键在于盯紧配置文件的变更,并结合简单脚本实现“检测即响应”。
锁定核心配置文件路径
非法端口开放通常源于以下几类配置被修改:
-
/etc/ssh/sshd_config:攻击者可能添加
Port 2222或GatewayPorts yes -
/etc/nginx/nginx.conf 及 /etc/nginx/conf.d/ 下的站点配置:新增监听非标端口如
listen 8081; -
/etc/httpd/conf/httpd.conf 或 /etc/apache2/ports.conf:添加
Listen 8888 - /etc/services:虽不直接启用端口,但异常条目可能暗示攻击者意图
-
/etc/systemd/system/*.service:自定义服务监听端口(如
ExecStart=... --port=6666)
配置AIDE只盯这些敏感文件
编辑/etc/aide.conf,注释掉默认全盘扫描规则,改为精准监控:
# 定义高精度规则(含内容哈希+权限+属主) Strict = p+i+n+u+g+s+b+m+c+sha256 <h1>明确列出每个关键配置</h1><p>/etc/ssh/sshd_config Strict /etc/nginx/ Strict /etc/httpd/conf/ Strict /etc/apache2/ Strict /etc/systemd/system/ Strict /etc/services Strict </p>
同时确保排除干扰项:!/var/log/、!/tmp/、!/proc/、!/sys/。
改完必须重新初始化数据库:sudo aide --init && sudo cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
检查时快速定位端口相关变动
运行sudo aide --check后,不要只看“Changed”字样。用管道精准抓取端口线索:
sudo aide --check 2>/dev/null | grep -E "(Changed|Added)" | grep -i -E "(port|listen|bind|:[:digit:]+)"
输出示例:
Changed: /etc/nginx/conf.d/api.confChanged: /etc/ssh/sshd_config
这时再人工检查这两个文件:grep -n "listen\|Port" /etc/nginx/conf.d/api.conf /etc/ssh/sshd_config,立刻确认是否新增了可疑端口。
自动响应:检测到就关闭端口并告警
把检查命令写成脚本,加入crontab每15分钟跑一次:
#!/bin/bash
LOG="/var/log/aide-port-check.log"
RESULT=$(sudo aide --check 2>/dev/null | grep -E "(Changed|Added)" | grep -i -E "(port|listen|bind|:[0-9]{4,})")
<p>if [ -n "$RESULT" ]; then
echo "[$(date)] 配置变动触发端口检查:" >> $LOG
echo "$RESULT" >> $LOG</p><h1>尝试识别并关闭新开放的非标端口(示例:禁用所有非80/443/22/25的监听)</h1><p>ss -tln | awk '$5 ~ /:[0-9]+$/ && $5 !~ /:(80|443|22|25)$/ {print $5}' | \
cut -d: -f2 | xargs -I{} sudo firewall-cmd --remove-port={}/tcp --permanent 2>/dev/null</p><p>sudo firewall-cmd --reload 2>/dev/null
echo "已临时封禁非常规监听端口" >> $LOG
echo "$RESULT" | mail -s "AIDE端口变更告警" admin@example.com
fi
</p>
注意:此脚本是“熔断式响应”,仅作临时遏制;真正要解决,仍需人工审计配置变更原因。











