2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 【阿里云ECS最佳实践】ECS+RDS构建云服务器主动防御系统部署开源蜜罐系统Hfish及ECS周

【阿里云ECS最佳实践】ECS+RDS构建云服务器主动防御系统部署开源蜜罐系统Hfish及ECS周

时间:2021-12-08 04:33:32

相关推荐

【阿里云ECS最佳实践】ECS+RDS构建云服务器主动防御系统部署开源蜜罐系统Hfish及ECS周

点击免费领取ECS,云上部署轻松搞定:/m/1000370355/

云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云计算最基础的概念便是云服务器,对Openstack概念有了解的,对接触ECS就不会有隔阂。云服务器ECS主要包含以下功能组件:实例、块存储、快照、网络,这些对应了Openstack中的flavor、Cinder、Snapshot、Neutron等经典服务组件。对待传统IDC机房,阿里云让我们的业务不用买厚厚的服务器、构建复杂的网络、管理空调水电,在阿里云氪金下单就行了,一台崭新的高性能云服务器ECS就到你手中了

网络安全一直都是最受瞩目的话题之一,我们所有公开在互联网的资产每分每秒都在受到有意或无意的扫描攻击。前段时间国家公布的最劲爆的消息莫过于中国互联网持续遭受境外组织的网络攻击。境外组织通过攻击、控制中国境内的计算机,进而对俄罗斯、乌克兰、白俄罗斯的目标进行网络攻击。不少防御能力弱的计算机、服务器沦为肉鸡。

作为网络安全从业者,对蜜罐一定不陌生。蜜罐最大的价值是诱使攻击者展示其能力和资产,蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获 和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。

一、服务器上手

我选择的是ECS计算型c5,2核4G 带宽5M的配置

1.修改SSH远程登录的端口

抛开常规的设置密码操作之外,我个人认为修改SSH远程连接端口是非常重要也是非常基础的操作,就他人的恶意扫描来说,会针对服务的默认端口进行扫描爆破攻击,我们将默认的TCP22端口改成不常用的高端口,可以简单的避免大规模的SSH扫描爆破(除堡垒机跳板机来进行运维,有这些来控制更好)

进入ssh配置目录[root@iZbp14j2amyqheetigvagtZ ~]# cd /etc/ssh编辑ssh_config配置文件,修改Port字段[root@iZbp14j2amyqheetigvagtZ ssh]# vim sshd_config[root@iZbp14j2amyqheetigvagtZ ssh]# cat sshd_config |grep PortPort 3xxxxxx重启服务生效,后续在控制台白名单放行即可[root@iZbp14j2amyqheetigvagtZ ssh]# systemctl restart sshd

2.unixbench测评方法

unixbench用来测试服务器跑分也算比较常见,但是受影响的因素较多,仅供参考

git到unixbench代码

​[root@iZbp14j2amyqheetigvagtZ ~]# git clone GitHub - kdlucas/byte-unixbench: Automatically exported from /p/byte-unixbenchCloning into 'byte-unixbench'...remote: Enumerating objects: 222, done.remote: Counting objects: 100% (17/17), done.remote: Compressing objects: 100% (12/12), done.remote: Total 222 (delta 7), reused 12 (delta 5), pack-reused 205Receiving objects: 100% (222/222), 225.58 KiB | 632.00 KiB/s, done.Resolving deltas: 100% (113/113), done.​

对unixbench进行make

[root@iZbp14j2amyqheetigvagtZ byte-unixbench]# cd UnixBench/[root@iZbp14j2amyqheetigvagtZ UnixBench]# make

ECS服务器需要安装perl-time-hies组件

[root@iZbp14j2amyqheetigvagtZ UnixBench]# yum -y install perl-Time-HiRes

运行Run

[root@iZbp14j2amyqheetigvagtZ UnixBench]# ./Run

测试结果

