背景
因为学习买了一台服务器,但是也没什么经验,一开始把安全组中几个需要用的端口全部授权成0.0.0.0,0,导致服务器买了才没几天就被人植入了木马挖矿进程,系统也被破坏的面目全非,重装了系统之后为了防止这类问题的再次发生,我用了一种极其笨的办法就是比如说我要在本地pc上调试服务器上的redis时,我就把服务器中的redis端口号6379的授权ip改成我当前pc的ip
问题重现
但是这样有个问题就是本地pc接入的宽带ip老是变动,变了之后就得重新改很麻烦,尤其是回了学校之后晚上断网要用热点又变ip更麻烦,但是在之前阿里云安全组配置规则的时候好歹还有个批量导入功能,但是在某一天突然就无了,只能一个一个手敲,这个太痛苦了,这是我发现了一个导入功能
但是没有导入规则,我就点了下导出看了下格式,想着用python写一个方便的工具
需求(实现的功能)
输入ip,程序从磁盘中读取original.json中原有的安全组规则,然后找到其中授权对象不是0.0.0.0的安全组规则,把他的授权对象改成输入的ip,然后再把ip写入targetRule.json文件中
代码
import json
if __name__ == '__main__':
with open('original.json', encoding="utf-8") as jsonRules:
rules = json.load(jsonRules)
targetIp = input("请输入现在的ip:")
targetRules = []
for rule in rules:
if (rule['SourceCidrIp'] != "0.0.0.0/0"):
rule['SourceCidrIp'] = targetIp
targetRules.append(rule)
tmp = json.dumps(targetRules)
fp = open('./targetRule.json', 'w', encoding='utf-8')
fp.write(tmp)
fp.close()
print("生成成功")
使用步骤
从阿里云安全组管理页面中导出安全组规则
导出成json格式并将其重命名位original.json,放入与python代码同一个目录下,运行该python代码,
就会生成targetRule.json,然后去阿里云安全组管理页面中导入即可
效果展示