分类 夏季八乱说 下的文章

这段时间在捣鼓tars框架,去vultr开了个3.5刀的机器,为什么要用他们家的呢,因为之前冲的50刀没用完😂无奈呀

他家的机器对湖北电信非常不友好,创建必须要装bbr不然丢包够你受的,加大发包量,用的还挺爽的

这两天空闲了下,上线登陆发现有1w+的暴力登陆!!!

wtf!

network-attacks.png

第一次感受到这么泛滥的网络攻击,今天简单介绍一下修改sshd监听端口防范暴力破解

这里我开始就把selinux关掉了,你可以选择关闭selinux,因为会少很多麻烦事,当然也会产生隐形的问题,不过利大于弊

系统版本

  • 发行版: CentOS Linux release 7.5.1804 (Core)
  • 内核: kernel-ml-4.19.6-1.el7.elrepo.x86_64

起步

  1. 检查selinux的开启状态

    $ /usr/sbin/sestatus -v
    # 看到disabled说明是关闭的,直接看第三步
  2. 关闭selinux

    # 临时关闭(推荐)
    $ setenforce 0
    # 永久关闭
    $ vim /etc/selinux/config
    # 修改为SELINUX=disabled,注意这里需要重启生效
  3. 查询端口是否开放
    最近招商银行的保险推销电话太嚣张了,一个星期内每天两次,大家记住10105555,这里鞭尸他们做例子(真正的可用端口一般只有1024-65535,这里用作替代例子)

    $ firewall-cmd --permanent --query-port=10105555/tcp
    no
    # 是no我们就需要自行添加,yes可以直接忽略掉
  4. 添加端口

    $ firewall-cmd --permanent --add-port=10105555/tcp
    success
    # 一般情况肯定打印success,出错了检测firewall服务运行没,或者端口是否已添加
  5. 重载防火墙

    $ firewall-cmd --reload
    success
  6. 再次查询端口是否开放(回到第三步)
  7. 修改ssh端口

    #修改sshd端口, 这里使用`vim`,可以根据个人喜好使用其他的编辑器
    $ vim /etc/ssh/sshd_config
  8. 编辑sshd_config

    #最好先把**22端口**开着,避免另一个端口无法登录的尴尬😅
    Port 22
    Port 自定义端口
    
    #这里我们顺便吧免密码登录打开
    #RSAAuthentication yes #具体不作详细解释,使用的是ssh2版本协议请关掉
    #PubkeyAuthentication yes #默认开启
    AuthorizedKeysFile      .ssh/authorized_keys
  9. 重启一下sshd服务登录试试

    $ systemctl restart sshd
  10. 找一个支持ssh协议的客户端来连接刚刚设置的服务器,如果你有终端按照下面方法连接,输入密码完事

    $ ssh -p 自定义端口 用户名@服务器地址
    用户名@服务器地址's password:

题外话

开启ssh免密码登录

#最好不要输密码,用着会相当麻烦,2048位的大数分解应该没人能普普通通的算出来吧
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
输入要保存的密钥文件 (/Users/flxxyz/.ssh/id_rsa): 
输入密码 (empty for no passphrase):
再次输入相同的密码:

#出现下面界面密钥生成好了
The key's randomart image is:
+---[RSA 2048]----+
|+o+B#Bo.o        |
| =o#BEoo .       |
|  &oX+. +        |
| = *.*   =       |
|.   *   S .      |
|   +             |
|  .              |
|                 |
|                 |
+----[SHA256]-----+

类unix用户复制公钥内容,windows用户可以用git-bashC:\Users\你的用户名\.ssh\id_rsa.pub查找复制内容

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCv14bqlJrTAlKJ3H9C3GnzsJ46jCS9jvDjXu70LU4i6AsbHgrH/sS5xAPGxKXE9BSMIabB9XdpEAWjq/qpX6A7acU2LXFxGpjDo1hxNZObNawiVm0n2CoGgGuoD3N+2ZTra03i6b12YNbS6iMdZc3KX1qtRSXw1A5SygWmB7vnlx2n9umcdEutdcUkBP3BLJLpppM0jDU64vAxhnxxJTojwQKc7pAILLvw0IiIyLY37v4CBOq8GtPejy1yShZUd99c883xd80LewO69utA5oRB0419tfMn/A9kK2bt+b0H5QbI/aS0sXbfdhusOQUq0CuU8V5rbwJz38o8Nseet4TJ flxxyz@macos.home

连接到服务器

$ ssh -p 端口 用户名@服务器地址
用户名@服务器地址's password:

进来就在此处不要走动,我去买两个橘子,呸,新建一个文件authorized_keys

$ touch .ssh/authorized_keys

#把刚刚复制的公钥内容写入文件里,保存!
$ vim .ssh/authorized_keys

#这里确保文件的读取权限问题,设置成这样
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys

# 这里重启一下sshd服务(其实我们刚刚在正文重启过了)
$ systemctl restart sshd

来测试一下无密码连接到服务器

$ ssh -i ~/.ssh/id_rsa -p 端口 用户名@服务器地址

没有出现输入密码的提示就是成功了,如果按上面所说的还是无法免密码登录,那就是一些隐藏的“坑”了

疑问

如果之前做过微信jssdk,初看文档会发现没有什么,流程无非就是后端签名,返还给前端

但是仔细想了想,没有配置物品的价值信息呀,在公众号h5页面也只是返还了签名

