You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
---
layout: post
title: Mayx的运维笔记 - 隐藏自己
tags: [运维, 笔记, 隐藏]
---
互联网是个很危险的地方……<!--more-->
# 起因
最近几天我维护的花火学园貌似时不时的会爆内存……不过这倒是也是正常的事情, PHP好像默认情况下不会自己释放内存, 我之前本来是想把那个运行模式改成ondemand, 但是看网上说好像都不怎么推荐……但是既然已经爆了几次内存, 那我也没得选了, 就把运行模式改了。
在检查服务器的这段时间里, 我发现居然有一个不自量力的家伙在爆破我的服务器, 看IP是159.89.47.109,随便访问了一下想不到上面还跑了个网站?不知道是这个网站被黑了变成肉鸡了还是这个网站的所有人确实脑子有问题……
# 解决IP泄露
总之无论如何这已经证明了论坛的真实IP已经泄露了, 因为我开了很多防火墙白名单, 对网络流量这一块限制的很严格, 所以正常情况下外面是不应该知道我的网站IP的, 不过我的SSH端口虽然改了, 但是因为我的位置经常在变, 所以这个并没有设置白名单。
不过还有一个可能性, 最近貌似有个自称Tyosakuken FANZA的家伙给我们的运营商发了DMCA投诉, CloudFlare是真的会把真实IP告诉投诉者的。我不知道这个发投诉的人是个啥情况, 总之这个公司貌似是日本的, 先把日本的流量全封了再说。
另外IP肯定是要改了, 正好趁这个机会干脆再小幅度的升一下服务器的配置好了, 之前一直用的是Vultr的Cloud Compute, 这次试试High Frequency说不定速度会变快。于是我就用快照重新部署了一下服务器。结果在等它部署的期间居然睡着了😂, 这下可用率又要掉了。
不过SSH端口这个……我也不能每次要用的时候再去开它, 那样很麻烦, 所以……我想了想, 要不然就用frp吧, 直接不开放SSH端口, 流量就从frp里经过, 而且这个东西还支持访问验证, 这样也能避免被扫了, 不过我确实还是没办法确认这个东西的安全性, 不知道这到底是提高了破解难度还是放了个定时炸弹……毕竟它是可以无视防火墙的啊。
# 更新快照脚本
换了IP之后服务器的ID也跟着一起变了, 我正打算改这个东西的时候发现Vultr怎么也变了, 原来用的是SUBID, 现在变成了实例ID了……当时我不是很精通API所以是从[网上随便找的脚本](/2020/06/17/backup.html), 现在我用PHP调API调的也算熟练了吧, 正好这次V1的API貌似要被废弃了, 我就看看文档, 整个V2的API吧。代码如下:
```php
<? php
$api_key = "APIKey" ;
$instance_id = "实例ID" ;
file_get_contents ( "https://api.vultr.com/v2/snapshots" , false , stream_context_create ( array ( 'http' => array ( 'method' => 'POST' , 'header' => "Content-Type: application/json;charset=utf-8 \r\n Authorization: Bearer " . $api_key , 'content' => '{"instance_id": "' . $instance_id . '"}' ))));
$snapshot_list = json_decode ( file_get_contents ( "https://api.vultr.com/v2/snapshots" , false , stream_context_create ( array ( 'http' => array ( 'method' => 'GET' , 'header' => "Authorization: Bearer " . $api_key )))), true );
if ( $snapshot_list [ "meta" ][ "total" ] > 10 ){
file_get_contents ( "https://api.vultr.com/v2/snapshots/" . $snapshot_list [ "snapshots" ][ 0 ][ "id" ], false , stream_context_create ( array ( 'http' => array ( 'method' => 'DELETE' , 'header' => "Authorization: Bearer " . $api_key ))));
}
```
像这个也可以整合我之前写的[测试号通知](/2021/02/02/serverchan.html)或者[企业号通知](/2021/02/26/serverchancorp.html)来用, 用之前记得加上addslashes, 不然可能会出问题。
另外这个V2的API貌似还是RESTful的呢, 看起来倒是更简单易懂了。
# 总结
总之在网上一定要注意网站安全, 一旦有出问题的迹象要赶紧备份, 有必要的情况该换IP就只能换了。