服务器端口被扫描了,怎么用代码实现按需开关端口保护服务器
熟悉我的读者都知道,我在阿里云上搭了frp内网穿透,把家里的主机暴露在公网上。最近几天我发现阿里云一直有出网流量,一开始没注意,后来发现每时每刻都在消耗流量。猜测有可能是服务器被攻击了,有人在试图破解我的密码。
图上可以看到,前面流量高的几段是之前没有关端口时的流量情况,后面是端口关闭后的流量状态。很明显,前面那段高的流量不正常,因为我每天也就远程连到家里的电脑一小会儿,不会产生持续性的流量。
经过分析,家里的服务器暂时是安全的,因为没有发现任何异常,没有中毒也没有挖矿软件在跑。有可能是对方一直在尝试破解电脑密码产生的流量(windows远程桌面登录页会展示出图形界面会比较消耗流量)。
这样一分析,那以后我就只在用到家里服务器的时候把对应的端口打开不就可以了。这样既能满足自己的需要又能把被攻击的风险降到最低。
端口的打开和关闭可以通过阿里云网页端的控制台中的安全组实现。只是通过它来开关端口太麻烦了,本文将介绍怎么利用阿里云sdk实现一键开关服务器端口。
首先创建一个阿里云子用户,这个用户只用来控制端口。地址:
https://ram.console.aliyun.com/users
然后点击【权限管理页】的【新增授权】:
之后点击【新建权限策略】
在新弹出来的页面上,服务选【云服务器ECS】,然后操作那搜索【SecurityGroup】之后把读操作和写操作都勾选。
再把策略名写上就把权限策略创建好了。
回到【新增授权】页把我们新添加的权限添加给用户。
最后创建一个访问token:
我们就可以通过这个token来操作阿里云sdk了。
我们用到的是ModifySecurityGroupRule这个api,可以参考:
https://help.aliyun.com/zh/ecs/developer-reference/api-ecs-2014-05-26-modifysecuritygrouprule
阿里云支持在线调试
https://api.aliyun.com/api/Ecs/2014-05-26/ModifySecurityGroupRule
首先通过安全组的安全组id获取所有的规则:
https://api.aliyun.com/api/Ecs/2014-05-26/DescribeSecurityGroupAttribute
在阿里云安全组那页能看到安全组id
然后通过DescribeSecurityGroupAttribute接口获取所有规则的id
在返回值中找到想要控制的规则id
然后在ModifySecurityGroupRule在线调试页面调试,没问题的话,点右侧的【SDK示例】选择你的语言就可以生成对应语言的调用代码,把它改一改就能实现一键打开或关闭端口了。
这一篇就到这里啦。欢迎大家点赞、转发、私信。还没有关注我的朋友可以关注 江达小记