回头看看请求参数发现了端倪

微信订单id

一开始看示例值我理解的随便一串数字,其中的prepay_id统一下单接口返回结果中的参数

重新开始书写逻辑

在这里我们使用的是h5支付,返回结果为 https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx151809054027204613d0ca330422xxxxxx&package=287231xxxx

只能采用截取url的方式了,获取到的prepay_idwx151809054027204613d0ca330422xxxxxx

prepay_id发回后端进行签名,返回

{
  "code": 1,
  "msg": "获取微信浏览器支付签名成功",
  "data": {
    "appId": "wx54c4e3c9a7xxxxxx",
    "timeStamp": "1537007685",
    "nonceStr": "5b9ce0458db30",
    "package": "prepay_id=wx151809054027204613d0ca330422xxxxxx",
    "signType": "MD5",
    "paySign": "A819D6551E9E3FE62BE612FA96000000"
  }
}

现在前端就可以愉快的使用WeixinJSBridgeJSSDK


相关链接:

微信内H5调起支付
微信统一下单

出现invalid signature错误的情况真的很迷

  1. 文档最开始说不需要转义,后来我看到错误相关,说需要encodeURIComponent(location.href.split('#')[0])
  2. wx.config()中的nonceStr与后端进行签名时的noncestr不一样
  3. 动态获取url这个地方描述的很迷,没明确说明是需要使用后端提供签名的接口还是,前端发起请求时的url

总之就是,要使用ajax签名,前端需要encodeURIComponent(location.href.split('#')[0])将当前url作为参数,传入后端签名接口,后端如果是php,需要urldecode($_GET['url']),再来获取jsapi_ticket进行签名,返回参数

貌似联璧金融要倒了,去年上的k3车,还有1000多没出来。

希望不是618卖7亿多,带着小姨子跑路了。。。

2018.06.26 150块还在提现中,不抱太大希望了...
2018.07.20 APP还能打开...

已经不行了哟

前几天的沙龙bug,相信很多人都去蹭了,然鹅我就在旁边静静的看着你们翻车

今天我告诉你们领首页新出的活动,云数据库mysql入门机型买3年,点进页面里购买时长最多只有6个月(感觉不够呀)

查看了下订单提交信息,成功购买了3年
购买成功

将下面代码复制,保存为html文件,打开页面点击链接跳转,即可购买

<a id="get-mysql" href="#">点我领取</a>
<form action="https://buy.cloud.tencent.com/order/check" method="post" style="display:none">
    <textarea name="itemDetails">{"raw_goodsData":[{"type":"cdb","goodsCategoryId":"100016","regionId":4,"projectId":0,"zoneId":200001,"goodsDetail":{"pid":12074,"timeSpan":36,"timeUnit":"m","subType":"CUSTOM","payType":0,"mem":256,"disk":50,"cdbMem":256,"cdbVolume":50,"vpcId":0,"subnetId":0,"zoneId":200001,"type":"cdb","cdbInstanceType":"CUSTOM","mysqlVersion":"5.6","devClass":"Z3","action":"applyCdb","curDeadline":"0000-00-00","instanceRole":"master","projectId":0,"goodsNum":1,"payMode":1,"saleByZone":1,"productInfo":[{"name":"实例类型","value":"主实例"},{"name":"计费模式","value":"包年包月"},{"name":"配置类型","value":"高IO版"},{"name":"配置","value":"256MB内存,50GB存储空间,MySQL5.6"},{"name":"地域","value":"华东地区(上海)"},{"name":"可用区","value":"上海一区"},{"name":"所属网络","value":"基础网络"},{"name":"项目","value":"默认项目"},{"name":"数据复制方式","value":"异步复制"}],"protectMode":0,"deployMode":0,"slaveZone":0,"backupZone":0,"originate":""},"goodsNum":1,"payMode":1}]}</textarea>
</form>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script>
    $('#get-mysql').click(function () {
        $('form').submit()
    })
</script>

真的是哇的一声哭出来了(´;ω;`)

在自己的git站上花Q了一下某内容审查系统,居然真的被ban掉了!!!

我迅速检查机器ip,没有被连坐,真是太好了( ´_ゝ`)

但是我买的十年短号域就这样被ban了我不甘心呀(╯‵□′)╯︵┴─┴

谷歌大法了一下,解决方法大概就4种,如果大佬还知道有什么抢救办法也可以告诉呀 (´▽`ʃ♡ƪ)"

解决方法

  1. 把域名切换至国内dns解析
  2. 去备案(备...备nmlgb的案)
  3. 换域名(走开)
  4. 找个大厂IP给域名做A记录,接下来听天由命

第一种解决不生效,pass

第二种和第三种不予采用,pass

抱着希望只能使用第四种方案,听天由命了

时间线

  • 2018.3.2 开始被墙
  • 2018.3.3 持续中...
  • 2018.3.4 持续中...
  • 2018.3.5 持续中...
  • 2018.3.6 出现好转
  • 2018.3.7 已经有4个节点解析到企鹅爸爸的IP了_(:3 」∠ )_
  • 2018.3.8 (,,゚Д゚)开心,已经有13个节点回来了
  • 2018.3.9 (´ー`)变成9个了,期待的第4天
  • 2018.3.10 凉了半截
  • 2018.3.11 (´ー`)一首凉凉送给我