=======================================================================BYTE UNIX Benchmarks (Version 5.1.3)System: iZbp14j2amyqheetigvagtZ: GNU/LinuxOS: GNU/Linux -- 5.10.84-10.2.al8.x86_64 -- #1 SMP Thu Feb 10 15:03:09 CST Machine: x86_64 (x86_64)Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")CPU 0: Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz (5000.0 bogomips)Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRETCPU 1: Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz (5000.0 bogomips)Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET23:11:07 up 1 day, 7:08, 4 users, load average: 0.10, 0.09, 0.05; runlevel -03-31------------------------------------------------------------------------Benchmark Run: Fri Apr 01 23:11:07 - 23:39:122 CPUs in system; running 1 parallel copy of testsDhrystone 2 using register variables 34381345.8 lps (10.0 s, 7 samples)Double-Precision Whetstone 5587.9 MWIPS (9.9 s, 7 samples)Execl Throughput 3572.5 lps (30.0 s, 2 sample)File Copy 1024 bufsize 2000 maxblocks 627665.4 KBps (30.0 s, 2 samples)File Copy 256 bufsize 500 maxblocks 166712.0 KBps (30.0 s, 2 samples)File Copy 4096 bufsize 8000 maxblocks 1735567.3 KBps (30.0 s, 2 samples)Pipe Throughput 771403.2 lps (10.0 s, 7 samples)Pipe-based Context Switching 217316.8 lps (10.0 s, 7 samples)Process Creation 9249.5 lps (30.0 s, 2 samples)Shell Scripts (1 concurrent) 5575.2 lpm (60.0 s, 2 samples)Shell Scripts (8 concurrent) 928.2 lpm (60.0 s, 2 samples)System Call Overhead 415531.6 lps (10.0 s, 7 samples)System Benchmarks Index Values BASELINE RESULT INDEXDhrystone 2 using register variables 116700.0 34381345.8 2946.1Double-Precision Whetstone 55.0 5587.9 1016.0Execl Throughput 43.0 3572.5 830.8File Copy 1024 bufsize 2000 maxblocks 3960.0 627665.4 1585.0File Copy 256 bufsize 500 maxblocks 1655.0 166712.0 1007.3File Copy 4096 bufsize 8000 maxblocks 5800.0 1735567.3 2992.4Pipe Throughput 12440.0 771403.2 620.1Pipe-based Context Switching 4000.0 217316.8 543.3Process Creation 126.0 9249.5 734.1Shell Scripts (1 concurrent) 42.4 5575.2 1314.9Shell Scripts (8 concurrent) 6.0 928.2 1547.0System Call Overhead 15000.0 415531.6 277.0========System Benchmarks Index Score 1042.9------------------------------------------------------------------------Benchmark Run: Fri Apr 01 23:39:12 - 00:07:182 CPUs in system; running 2 parallel copies of testsDhrystone 2 using register variables 50495548.8 lps (10.0 s, 7 samples)Double-Precision Whetstone 9919.2 MWIPS (9.9 s, 7 samples)Execl Throughput 5222.0 lps (29.7 s, 2 samples)File Copy 1024 bufsize 2000 maxblocks 821152.3 KBps (30.0 s, 2 samples)File Copy 256 bufsize 500 maxblocks 216521.0 KBps (30.0 s, 2 samples)File Copy 4096 bufsize 8000 maxblocks 2339138.3 KBps (30.0 s, 2 samples)Pipe Throughput 1034483.9 lps (10.0 s, 7 samples)Pipe-based Context Switching 241128.0 lps (10.0 s, 7 samples)Process Creation 15576.3 lps (30.0 s, 2 samples)Shell Scripts (1 concurrent) 6683.2 lpm (60.0 s, 2 samples)Shell Scripts (8 concurrent) 949.2 lpm (60.1 s, 2 samples)System Call Overhead 530123.4 lps (10.0 s, 7 samples)System Benchmarks Index Values BASELINE RESULT INDEXDhrystone 2 using register variables 116700.0 50495548.8 4327.0Double-Precision Whetstone 55.0 9919.2 1803.5Execl Throughput 43.0 5222.0 1214.4File Copy 1024 bufsize 2000 maxblocks 3960.0 821152.3 2073.6File Copy 256 bufsize 500 maxblocks 1655.0 216521.0 1308.3File Copy 4096 bufsize 8000 maxblocks 5800.0 2339138.3 4033.0Pipe Throughput 12440.0 1034483.9 831.6Pipe-based Context Switching 4000.0 241128.0 602.8Process Creation 126.0 15576.3 1236.2Shell Scripts (1 concurrent) 42.4 6683.2 1576.2Shell Scripts (8 concurrent) 6.0 949.2 1582.0System Call Overhead 15000.0 530123.4 353.4========System Benchmarks Index Score 1399.9

