免责声明
本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读。
前言
本人用的是雷池WAF开心版,但是很多功能被压制了,很想支持一下雷池WAF,但是奈何年费3600太贵了,但凡少一个0,我就支持了。于是我就开始了自动化实现运营的操作。
映射数据库端口
#!/bin/bash
# 运行安装/更新脚本
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/upgrade.sh)"
# 进入 /data/safeline 目录
cd /data/safeline || { echo "/data/safeline not found!"; exit 1; }
# 检查 compose.yaml 是否存在并备份
if [ -f compose.yaml ]; then
echo "Backing up the current compose.yaml"
cp compose.yaml compose.yaml.bak
else
echo "compose.yaml not found in /data/safeline!"
exit 1
fi
# 检查是否已经存在端口映射
if grep -q "5433:5432" compose.yaml; then
echo "PostgreSQL port mapping already exists."
else
# 使用 sed 插入 ports 字段到 postgres 服务中
sed -i '/container_name: safeline-pg/a\ ports:\n - 5433:5432' compose.yaml
echo "PostgreSQL port mapping added to 5433:5432."
fi
# 重新启动容器,应用更改
docker compose down --remove-orphans && docker compose up -d
echo "Containers restarted with the updated compose.yaml"
这个脚本适用于每次更新时,重新映射数据库端口。
提取告警日志
通过cat /data/safeline/.env | grep POSTGRES_PASSWORD | tail -n 1 | awk -F '=' '{print $2}'
查看数据库密码
然后在/var/scripts/.pgpass
中写入如下代码,然后给这个文件添加600的权限。
localhost:5433:safeline-ce:safeline-ce:abcd #把abcd替换成第2步中获取到的密码
#!/bin/bash
# 设置PGPASSFILE环境变量
export PGPASSFILE=/var/scripts/.pgpass
# PostgreSQL 的连接信息
PG_HOST="localhost"
PORT="5433"
DATABASE="safeline-ce"
USERNAME="safeline-ce"
HOSTNAME=$(hostname)
PROGRAM_NAME="safeline-ce"
#获取最后一条WAF攻击事件日志的ID,日志数据存储在MGT_DETECT_LOG_BASIC表中
LAST_ID=$(psql -h $PG_HOST -p $PORT -U $USERNAME -d $DATABASE -t -P footer=off -c "SELECT id FROM PUBLIC.MGT_DETECT_LOG_BASIC ORDER BY id desc limit 1")
while true;do
#从pgsql数据库中获取waf的最新攻击事件日志,如果没有产生新日志,这条SQL会返回空
raw_log=$(psql -h $PG_HOST -p $PORT -U $USERNAME -d $DATABASE -t -P footer=off -c "SELECT TO_CHAR(to_timestamp(timestamp) AT TIME ZONE 'Asia/Shanghai', 'YYYY-MM-DD HH24:MI:SS'), CONCAT(PROVINCE, CITY) AS SRC_CITY, SRC_IP, CONCAT(HOST, ':', DST_PORT) AS HOST,url_path,rule_id,id FROM PUBLIC.MGT_DETECT_LOG_BASIC where id > '$LAST_ID' ORDER BY id asc limit 1")
#检查SQL查询结果,如果有新加的日志就执行以下操作,把SQL查询结果重写为syslog日
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)