分类 Internet 下的文章

Centos 7 卸载阿里云盾监控以及 firewall 屏蔽云盾 IP

阿里云 VPS 系统都自带了云盾监控程序,实质上是用来监控VPS是否安全,自动扫描进程、查杀病毒用的,会识别SS(R)进程。

想要安装 SS 服务必须要卸载云盾监控(不用重装),或者直接利用脚本一键重装您需要的纯净系统。

卸载阿里云盾监控

wget http://update.aegis.aliyun.com/download/uninstall.sh

chmod +x uninstall.sh

./uninstall.sh
wget http://update.aegis.aliyun.com/download/quartz_uninstall.sh

chmod +x quartz_uninstall.sh

./quartz_uninstall.sh

删除残留

pkill aliyun-service

rm -fr /etc/init.d/agentwatch /usr/sbin/aliyun-service

rm -rf /usr/local/aegis*

屏蔽云盾 IP

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='140.205.201.0/28' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='140.205.201.16/29' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='140.205.201.32/28' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='140.205.225.192/29' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='140.205.225.200/30' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='140.205.225.184/29' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='140.205.225.183/32' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='140.205.225.206/32' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='140.205.225.205/32' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='140.205.225.195/32' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='140.205.225.204/32' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='106.11.222.0/23' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='106.11.224.0/24' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='106.11.228.0/22' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='140.205.201.0/24' reject"

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='140.205.225.0/24' reject"

然后,就让我们一起畅游世界!

「全自动」LNMP1.5 无需升级至 1.6 快速开启 TLS1.3

最近在看一些 TLS 协议 1.3 版本的相关知识,为了用上更安全的传输协议...编译了不下于五次 nginx 和 openssl,网站也跟着崩溃,此教程主要说下如何在 lnmp1.5 上快速部署一个支持 TLS 1.3 协议版本的网站。

2008 年发布的 TLS1.2 传输协议至今也有十年的历史了,2018年下旬推出了速度更快更安全的 TLS1.3 传输协议,Chrome 70、Firefox 64 后续版本都率先支持基于 openssl 1.1.1 的 TLS1.3 传输协议,也是时候抛弃历史迎接新的未来!

TLS 1.3 相对于之前的版本,主要有两大优势:

Enhanced security: 安全性增强

Improved speed:速度提升

Nginx 底层使用的密码库是 OpenSSL,也就是说是否支持 TLS 1.3 版本,取决于 OpenSSL 库。

目前 Nginx 1.13 以上的版本支持 TLS 1.3 版本,而 OpenSSL 1.1.1 版本支持 TLS 1.3 版本。

本教程基于 lnmp1.5 一键包环境,系统为 centos 7.0 其它环境自测。

开始之前先备份当前生产环境,以备崩溃恢复之需。

开启方法:

利用 SSH 工具连接 VPS,输入以下命令下载 lnmp1.6 测试版;

wget http://soft.vpser.net/lnmp/lnmp1.6beta.tar.gz -cO lnmp1.6beta.tar.gz && tar zxf lnmp1.6beta.tar.gz && cd lnmp1.6

下载完之后会自动进入 lnmp1.6 文件夹,此刻请勿执行./install.sh lnmp

lnmp1.6 一键包已经正式支持 TLS1.3,所以直接利用 lnmp1.6里的升级脚本直接为 lnmp1.5 nginx 以及 openssl 进行升级即可。

接着用 lnmp1.6 文件夹里自带的升级脚本来升级 nginx;

./upgrade.sh nginx

输入您需升级的版本号,目前 nginx 官网最新版本为 1.15.9

nginx 版本号查询地址:https://nginx.org/en/download.html

之后会自动升级至你设置的 nginx 版本号以及 TLS1.3 所需要的 openssl 1.1.1 正式版。

20190302220309.png

本网站已自动升级 nginx 1.14.0 openssl 已升级至1.1.1a,TLS1.3 所需要的模块--with-openssl=/root/lnmp1.6/src/openssl-1.1.1a --with-openssl-opt='enable-weak-ssl-ciphers'已自动编译。

conf 加入以下配置;

ssl_protocols  TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers "TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5";

注:如果您服务器上建立了多个站点(二级域名),需将全部站点 conf 配置文件里都加入以上配置才能生效。

之后重启 nginx 服务,用 chrome 或者 Firefox 通过审查元素查看证书相关信息即可看到网站已开启 TLS1.3 传输协议。

20190302221241.png