结果基准参考

参考来自:/gatieme/article/details/50912910

3.ECS的CPU信息

处理器为Intel(R) Xeon(R) Platinum 8163 CPU

[root@iZbp14j2amyqheetigvagtZ ~]# cat /proc/cpuinfoprocessor : 0vendor_id : GenuineIntelcpu family : 6model : 85model name : Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHzstepping : 4microcode : 0x1cpu MHz : 2499.998cache size : 33792 KBphysical id : 0siblings : 2core id : 0cpu cores : 1apicid : 0initial apicid : 0fpu : yesfpu_exception : yescpuid level : 22wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 aratbugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihitbogomips : 4999.99clflush size : 64cache_alignment : 64address sizes : 46 bits physical, 48 bits virtualpower management:processor : 1vendor_id : GenuineIntelcpu family : 6model : 85model name : Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHzstepping : 4microcode : 0x1cpu MHz : 2499.998cache size : 33792 KBphysical id : 0siblings : 2core id : 0cpu cores : 1apicid : 1initial apicid : 1fpu : yesfpu_exception : yescpuid level : 22wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 aratbugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihitbogomips : 4999.99clflush size : 64cache_alignment : 64address sizes : 46 bits physical, 48 bits virtualpower management:

4.读写IO的测试

[root@iZbp14j2amyqheetigvagtZ ~]# dd if=/dev/zero of=IO-test bs=64k count=4k oflag=dsync4096+0 records in4096+0 records out268435456 bytes (268 MB, 256 MiB) copied, 6.82777 s, 39.3 MB/s[root@iZbp14j2amyqheetigvagtZ ~]# dd if=/dev/zero of=IO-test bs=8k count=256k conv=fdatasync262144+0 records in262144+0 records out2147483648 bytes (2.1 GB, 2.0 GiB) copied, 20.0371 s, 107 MB/s

5.站长之家的ping检测

我服务器选择可用区在杭州本地

二、部署Hfish开源蜜罐系统

1.ECS部署容器

安装podman

[root@iZbp14j2amyqheetigvagtZ ssh]# dnf install -y podman

拉取hfish容器镜像

[root@iZbp14j2amyqheetigvagtZ ~]# podman pull threatbook/hfish-server:latest✔ docker.io/threatbook/hfish-server:latestTrying to pull docker.io/threatbook/hfish-server:latest...Getting image source signaturesCopying blob ab8e6b0f1fc6 skipped: already existsCopying blob 4b755810d514 skipped: already existsCopying blob 3bc29d5c7e7b skipped: already existsCopying blob 9f0220d857d3 skipped: already existsCopying blob a0d0a0d46f8b skipped: already existsCopying blob 349cd78be449 doneCopying blob 15e4c67086cd doneCopying blob ec5ac59a23da doneCopying blob 6b049e805320 doneCopying config 0c91d36b5a doneWriting manifest to image destinationStoring signatures0c91d36b5a67f3489fa813a8809c73c1482499b8eaa5643f4e46990a9c4d623e

运行hfish容器,挂载目录,设置容器主机网络

[root@iZbp14j2amyqheetigvagtZ ~]# mkdir /usr/share/hfish[root@iZbp14j2amyqheetigvagtZ ~]# podman run -itd --name hfish -v /usr/share/hfish:/usr/share/hfish --network host --privileged=true threatbook/hfish-server:latest1de8da4ddf70e0668529beee7787a0009f563b496ffa6bca1f542556d0f98272

hfish容器运行后,可以在ECS看到蜜罐部署的诱饵服务端口,都是常见的服务端口。

此前我们修改了默认的SSH服务22端口,也是将蜜罐部署到正常的22端口上去

2.云主机的防火墙设置

云主机的特点之一,就是默认情况下防火墙不再受系统上的iptables或firewall控制,而是由云主机所接入的安全组配置所控制,所有访问流量受安全组的黑白名单控制。

