纪念第一次被DDOS

半夜零点腾讯云突然发短信通知一台云主机被DDOS,弄得我正睡意正浓的突然被吵醒。

我那破主机还有人光顾。不过想想还要上班,懒得折腾,管他谁呢,怕它再扰我清梦,直接用手机把服务器关了。

早晨醒来,以为哪个无聊的家伙应该走了吧,我一空主机,就装了LNMP也被关照,难得啊。

于是开机。谁知上午又出现了三次,我一空网站,页面都没有,不知道谁攻击。

每次1~2分钟,从几百M的到2G的攻击带宽。

没处理过啊。一时无头脑。突然想起来以前玩VULTR和AWS时可以随时换IP。不知道腾讯云会不会有弹性IP。

发现还真有,于是直接换了IP。让DDOS见鬼去吧。

 

Nginx配置网站ECC RSA 双证书

软件版本需求:

NGNIX>1.10

Openssl>1.02

首先需要申请ECC和RSA两种签名SSL证书,免费证书申请详见:关于免费ssl证书的那些事儿

配置证书路径:

ssl_certificate     example.com.rsa.crt;
ssl_certificate_key example.com.rsa.key;
 
ssl_certificate     example.com.ecdsa.crt;
ssl_certificate_key example.com.ecdsa.key;

此时由于双证书,浏览器无法区分不同的加密算法使用的配套加密协议该使用哪个证书;

因此重点在于算法的区分,不同的算法对应不同是证书,配置ssl_ciphers

ssl_ciphers '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';
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';

以上三种算法区分,均可使用一种即可。

至此,双证书配置完成。

 

letsencrypt新认证方式和泛域名支持延迟至4月发布ACMEv2 and Wildcard Launch Delay

根据letsencrypt最新消息,原定于2月底发布支持的新认证方式和泛域名支持证书,由于测试及认证,预计延迟两周发布。

https://community.letsencrypt.org/t/acmev2-and-wildcard-launch-delay/53654

拭目以待。

 

关于免费SSL证书的那些事儿

根据 Let’s Encrypt CA 的统计,截至 2017 年 11 月,Firefox 加载的网页中启用 HTTPS 的比例占 67%,比去年底的 45% 有巨大提升。浏览器开发商如 Mozilla, Google 准备采取下一步措施:将所有 HTTP 网站标记为不安全。
随着 HTTPS 的普及,给网站加个 SSL 证书已经是大势所趋而且很有必要了。
目前已经存在不少免费好用的 SSL 证书,因此,本文就来盘点一下关于免费 SSL 证书的那些事儿。

一、Let’s Encrypt

官方网站:https://letsencrypt.org/
点评:毫无疑问,Let’s Encrypt 是目前使用范围最为广泛的免费 SSL 证书,而且官方博客宣布,自 2018 年开始提供通配符 SSL 证书,也就是 wildcard certificates。这对于广大个人站长来说,无疑是个不错的利好消息。唯一的缺憾就是,Let’s Encrypt 发行的证书有效期只有 3 个月,虽然可以通过定时任务来自动续期。
如何申请?可以通过安装 LAMP 后,使用 lamp add 命令来自动创建 SSL 证书。也可以通过以下在线申请网站,手动申请证书。
在线申请网址1(中文):https://freessl.org/
在线申请网址2(英文):https://www.sslforfree.com/
在线申请网址3(英文):https://gethttpsforfree.com/

二、TrustAsia

官方网站:https://www.trustasia.com/
点评:TrustAsia 是国内一家新兴的 SSL 证书提供商,赛门铁克(Symantec)亚太区的白金合作伙伴。随着 Symantec 的 CA 业务被 DigiCert 收购完成,其证书链也从 Symantec 变为 DigiCert。现在也开始提供免费 1 年期的 DV SSL 证书。
在线申请网址:https://freessl.org/

三、AlwaysOnSSL

官方网站:https://alwaysonssl.com/
点评:AlwaysOnSSL 是一个新的免费和自动认证机构。它由 CertCenter 和 Digicert 运行,免费提供 6 个月的 DV SSL 证书。
在线申请网址:https://alwaysonssl.com/

四、Comodo

官方网站:https://www.comodo.com/
点评:在 Let’s Encrypt 没有问世之前,Comodo 的市场占有率是第一位。随着 Let’s Encrypt 的盛行,Comodo 在 DV SSL 市场占有率逐渐下降,但依然是 SSL 的龙头企业。目前 Comodo 也提供免费 90 天的免费 DV SSL 证书。
在线申请网址1:https://secure.instantssl.com/products/SSLIdASignup1a
在线申请网址2:https://www.100tb.com/
备注:100TB 免费提供 1 年期的 Comodo 证书,前提是需要注册为会员后才能在后台申请。100TB 的规定是,发行的证书只能在他们家的产品上使用,否则会有被吊销的风险。申请时,请自备 CSR(Certificate Signing Request),这里有 CSR 在线生成工具。参考网址:https://www.csr.sh/

五、Cloudflare