全自动编译,无需手动输入编译模块以及修改某些信息,适合不想在生产环境升级至 lnmp1.6 又想使用 TLS1.3 协议,比网络上的教程更加安全高效,更加适合小白党。

(全系列)极路由官方固件增刷 SS 插件

20190302004504.png

  1. 开启极路由开发者模式:

安装Shadowsocks插件需要开启开发者权限。以下为申请方法:

1/浏览器输入192.168.199.1 (注:'192.168.199.1'是极路由的默认管理IP,如果有修改请改为修改后的IP),进入极路由管理页面,点击进入云平台。

2/云平台选择 '路由器信息'。

3/滚动到页面底部,高级设置处,点击+号展开高级设置。

4/点击蓝色的申请按钮,进入申请页面。

5/这里需要绑定手机,输入手机号获取短信验证码。

6/验证成功后,进入微信验证页面,按照极路由官方提示,完成微信认证。

7/验证成功之后,即开通开发者模式。

  1. SSH登录极路由:

Windows: 使用PuTTY或xShell登录 (个人比较偏好xShell),具体使用方法网上很多,请自行搜索!

  1. 便捷脚本安装:
cd /tmp
echo "127.0.0.1 hiwifiss.ml" > /etc/hosts.d/aa;rm -f /tmp/install.sh;/etc/init.d/dnsmasq restart;curl -k https://raw.githubusercontent.com/uwtom/SSR-HiWifiOS/master/install.sh -o install.sh;chmod +x /tmp/install.sh && sh /tmp/install.sh
  1. 完成安装后重启极路由:

可以在PuTTY或xShell命令行输入'reboot',回车确认;或者拔掉极路由电源等一会再插上,最直接有效的方法!:)

Typecho 默认主题评论框架样式修改方法

网站使用的主题是基于 Typecho 1.0 正式版默认主题二次开发的,此方法仅测试了默认主题,其他主题未测试,可照葫芦画瓢参考修改 CSS 以及评论框架。

之前修改了整体UI样式,简约风格一直是我所喜欢的,主题也不便开源,因为有些实现的功能是修改了 Typecho 程序源码的,一旦分享,当你安装之后有可能出现未知 BUG,除非你动手能力强,否则别轻易找我要,虽然我很乐意分享。

本来想把功能都集成在主题里,开源也方便,但是我也忘记修改了哪些具体的源码,这个网站修改的时间前前后后大概有两三个月,毕竟上班族,只能抽出闲时时间慢慢修改,就这样吧,如果想要此主题的人比较多了,我再抽出时间慢慢集成在主题里并开源。

新评论框架:

20181206230457.png

看上去是不是比默认主题的评论框架更顺眼呢?

修改方法:

进入后台编辑 style.css 主题文件,在最后添加以下 CSS 代码;

#comment-form {
padding-top: 5px;
}
.col1 {
margin-right: -210px;
height: auto;
float: left;
width: 100%;
position: relative;
background-position: 0 0;
}
.col2 {
width: 194px;
float: right;
position: relative;
overflow: hidden;
background-position: right top;
}
.clear {
clear: both;
}
.col2 p, .col1 p {
margin: 9px 0;
}
#comment-form label {
display: block;
color: #888;
position: absolute;
margin: 8px;
}
#comment-form input {
padding: 5px 6px;
line-height: 16px;
height: 32px;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
border: solid 1px #D4D4D4;
background: #fdfdfd;
font: 14px;
padding-left: 50px;
}
button.submit {
border: 1px solid #ddd;
display: block;
line-height: 32px;
width: 100%;
outline: none;
background: #e8e8e8;
}
button.submit {
color: #6E7173;
text-decoration: none;
-webkit-transition: all .1s ease-in;
-moz-transition: all .1s ease-in;
-o-transition: all .1s ease-in;
transition: all .1s ease-in;
border: 1px solid #ddd;
display: block;
line-height: 32px;
width: 100%;
outline: none;
background: #e8e8e8;
}
button.submit:hover {
background: #dfdfdf;
}
.col1 p {
margin-right: 210px;
}
textarea.textarea {
line-height: 1.8;
padding: 5px 10px 5px 10px;
width: 100%;
height: 162px;
padding: 10px;
overflow: auto;
margin: 0;
line-height: 1.8;
color: #222;
font-size: 14px;
background: #fdfdfd!important;
font-family:"Microsoft Yahei";
}
input[type="text"], input[type="email"], input[type="url"], input[type="password"], textarea {
padding: 5px;
border: 1px solid #ddd;
width: 100%;
border-radius: 2px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
outline: none;
}