回到阿里云ECS控制台,修改安全组,将这些蜜罐端口进行放行

成功从公网访问hfish的管理页面

进入管理页面,需要配置数据库,稍后,我们使用RDS云数据库配合部署

3.使用云数据库RDS配合部署Hfish

考虑到在公网部署蜜罐,还是决定使用云数据库。

我们进入到阿里云RDS控制台,这里我们有一台RDS云数据库与ECS处于同一可用区,我们部署hfish数据库在RDS中

我们先将ECS内网地址加入RDS的白名单中,允许ECS进行访问

数据库管理中,选择创建数据库,输入数据库名称

选择账号管理,创建数据库账号,选择创建的数据库进行授权

完成RDS数据库配置后,我们在Hfish中进行配置连接,填入信息

完成数据库连接,蜜罐系统成功上线。

4.直观体验互联网中的腥风血雨

在没有WAF、FW、IDSIPS这些网络安全设备时,搭建一个简单的蜜罐,是为服务器提供最方便的主动防御能力。

到这里我们的Hfish蜜罐系统已经成功上线,我们可以看到Hfish现在为单节点部署,在线部署了9个蜜罐服务

Hfish通过攻击者地址提供了炫酷的态势展示大屏,这也是我非常喜欢这个开源项目的原因

扫描测试

先对服务器进行简单的存活性\端口开放性进行一个扫描,这里扫描结果也是蜜罐部署的服务

先查一下我的攻击地址

在扫描感知中,立马就可以看到我进行了扫描行为

服务爆破攻击测试

我使用经典的hydra进行用户名密码爆破,编写一个简单的字典大概十个字段

在蜜罐中立马采集到攻击行为,针对SSH蜜罐的攻击。采集信息包括攻击者IP、IP所述物理地、爆破的详细信息、日期时间等

其他功能

Hfish还有其他功能,比如说配合jsonp进行攻击溯源;经常被爆破的账号密码收集、采集系统服务弱口令、与社区联动的样本检测等等功能。。。

也可以自己针对不同的业务,去仿真构造许多不同的蜜罐服务。我自己其他服务器上就仿造了一个深X服SSLVPN登录页面的蜜罐,在红蓝对抗期间效果颇丰。

ECS C5云服务器的性能肯定是毋庸置疑的,搭配RDS高性能云数据库。在正常部署业务的同时也可以考虑部署一些简单的蜜罐在服务器上,可以为服务器提供简单的主动防御能力,比如抗一抗坏人的暴力破解。但是真正需要使用蜜罐来直面攻击者进行可溯源的行为诱捕,还是需要好好考虑服务运行的架构,避免出现反向效果,反而成为安全漏洞

三、云效DevOps构建部署到ECS主机

在阿里云云起实验室的2048小游戏流水线做案例,所有部署到ECS主机上的设置类似

选择流水线配置,选择部署配置,主机配置

添加主机,选择新建服务连接

创建服务连接完成后,选择服务连接

之后选择地域,我们的ECS在杭州。这里云网络的架构一样,不能跨地域部署

选择ECS

设置主机组环境,包括日常、预发、正式环境

当然部署脚本还是需要的,因为2048这个测试项目是需要运行deploy.sh脚本运行jar包,deploy.sh的脚本也包含了一个web存活性的检测。

自己在部署项目到ecs的时候可以设置启动服务的命令

yum -y install javamkdir -p /home/admin/application/tar zxvf /home/admin/app/package.tgz -C /home/admin/applicationsh /home/admin/application/deploy.sh restart

流水线运行ok,一路绿灯,好看

先玩会2048,休息一下子

四、ECS控制台周边实用功能

1.ECS云助手实现自动化运维

云助手是专为云服务器ECS打造的原生自动化运维工具,典型的使用场景包括:安装卸载软件、启动或停止服务、分发配置文件和执行一般的命令(或脚本)

(1)自定义命令执行

可以通过ECS云助手发送外面自定义的脚本命令

首先在ECS控制台中选择云助手,点击创建/执行命令

这里我们做一个云盘性能的随机读写的测试,脚本内容如下:

#安装libaio和FIOyum install libaio -yyum install libaio-devel -yyum install fio -y#测试随机写IOPSfio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/vda -name=Rand_Write_Testing#测试随机读IOPSfio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/vda -name=Rand_Read_Testing

