阿里云轻量级/ECS之纯净环境配置(附Caddy)

阿里云盾/云监控的建设是一个庞大且系统的工程,包括但不限于对公网流量的检测和对疑似节点的Replay attack,据官方解释,该云盾通过安装在服务器上轻量级Agent与云端威胁情报联动,保护服务器免受网站后门的威胁,同时对于可疑的登录事件进行实时告警,增强服务器的安全防护基线。与此同时,前者又会在系统中产生 Alibaba.Security.Heimdall 的访问记录,获取用户搭建网站的敏感信息,云盾会对从IDC机房入口的流量做分析,自动对流量进行漏洞分析与测试。所以,打造一个较为纯净的运维环境是十分必要的。

卸载云盾

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
代码备份
#!/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  ]"

屏蔽云盾 IP

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

根据官方介绍

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

原方法:使用 UFW / iptables

此处使用 UFWiptables 用户请参考下方网友评论。注意:如果已有接受 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/24 -j DROP
-A ufw-before-input -s 140.205.225.0/24 -j DROP
-A ufw-before-input -s 106.11.222.0/23 -j DROP
-A ufw-before-input -s 106.11.224.0/24 -j DROP
-A ufw-before-input -s 106.11.228.0/22 -j DROP

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

删除阿里云登录界面欢迎信息

Welcome to Ubuntu 17.04 (GNU/Linux 4.10.0-19-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

Welcome to Alibaba Cloud Elastic Compute Service ! Last login from ***.***.***.***

源自文件:

 sudo nano /etc/motd  

使用 Caddy 作为静态服务器

Caddy 是一款由 Go 编写的 Web Server,与 Nginx 相比,最大的特点就是部署简单并默认启用 HTTPS,它是第一个无需额外配置即可提供 HTTPS 特性的 Web 服务器。同样是使用 Let’s Encrypt,之前使用 Nginx 需要手工配置证书,还需要编写三个月更新证书的 cron 计划任务。另外 Caddy 默认启用更快的 HTTP/2 协议。

安装 Caddy

Caddy 官方支持多种安装方式,我是使用脚本的方式,服务器为Ubuntu 16.04 64位。 首先更新下系统,然后安装 wget 和 curl 再下载 caddy 安装文件并赋予可执行权限。

apt update && sudo apt upgrade -y && sudo apt autoremove -y
apt install wget -y && apt install curl -y
wget https://getcaddy.com -O getcaddy
chmod +x getcaddy

然后根据需求可选安装插件,比如我安装了http.cache, http.expires, http.ipfilter, http.minify等插件:

./getcaddy personal http.cache,http.expires,http.ipfilter,http.minify,http.nobots,http.ratelimit

生产环境配置&使用
安装完成后需要进行一些配置方便在生产环境使用。
先设置相关权限。

chown root:root /usr/local/bin/caddy
chmod 755 /usr/local/bin/caddy
setcap 'cap_net_bind_service=+eip' /usr/local/bin/caddy

setcap 'cap_net_bind_service=+eip' 是使服务程序运行在非root帐户下时,也能够banding到低端口。
下面新建配置文件目录,并新建一个 Caddyfile 文件,并写入一条 import 指令。

mkdir -p /etc/caddy
chown -R root:www-data /etc/caddy
mkdir -p /etc/ssl/caddy
chown -R www-data:root /etc/ssl/caddy
chmod 770 /etc/ssl/caddy
touch /etc/caddy/Caddyfile
echo 'import ./vhosts/*' > /etc/caddy/Caddyfile

然后创建网站文件的存放目录。

mkdir -p /var/www
chown www-data:www-data /var/www
chmod 755 /var/www

创建好上面的文件和目录之后,我们还需要把 caddy 配置成一个服务,方便管理和开机自动运行。

curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service  # 从 github 下载 systemd 配置文件
chown root:root /etc/systemd/system/caddy.service   # 配置权限
chmod 744 /etc/systemd/system/caddy.service
systemctl daemon-reload         #重新加载 systemd 配置
systemctl enable caddy.service  # 设置 caddy 服务自启动
systemctl start caddy.service   # 启动 caddy 状态

Caddy当前状态

systemctl status caddy 
service caddy status

重启下Caddy 服务

systemctl restart caddy.service
systemctl restart caddy
service caddy restart

更详细的内容可以去官网上看文档学习: https://caddyserver.com/docs

鸣谢: Ubuntu UFW 防火墙设置
         替换 Nginx 使用 Caddy 作为博客静态服务器 

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注