官方网站:https://www.cloudflare.com/
点评:Cloudflare 很早就开始提供免费 SSL 证书,前提是你的域名要放在 Cloudflare 解析,注册为 Free Plan 就可以。
备注:只要域名加入 Cloudflare Free Plan,解析 A 记录的时候,点击 Traffic to this hostname will go through Cloudflare,就可以了。一般情况下,这个免费的 Universal SSL 里会包含一大堆别人的域名(该证书也是 Comodo 发行的)。当然,如果你比较介意这个的话,可以付费购买其 Dedicated SSL Certificate ($5/month) 或 Dedicated SSL Certificate with Custom Hostnames ($10/month)。

六、AlphaSSL

官方网站:https://www.alphassl.com/
点评:其实 AlphaSSL 并不免费提供 SSL 证书,而且价格不菲。但是 AlphaSSL 跟 SingleHop 有合作关系,免费给 SingleHop 的客户发行证书,甚至包括通配符 SSL 证书。有人根据这个规则,开发了个自动发行证书的工具。详见:https://github.com/Vittfarne/ASSL
也就是说,只要你有了 SingleHop 的服务,就可以使用你的帐号密码以及该工具去当个活雷锋了。但是,不可避免地,这样的活雷锋是当不了多久的。一般其下场会因为滥用被 SingleHop 给关闭账户。
值得注意的是,如果你申请了这个 SSL 证书,就要有 SSL 证书随时可能被吊销的觉悟。
详情始末的参考网址:https://www.lowendtalk.com/discussion/comment/2306096/#Comment_2306096
在线申请网址:https://en.assl.space/

尾声:

自从 Let’s encrypt 开始提供免费DV SSL后,SSL 证书市场就已经开始洗牌了。
值得一提的是 StarCom 原本是一家以色列的证书商,提供免费和收费的 SSL 证书,后被国内公司 360 收购。曾在 CA 市场也有一席之地,StartCom 的问题在于被发现允许对证书的签发日期进行倒填,从而达到规避 SHA1 证书在 2016 年 1 月 1 日之后被浏览器警告的目的。最终于 2017 年 11 月 16 日,StartCom 宣布终止业务,自 2018 年 1 月 1 日起停止颁发新证书,并于 2020 年停止 OCSP 和 CRL 服务。
沃通(Wosign)也属于类似情况,被 Mozilla 认为 WoSign 最严重的问题是伪造(或者说人为设置)了证书签发日期,相继被 Mozilla 和 Chrome 不信任,最终导致出局。

最后,随着 https 的广泛被适用,我们也乐于看到越来越多的 CA 开始提供免费的 DV SSL 证书。

文章来源:秋水逸冰 » 关于免费SSL证书的那些事儿

如何卸载阿里云&腾讯云官方的监控软件服务(安骑士、云镜)

阿里云和腾讯云都提供了自己的安全保姆化方案,但是自从去年阿里云安骑士错误删除客户文件后,这类服务器软件一直处于褒贬不一的情况。中国的服务器安全确实缺口很大,但是也确实不能因为客户不作为就帮他打开家门加了个管家吧,虽然是免费的。

查询网上有提到的几种卸载方案,各位备用:

卸载云盾(安骑士)

curl -sSL http://update.aegis.aliyun.com/download/quartz_uninstall.sh | sudo bash
 
sudo rm -rf /usr/local/aegis
 
sudo rm /usr/sbin/aliyun-service
 
sudo rm /lib/systemd/system/aliyun.service

代码备份

bash
#!/bin/bash
 
#check linux Gentoo os 
var=`lsb_release -a | grep Gentoo`
if [ -z "${var}" ]; then 
    var=`cat /etc/issue | grep Gentoo`
fi
 
if [ -d "/etc/runlevels/default" -a -n "${var}" ]; then
    LINUX_RELEASE="GENTOO"
else
    LINUX_RELEASE="OTHER"
fi
 
stop_aegis(){
    killall -9 aegis_cli >/dev/null 2>&1
    killall -9 aegis_update >/dev/null 2>&1
    killall -9 aegis_cli >/dev/null 2>&1
    printf "%-40s %40s\n" "Stopping aegis" "[  OK  ]"
}
 
stop_quartz(){
    killall -9 aegis_quartz >/dev/null 2>&1
        printf "%-40s %40s\n" "Stopping quartz" "[  OK  ]"
}
 
remove_aegis(){
if [ -d /usr/local/aegis ];then
    rm -rf /usr/local/aegis/aegis_client
    rm -rf /usr/local/aegis/aegis_update
fi
}
 
remove_quartz(){
if [ -d /usr/local/aegis ];then
    rm -rf /usr/local/aegis/aegis_quartz
fi
}
 
 
uninstall_service() {
 
   if [ -f "/etc/init.d/aegis" ]; then
        /etc/init.d/aegis stop  >/dev/null 2>&1
        rm -f /etc/init.d/aegis 
   fi
 
    if [ $LINUX_RELEASE = "GENTOO" ]; then
        rc-update del aegis default 2>/dev/null
        if [ -f "/etc/runlevels/default/aegis" ]; then
            rm -f "/etc/runlevels/default/aegis" >/dev/null 2>&1;
        fi
    elif [ -f /etc/init.d/aegis ]; then
         /etc/init.d/aegis  uninstall
        for ((var=2; var<=5; var++)) do
            if [ -d "/etc/rc${var}.d/" ];then
                 rm -f "/etc/rc${var}.d/S80aegis"
            elif [ -d "/etc/rc.d/rc${var}.d" ];then
                rm -f "/etc/rc.d/rc${var}.d/S80aegis"
            fi
        done
    fi
 
}
 