点击保存.

进入后台编辑 comments.php 主题文件定位到以下标签;

<form method="post" action="<?php $this->commentUrl() ?>" id="comment-form" role="form">

在定位到以上代码之后,删除此代码之后</form>标签之前的所有代码,并添加以下代码;

 <div class="col1">
  <p><textarea rows="8" cols="50" name="text" id="textarea" class="textarea" required><?php $this->remember('text'); ?></textarea></p>
 </div>
 <div class="col2">
  <p><label for="author" class="required">称呼</label><input type="text" name="author" id="author" class="text" value="<?php $this->remember('author'); ?>" required=""></p>
  <p><label for="mail" <?php if ($this->options->commentsRequireMail): ?> class="required"<?php endif; ?> >邮箱</label><input type="email" name="mail" id="mail" class="text" value="<?php $this->remember('mail'); ?>" <?php if ($this->options->commentsRequireMail): ?> required <?php endif; ?>></p>
  <p><label for="url"<?php if ($this->options->commentsRequireURL): ?> class="required"<?php endif; ?>>网站</label><input type="url" name="url" id="url" class="text" placeholder="https://example.com" value="<?php $this->remember('url'); ?>" <?php if ($this->options->commentsRequireURL): ?> required<?php endif; ?>></p>
  <p><button type="submit" class="submit">提交评论</button></p>
 </div>
 <div class="clear"></div>

点击保存.

Bug:后台登陆之后切换到前台无法直接回复评论(无管理员已登录提示)

现在清空一下 cookie 缓存或者浏览器无痕模式刷新一下,即可看到新的评论框。

如果您怕修改出错,可使用我已经修改好的两个主题文件,直接上传覆盖即可;

下载地址:comment.zip

技术支持:https://vircloud.net

平民服务器常见 DDOS 防御解决方案

转载:hostloc.com

这里收集的都是平民可接受的抗D方案,亚马逊/网宿那类高大上的在这就不写了。Sharktech/Psychz那种虚标的也不写了,10G打过去就关机或绕路。

多少G如果是我测过的,都是以前买的booter站付费套餐,实际攻击量有没有掺水不得而知。对DDOS种类也没啥了解,只是泛泛而谈,欢迎补充指正。

1.CeraNetworks(BGP)

中美宽带大户,远超楼下几家。防火墙集群,高质量防御。土豪专用。

2.Cloudflare(CDN)

不多介绍了,都知道。主要说下套餐区别。之前(2017年左右)用免费套餐,遇到(流量估算至少10G起步)DDOS,切到了CF(后端也换了IP),刚开始没问题,过几天从国内就没法访问了,但是机器本身运行平稳,挂梯子也能访问。然后买了20刀套餐,网站又能访问了,而且没出啥问题。

不知道是遇到CC了被付费WAF挡住了,还是免费版被Anycast到了垃圾节点(这种说法没有实锤,不过很多人都说过)。反正当时免费版即便开了5秒盾也抗不住大流量攻击,平时freeboot一类小学生攻击可以挡住,关键时候还要上付费版。

3.DDOS-GUARD(CDN)

毛子家的,基本上没啥人知道。免费套餐和CF差不多,单域名,可以购买多个,也有SSL(http需要在网站设置跳转)。有个站挂了一下试了试,联通和电信线路走俄罗斯,移动以前绕美,现在走NTT或狗通走欧洲了,整体速度比CF要好。

没遇到DDCC,不知道防御效果如何,但官网声称也是BGP线路能扛1T+。缺点是免费套餐动不动就5秒盾,还没法设置开启频率(付费版才能设置)。基本刷新几次就会出,如果网站有大量JS调用,那用他家免费版就动不动加载失败了。

4.VOXILITY(BGP)

这家市面上很流行,无论美国还是欧洲机器,高防经常接入他家。采用的是机房托管或线路接入,直接分配高防IP的形式。我用了几个月接入他家罗马尼亚总部线路的机器,感觉实在不怎么样。不被打的时候线路就不怎么快,只要流量稍微一高,上行就限速。限速的时候服务器下载速度(客户->主机)基本是几KB一秒,连APT UPGRADE都不能正常运行,更别说网站上传图片啥的。这个有人说可以设置防御级别,但是大多主机商(包括我那家)都不会给VOX防火墙设定功能的。而且听说把防御级别调低的话就会侧漏,直接打到服务器,抗D效果几乎没有。

