随着虚拟化技术的蓬勃发展,近年来,云计算产业规模不断壮大,各行业数据量激增。通过云计算挖掘数据价值,将企业IT基础设施迁移到云端,已经成为主流趋势。
国务院发展研究中心国际技术经济研究所近日发布的《中国云计算产业发展白皮书》显示,2018年中国云计算产业规模已达962.8亿元;预计2023年中国云计算工业规模将超过3000亿元。
大量企业将数据迁移到云上,但网络安全问题日益突出。以云计算,的行业巨头阿里云,为例,每天的攻击次数高达50亿次。这些攻击包括通过系统漏洞提升权限、DDOS攻击、CC攻击、蛮力破解、成功入侵后加密数据、植入木马或挖掘程序等。
作为云计算行业的从业者,我见过太多企业服务器被入侵后遭受严重损失的案例。在这里,我想和大家分享一下上云后的以下安全措施。
首先,我们应该纠正去云并不都是对的想法。云计算提供的柔性扩展和横向扩展,大大减少了企业运维人员的工作,提高了效率。比如不需要去机房升级操作系统,扩展硬件。
然而,关于操作系统本身的安全性,我相信没有一家云计算公司能够保证,如果您购买我们的服务器,您将永远不会遭受任何攻击。一般他们会提供安全产品或建议,但实际的安全策略部署还是需要自己完成。
购买服务器后的重中之重。
然后,当您从云供应商处购买服务器时,您必须做的是:
首先,修改你的远程连接端口,比如windows 3389和Linux 22。应用程序应该尽量不要对公共网络开放,尤其是中间件服务。除了web服务提供的80,443个端口之外,默认的端口应该尽量不要对公网开放,比如MySQL的3306、Redis的6379等等。
因为互联网上的大量入侵首先扫描打开这些默认端口的机器,然后检测是否存在已知的漏洞,然后发起攻击。
比如入侵者想要入侵redis 3.0以下版本的redis,攻击者可以通过扫描nmap或masscan等攻击来扫描某个IP段是否开放,并根据自己服务器的特点通过检测自己的服务器是Linux还是Windows来选择如何发起攻击。以masscan为例,检测49.111.0.0/16网段是否有redis服务打开默认端口6379。mass can-p 6379 49 . 111 . 0 . 0/16-速率10000大于scan.txt
然后获取该网段打开的6379端口的IP,进行下一步判断是否设置了密码,版本是否在3.0以下。执行以下命令查看有关此redis的信息。/redis-cli -h IP信息
然后判断是否设置了密码,如果没有,则将入侵者的公钥写入/。ssh目录通过redis的持久化机制。
大于配置集目录/根目录/。ssh/
大于配置集数据库文件名authorized _ keys。
大于集XXX ' \ n \ n \ n sh-RSA aaaaab 3n Zac 1 yc2 eaaadakabaqdwuati70x2tslbj 6 fxdgk 5 nnrhuiymhel 9 nt0 cwtovlc 8 it 7 ta 9 uszqx6rv 3 HPF 0 txg 8/arzaq 75 jyzn 1 jsnh 35mr 49 ywjlou 8 fbii28 ijd kavvvcoad/wwspwrrijpg 38 z8 bu2x bsncmmwotpd 6vl4kj 6xma 55
使用更安全的密钥登录。密钥采用Rsa非对称加密算法,设置2048位以上的密钥,安全系数更高。因为如果用密码登录,只要密码字典足够强大,机器操作能力足够强,入侵者就可以轻松破解密码,比如通过九头蛇就可以暴力破解密码。
49.111.95.153宋承宪
例如,在Linux中,修改/etc/ssh/ssh _ config。
PermitRootLogin是是否。
登录注册时间30
密码验证是是否
MaxAuthTries 3 #限制了最大重试次数。
议定书2
“登录时间”允许登录需要30秒;如果用户花费超过30秒,则不允许他访问,必须重新登录。` MaxAuthTries `将错误尝试次数限制为3次,3次后拒绝登录尝试。上述“协议2”禁止使用较弱的协议。
最后一行不允许任何人以root用户身份登录,这使得黑客攻击变得更加困难。您还可以使用拒绝用户、允许用户、拒绝组和允许组选项来实现其他限制。这些修改不会显著增强计算机的安全性,但是仅试图强行攻击标准端口22的通用脚本将失败,并且不会造成损坏。
第二,除非必要,尽量减少暴露的端口,永远不要为所有端口设置端口释放行为为0.0.0.0/0的规则。这就像皇帝的新衣服,完全暴露在外面,给人一种干净的感觉。
除了80、443等端口必须对外开放访问权限外,其他服务都在相对安全的内网环境下运行,这样做的好处是既提高了安全性,又防止了交叉链接带来的带宽损失,提高了访问速度。比如web服务调用后端MySQL,如果通过公网访问,速度肯定不如同一局域网内的相互访问快。
第四,要做好自己程序的安全防护措施。例如,在设计系统时,您应该考虑更多的安全问题,例如防止被注入。你可以通过sqlmap扫描自己的数据库,看看是否有被入侵的可能。例如,下面的代码段。
uname=请求。开机自检['用户名']密码=请求。开机自检['密码']
sql='选择所有来自用户,其中用户名uname '和密码password '
database.execute(sql)
上述程序直接将数据从客户端写入数据库。想象一下,如果用户传入的密码值是:“password”或1=1,那么sql语句将变成:
sql='从用户中选择所有用户,其中用户名='用户名'和密码='密码'或1=1 '
然后,不管用户名和密码如何,都会执行这个sql,从而取出用户的所有信息。
同时,要防止一些针对页面的攻击,如XSS攻击、CSRF跨域攻击等。对于一些页面DNS污染攻击,HTTPS可以用来防止页面内容被篡改。使用HTTPS时尽量使用TLS 1.2版本,使用加密非常好的算法。
SSL _ ciphers EECDH chacha 20: EECDH chacha 20-draft : EECDH ECD sa AES 128: EECDH aRSA AES 128: RSA AES 128: EECDH ECD sa AES 256: EECDH aRSA A es 256: RSA AES 25633: RSA AES 2563: EECDH ECD sa 3daa:e:EXPORT:DES:RC4:MD5:PSK:KRB5:aECDH:EDH 3DES
第五,如果受到DDOS攻击,可以考虑购买一些防护服务,避免业务受损。
要防止被攻击,不仅要做到以上几点,还要加强对系统各项指标的监控,如文件权限、系统利用率、日志收集等措施,做到防患于未然。