GPT运维:对同一账号下的不同API-KEY用量进行跟踪统计。(Part.2)
还是不打算写具体的配置实现。懂的人给思路已经够了,不能助长抄作业。
备忘笔记补充一些安全事项。搭建反代之后发现不请自来了不少 扫描的爬虫,这些可能仅仅是无目的地试探系统漏洞的机器人。
产生日志如下
192.241.236.34 - - [06/Jun/2023:22:16:47 +0800] "GET /owa/auth/logon.aspx?url=https%3a%2f%2f1%2fecp%2f HTTP/1.1" 404 142 "-" "Mozilla/5.0 zgrab/0.x" "-"
138.68.249.116 - - [06/Jun/2023:22:27:38 +0800] "SSTP_DUPLEX_POST /sra_{BA195980-CD49-458b-9E23-C84EE0ADCD75}/ HTTP/1.1" 400 150 "-" "-" "-"
15.204.173.67 - - [06/Jun/2023:22:28:18 +0800] "GET / HTTP/1.1" 403 146 "-" "python-requests/2.25.1" "-"
162.243.128.23 - - [06/Jun/2023:22:32:48 +0800] "GET / HTTP/1.1" 403 146 "-" "Mozilla/5.0 zgrab/0.x" "-"
原本这也没什么,反正这台中继服务器上没有任何数据和有价值的东西。就算被黑了也没有损失。
唯一需要担心的是目前所有请求无差别甩给openAI的 API。
万一被这些爬虫乱搞或者无差别DDos的话,openAI溯源把这个机器IP给拉黑就不好了。
为了避免这种结果的发生,有必要对这些异常的请求全部进行拦截。
拦截的方法也很简单直接,GPT的API要求通过 HEADER Authorization 里附带 key。那么识别有效请求就从这里入手
增加一个访问规则在 vhost 对应 .conf 的 location /{} 里的最前面
上文略
location / {
if ($http_authorization !~ "^Bearer ") {
return 403; # 拒绝访问
}
# 其他配置
{略}
}
下文略
配置完 运行校验
lnmp nginx configtest
Test nginx configure files... nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
检查配置,没问题,重启服务(reload也可以)
lnmp nginx restart
跟踪日志效果如下,不是GPT的请求已经全部拦截了。
113.10.20.171 - - [06/Jun/2023:22:33:23 +0800] "GET / HTTP/2.0" 403 548 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36" "-"
113.10.20.171 - - [06/Jun/2023:22:33:24 +0800] "GET /favicon.ico HTTP/2.0" 403 548 "https://gpt.XXX.XXX/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36" "-"
完美!收工!