创建命令,输入名称、选择类型、输入脚本内容

选择需要运行脚本的实例,最后可以选择执行并保存,这样下次也可以再使用这条自定义的命令

可以再命令执行结果中看到正在进行的命令

执行成功,实时返回执行结果

随机读写测试结果如下

Rand_Write_Testing: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=128fio-3.22Starting 1 processRand_Write_Testing: (groupid=0, jobs=1): err= 0: pid=3091249: Thu May 5 19:09:05 write: IOPS=1979, BW=7919KiB/s (8109kB/s)(1024MiB/132414msec); 0 zone resetsslat (usec): min=2, max=128, avg= 5.39, stdev= 3.33clat (usec): min=302, max=129358, avg=64648.10, stdev=46156.20lat (usec): min=307, max=129362, avg=64653.59, stdev=46155.69clat percentiles (usec):| 1.00th=[ 1172], 5.00th=[ 1598], 10.00th=[ 1844], 20.00th=[ 2278],| 30.00th=[ 2900], 40.00th=[ 96994], 50.00th=[ 98042], 60.00th=[ 99091],| 70.00th=[ 99091], 80.00th=[ 99091], 90.00th=[100140], 95.00th=[100140],| 99.00th=[101188], 99.50th=[102237], 99.90th=[106431], 99.95th=[111674],| 99.99th=[128451]bw ( KiB/s): min= 7776, max= 9728, per=100.00%, avg=7926.03, stdev=123.22, samples=264iops : min= 1944, max= 2432, avg=1981.51, stdev=30.80, samples=264lat (usec) : 500=0.02%, 750=0.09%, 1000=0.30%lat (msec) : 2=13.26%, 4=21.15%, 10=0.49%, 20=0.04%, 100=57.46%lat (msec) : 250=7.19%cpu : usr=0.45%, sys=0.97%, ctx=46888, majf=0, minf=11IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1%issued rwts: total=0,262144,0,0 short=0,0,0,0 dropped=0,0,0,0latency : target=0, window=0, percentile=100.00%, depth=128Run status group 0 (all jobs):WRITE: bw=7919KiB/s (8109kB/s), 7919KiB/s-7919KiB/s (8109kB/s-8109kB/s), io=1024MiB (1074MB), run=132414-132414msecDisk stats (read/write):vda: ios=2/262168, merge=0/191, ticks=0/16947224, in_queue=16952277, util=98.95%Rand_Read_Testing: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=128fio-3.22Starting 1 processRand_Read_Testing: (groupid=0, jobs=1): err= 0: pid=3091256: Thu May 5 19:11:19 read: IOPS=1977, BW=7912KiB/s (8102kB/s)(1024MiB/132531msec)slat (usec): min=2, max=134, avg= 5.55, stdev= 3.41clat (usec): min=246, max=196931, avg=64705.33, stdev=46058.91lat (usec): min=250, max=196953, avg=64710.99, stdev=46058.56clat percentiles (usec):| 1.00th=[ 857], 5.00th=[ 1418], 10.00th=[ 1827], 20.00th=[ 2376],| 30.00th=[ 3228], 40.00th=[ 96994], 50.00th=[ 98042], 60.00th=[ 98042],| 70.00th=[ 99091], 80.00th=[ 99091], 90.00th=[100140], 95.00th=[101188],| 99.00th=[102237], 99.50th=[103285], 99.90th=[109577], 99.95th=[113771],| 99.99th=[122160]bw ( KiB/s): min= 7096, max= 9552, per=100.00%, avg=7918.28, stdev=145.27, samples=264iops : min= 1774, max= 2388, avg=1979.58, stdev=36.33, samples=264lat (usec) : 250=0.01%, 500=0.09%, 750=0.52%, 1000=1.19%lat (msec) : 2=11.59%, 4=19.74%, 10=2.07%, 20=0.06%, 50=0.05%lat (msec) : 100=53.47%, 250=11.22%cpu : usr=0.38%, sys=1.10%, ctx=101253, majf=0, minf=139IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1%issued rwts: total=262144,0,0,0 short=0,0,0,0 dropped=0,0,0,0latency : target=0, window=0, percentile=100.00%, depth=128Run status group 0 (all jobs):READ: bw=7912KiB/s (8102kB/s), 7912KiB/s-7912KiB/s (8102kB/s-8102kB/s), io=1024MiB (1074MB), run=132531-132531msecDisk stats (read/write):vda: ios=261800/516, merge=63/327, ticks=16940339/49204, in_queue=16989663, util=98.73%