stop_aegis
stop_quartz
uninstall_service
remove_aegis
printf "%-40s %40s\n" "Uninstalling aegis"  "[  OK  ]"
 
remove_quartz
printf "%-40s %40s\n" "Uninstalling aegis_quartz"  "[  OK  ]"

另有强删方案:

#!/bin/bash 
rm -rf /usr/local/aegis 
for A in $(ps aux | grep Ali | grep -v grep | awk '{print $2}') 
do 
  kill -9 $A; 
done

屏蔽云盾 IP

而后检查服务器记录时发现一堆  Alibaba.Security.Heimdall 的访问记录。网上查询发现是云盾。

根据官方介绍

云盾会通过公网模拟黑客入侵攻击,进行安全扫描。所以服务器有安全防护时,需要对云盾扫描ip进行放行。

赶快屏蔽!

此处使用 UFW, iptables 用户请自己找一下添加方法。注意:如果已有接受 80 端口之类的规则,新增的拒绝 IP 规则在其后将不会生效。所以要在  /etc/ufw/before.rules 设置。

sudo nano 编辑此文件并找到  # End required lines,在其后添加:

# Block Ali Yun Dun  https://help.aliyun.com/knowledge_detail/37436.html
 
-A ufw-before-input -s 140.205.201.0/28 -j DROP
-A ufw-before-input -s 140.205.201.16/29 -j DROP
-A ufw-before-input -s 140.205.201.32/28 -j DROP
-A ufw-before-input -s 140.205.225.192/29 -j DROP
-A ufw-before-input -s 140.205.225.200/30 -j DROP
-A ufw-before-input -s 140.205.225.184/29 -j DROP
-A ufw-before-input -s 140.205.225.183/32 -j DROP
-A ufw-before-input -s 140.205.225.206/32 -j DROP
-A ufw-before-input -s 140.205.225.205/32 -j DROP
-A ufw-before-input -s 140.205.225.195/32 -j DROP
-A ufw-before-input -s 140.205.225.204/32 -j DROP

保存后运行  sudo ufw reload。完毕!

 

据说腾讯云云镜也有类似问题:转:

#!/bin/bash
#fuck tx process
rm -rf /usr/local/sa
rm -rf /usr/local/agenttools
rm -rf /usr/local/qcloud
process=(sap100 secu-tcs-agent sgagent64 barad_agent agent agentPlugInD pvdriver )
for i in ${process[@]}
do
  for A in $(ps aux | grep $i | grep -v grep | awk '{print $2}')
  do
    kill -9 $A
  done
done
 
chkconfig --level 35 postfix off
service postfix stop
echo ''>/var/spool/cron/root
echo '#!/bin/bash' >/etc/rc.local

文章转载:

https://www.cmsky.com/uninstall-aliyun-monitoring

https://blog.whe.me/post/uninstall-aliyun-monitoring.html

参考文献:

https://www.v2ex.com/t/217931

https://help.aliyun.com/knowledge_detail/40477.html

http://51.ruyo.net/p/5369.html

使用国内Mariadb源安装RPM包

最近在国内云下载Mariadb,发现默认的源实在太慢。

经过查询发现可以使用国内源头。单独设置。推荐中科大源。

sudo vi /etc/yum.repos.d/MariaDB.repo

# MariaDB 10.1 CentOS repository list - created 2016-12-31 08:44 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.1/centos73-amd64/
gpgkey = https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1

 

./configure: line 25001: make: command not found编译错误 Centos下安装g++

CENTOS编译安装软件时候command is not found,可能是没有正确安装g++编译器.

centos:

gcc:

yum install gcc

g++:

yum install gcc-c++
#或者
yum install make
#或者
yum groupinstall "Development Tools"
#或者
yum install gcc gcc-c++ kernel-devel

 

— 或者
— 或者

在线更新Ubuntu

1、终端下执行命令

$ sudo apt-get update && sudo apt-get dist-upgrade

2、重启系统以完成更新的安装

$ sudo init 6

3、用命令安装更新管理器核心update-manager-core,如果服务器已安装则可以跳过

$ sudo apt-get install update-manager-core

4、编辑/etc/update-manager/release-upgrades配置文件,设置Prompt=lts

$ sudo vi /etc/update-manager/release-upgrades

5、启动升级进程

$ sudo do-release-upgrade -d

6、按下“Y”,点击回车,开始升级过程

7、随着升级的系统,必须重启某些服务,选择Yes并继续

8、系统会提示删除过时的包,输入“Y”,并在升级过程完成后,使用以下命令重新启动服务器:

$ sudo init 6

现在Server已经升级到Ubuntu Server 16.04(Xenial Xerus)LTS。