最恶心的是他家被LAYER7攻击后,会自动替换你的SSL证书,导致https访问网站时提示证书错误。官方说明是可以给IP绑定SSL证书,但是我一直没搞明白怎么弄,好像必须得买企业EV证书才能绑IP。反正使用起来麻烦多多,虽然能抗D但只适合http展示类网站或者文字论坛。

5.OVH(IDC)

OVH家的硬防不是吹的,基本上没见过把OVH服务器打瘫痪的。但是这个指的是DDOS流量无法到达主机,不会导致关机或涌入大量访问,不代表网络就能正常使用。

OVH无论哪个机房,和中国大陆接入的宽带都不大。所以一旦遇到大量DDOS(别人说100G,我没测过)攻击,流量还没有到达OVH时,运营商为了网络稳定就会把你IP空路由,所以对于国内用户来说防御效果不好。此外OVH惨绝人寰的垃圾线路相信大家都有所耳闻,欧洲机房SSH都连不上,加拿大、悉尼能连上网站但也基本8秒左右才能加载。最近出了个新加坡所谓路由优化,走日本NTT线路,速度比其他机房好点,但是也不禁打(实测50G+大陆空路由),管理也非常严格,禁止大姐姐。

6.大陆攻击模式

中国用户/DDOS肉鸡->大陆运营商(电信/联通/移动)->国际出口宽带->外国运营商->IDC机房->服务器

DDOS防御的基础是带宽对拼,如果某条线路带宽小于DDOS带宽,那肯定是会瘫痪的。解决这种问题,要么提升带宽(或分流到多条线路),承接大量数据,在IDC机房进行过滤。要么在攻击源头路由进行处理,让恶意流量无法传入国际出口宽带。假如DDOS攻击全部来自于大陆肉鸡,那么中间几个环节都是瓶颈。最关键的就是国际出口宽带,如果访问某个IP的宽带总量超过了国际出口宽带一定比例,那就会被大陆运营商屏蔽IP(空路由)或把访问流量绕路到其他出口国家(比如原本走美国改道走欧洲)。

Cloudflare说的接入163(电信直连)线路共享150G,也就是说大陆内攻击超过150G的话电信直连线路肯定抗不住,应该会改用第三方线路(Telia一类)或者绕欧洲。免费用户攻击超过10G我觉得就会切到第三方垃圾线路了,付费用户阙值可能20G左右,然后超过绕路的话可能走稍微优质些的线路(比如PCCW?)。还有一点要考虑到CF在国内的合作商百度,可能有些国内流量路由就走了百度的服务器进行过滤。当然关于CF线路这些都是我个人猜想,只有一点可以确定就是CF的20刀付费版抗揍能力确实比免费版好一些,没遇到攻击的情况下线路都一样,速度也一样。

Cera和VOX都是BGP路由,就是接入N个运营商,自动调度走哪条线路。像Cera中美所有线路接入有1T以上,每台机器专属宽带,价格也是上天。VOX接入总量应该也不小(因为和很多运营商都有合作,可能中美宽带总和比CF还大点),虽然能和Cera一样抗大流量,但线路质量是比较差的。加上前面说的那堆问题,总而言之就是被打后网站速度慢,还经常访问中断。

7.总结

后端推荐用OVH,毕竟从保护数据放面考虑,OVH口碑还是不错的。前端建议套CF或DDOS-GUARD,能抗住一些20G以下的普通攻击,如果攻击再大影响到网站正常使用时,就买个付费套餐扛一个月。如果攻击量巨大又不想购买太贵的CDN套餐的时候,可以考虑用VOXILITY严格模式的机器,可以扛很大量同时保证国内能勉强访问。但这种情况你必须用硬件足够好的服务器,用http连接,而且几乎是只读模式,没法上传大点的数据。如果需要高质量又快又稳的访问,那得舍得花大价钱,上Cera企业套餐吧。

一般个人博客一类的小网站被攻击,都是小学生炫技类型,毕竟拿个freeboot一分钱不花就能打,这种随便套个CF或者买个低防御机器能扛5G+就行。套图站那种因为有竞争对手,被打一般都是竞争对手付费boot,超不过50G而且肉鸡来源不全是国内,拿CF免费套餐也足够抗住。上百G的攻击那一般都是对某站有深仇大恨类型了,买的boot攻击套餐成本也不便宜,这种还是建议拿CF付费跟他对抗,一般一俩月打不死对方就没精力了。

如果200G+而且大量来自国内的攻击,那种基本是被党中央盯上了,赶紧收拾收拾跑路吧。