(2)提供现有命令模板(公共命令)

当然,阿里云官方提供了不少命令模板,有很多对系统进行各种测试诊断的脚本,其实是非常方便的。

这里再试用一下Linux性能诊断命令

完成Linux性能诊断命令的执行

(3)批量发送远程文件

ECS云助手还可以实现批量发送远程文件

选择目标系统,选择上传的文件,输入文件名称,上传路径

选择需要上传的ECS服务器,执行上传

文件上传成功

查看,文件已经批量上传成功

(4)混合云架构-ECS云助手托管任意服务器

ECS云助手还可以对其他私有服务器、其他公有云厂商的服务器,实现托管,进行统一的自动化运维管理,只需要被托管的服务器能够上网。

我们只需要创建激活码,输入名称、来源IP限制(默认为空不做限制)、额度、有效期时间,生成激活码

生成激活码后,弹出三个不同系统的安装agent的命令,我们直接粘贴到被托管的服务器就可以了

将命令全部粘贴到我们本地的服务器,这是一台运行在内网ESXI服务器上的虚拟机

脚本内容如下:

下载云助手客户端安装包

安装云助手客户端

注册为云助手托管实例

完成托管服务器上线

成功托管的服务器就可以在ECS云助手批量执行命令、批量上传文件时进行选择

2.ECS服务器告警联动至钉钉机器人

阿里云ECS有着强大的监控系统,支持一键报警和自定义报警规则。云监控的报警通知方式多样,支持电话+短信+邮件+钉钉机器人。我个人毕竟喜欢使用钉钉的机器人,而不是电话或者短信,无故的短信总会让我血压升高。这里我们就配置钉钉机器人webhook并开启ECS服务器的一键告警。

(1)配置钉钉机器人webhook

在一个专用的告警群里设置钉钉机器人,进入群设置,点击智能群助手

单击添加机器人

钉钉的机器人非常多种多样,这里单击自定义

输入机器人名字,选中自定义关键词复选框,逐个添加关键词,包括:云监控、ECS、报警,完成创建

完成创建后出现的webhook地址,这个很关键,不可外泄

(2)设置报警联系人

进入阿里云云监控

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

点击报警服务,选择报警联系人,新建联系人

输入姓名,输入webhook地址,验证联系人,通过后确认

新建联系组,输入组名,将刚刚创建的联系人添加进来

(3)启用ECS一键报警

点击一键报警列表,可以看到云服务器ECS一键报警,一键报警功能,会创建CPU使用率、磁盘使用率、内存使用率、网络带宽使用率相关报警规则,对所有ECS实例生效

启用一键报警,修改

修改报警联系组,选择我们创建的钉钉机器人联系组

修改完成

(4)测试告警

进入ECS跑一个for循环四个进程烤CPU

此时ECS的CPU使用率在100%

云监控的CPU使用率也在100%,此时必然已经触发了告警规则

我们的钉钉机器人来消息了,测试成功

掐掉测试进程,服务器恢复正常,钉钉机器人再次告知

3.ECS操作系统重装

ECS的特点之一,就是可以灵活的更换操作系统。

关机状态下,选择云盘和镜像,更换操作系统

在更换镜像页面中,我们可以选择阿里公有的镜像,CentOS官方已经停止维护,推荐大家使用AlibabaCloudLinux,完美兼容CentOS系

镜像市场包含了大量的预安装软件的镜像系统,使用这些镜像直接部署ECS服务器,非常便捷得到我们所需的服务器环境

4.ECS快照

云计算时代,快照技术简直是所有人的福音。快照允许服务器系统回到任何一个做了快照的时候。

在物理裸金属服务器上,我们的错误操作会使业务或系统崩溃,排错需要大量的人力物力。但是有了快照,我们在正常运行的时候设定自动快照策略,当系统出现问题难以排错时,我们就可以直接使用快照将服务器回滚到正常运行的状态。

快照是某一时间点云盘数据状态的备份文件。云盘第一份快照是实际使用量的全量快照,不备份空数据块,后续创建的快照均是增量快照,只存储变化的数据块

(1)测试快照恢复能力

这里我们使用快照能力做一个简单的测试,在opt下面创建test文件

进入ECS控制台,选择云盘,在对应的服务器云盘处点击创建快照

创建快照,输入快照名称等参数,确定创建

在控制台完成快照的创建后,我们进入服务器,手动删除我们的测试文件

在ECS控制台快照处,选择我们创建好的快照,我们可以通过这个创建好的快照进行回滚,复制快照,已经创建自定义镜像。

选择回滚云盘,阿里云建议在回滚前对当前状态也进行创建快照处理,这里我没有什么关键改动,就直接选择确定即可。

重新登录服务器后,服务器中opt下面的测试文件又回到创建快照之前的状态

(2)配置自动快照策略

自动快照策略可以在预设的时间点周期性地创建快照,保护云盘数据。

当在ECS实例上部署的个人网站或者数据库等应用出现系统安全攻击或者触发系统漏洞时,可能来不及手动创建快照时就可以使用最临近的自动快照回滚云盘,降低损失。

创建策略,设定每周日的凌晨两点创建快照,并保存快照30天

完成策略创建,提示设置云盘

将策略应用到云盘即可

5.ECS密钥对将登录权限收入堡垒机

ECS中的密钥对功能也是服务器常规的安全操作,我们可以通过配置密钥对实现免密登录服务器,密钥对安全强度远远高于普通SSH用户密码,前提私钥没有被泄露。

这里我们通过配置阿里云ECS控制台中的密钥对,将服务器收入堡垒机的管控,只允许通过堡垒机登录服务器,不允许普通密码的登录

(1)创建密钥对

进入ECS控制台,选择密钥对,选择创建密钥对

输入名称,创建类型

创建完成,选择绑定密钥对到ECS服务器上,这里密钥对和ECS只能一对一的配置,但是可以修改服务器的authorized_keys文件设置多密钥

选择需要绑定的ECS实例,完成确定

重启ECS实例,使密钥对生效

电脑里已经下载好了从控制台创建的私钥

(2)导入私钥至堡垒机

登录到堡垒机(所有SSH客户端、堡垒机系统操作类似)

在系统用户中,创建登录ECS服务器的用户,配置认证处不选择密码,选择SSH密钥文件

选择控制台导出的私钥文件,完成用户的创建

在资产信息中,确认认证的管理用户为刚刚创建的ECS系统用户,我们这里就完成了堡垒机对ECS服务器的免密登录配置,成功导入用户密钥

(3)测试登录效果

成功在Web控制台登录到ECS服务器

此时使用普通的SSH用户密码登录已经不行了,ECS验证客户端私钥的时候已经被ECS服务器拒绝了

查看此时的SSHD服务配置,密码认证的方式已经被阿里给关闭了

此时就完成了ECS管控收纳至堡垒机,并禁止了普通密码登录

结尾

从读高中的时候就使用了第一台ECS云服务器,自己通过课堂上学习的HTML基础手撸静态页面代码,那个时候只会起一个Apache,把自己写的html页面替换到默认目录下,这么多年过去了,使用过的云厂商的云服务器也不在少数。ECS也算是陪伴了自己这么多年的学习生活,现在的我,自建lamp\lnmp架构的站点可以说是手到擒来了,无非就是安装三大服务,配置php环境,对接业务数据库,这些代码,手敲可能得几分钟,但是基于容器构建情况下,几个docker run或者docker-compose up就可以实现直接部署。因此我认为云计算的未来不再仅仅是基于基础设施层面了,云原生技术将会全面铺开,我们需要把运维的重心转移到云原生层面,围绕着云原生去做更好的技术维护。

点击免费领取ECS,云上部署轻松搞定:/m/1000370355/

【阿里云ECS最佳实践】ECS+RDS构建云服务器主动防御系统部署开源蜜罐系统Hfish及ECS周边功能测试

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。