提高企业云服务器安全的方法有,搭建企业云服务器需要什么

2023-05-04 13:45 综合百科 0阅读 投稿:小七
提高企业云服务器安全的方法有,搭建企业云服务器需要什么图1

责编 | maozz

随着虚拟化技术的蓬勃发展,近几年云计算产业规模不断壮大,各行业的数据量激增,通过云计算挖掘数据价值,以及企业IT基础架构向云迁移已经成为主流趋势。

国务院发展研究中心国际技术经济研究所近日发布的《中国云计算产业发展白皮书》显示,2018年中国云计算产业规模已经达到962.8亿元;预计2023年,中国云计算产业规模将超过3000亿元。

大量的企业将数据迁移到云上,带来的网络安全问题却日益凸显,以云计算行业巨头阿里云为例,每天遭受攻击的次数就高达 50 亿次,这些攻击包括通过系统漏洞进行提权、提高企业云服务器安全的方法有,搭建企业云服务器需要什么图2

购买服务器后的当务之急

那么当你在云厂商购买一台服务器之后,你必须要做的事情就是:

第一,修改你的远程连接端口,例如 windows 的 3389,Linux 的 22 端口。应用服务尽量不要对公网开放,尤其是中间件服务,除了 web 服务所提供的 80,443 端口之外都应该尽量不要对公网开放默认端口,例如 MySQL 的 3306 ,Redis 的 63提高企业云服务器安全的方法有,搭建企业云服务器需要什么图3

遭遇攻击后应该怎么办?

如果你恰好 root 权限开放的,那么你这台服务器就成功被入侵者提权了。从上面这个例子中,我们要防止这样的入侵案例发生,除了修改默认端口还是远远不够的。还需要养成定期更新你的系统和应用软件,因为旧版本软件大多都会存在漏洞被攻击者利用。

另外就是尽量不要以管理员权限运行一些应用程序,例如Linux 使用 root 这样的权限去运行程序。要以一个普通用户运行指定程序,防止被提权。

禁止密码登录,改为更安全的密钥登录。密钥采用rsa非对称加密算法,并设置大于 2048 位以上密钥,安全系数更高。因为如果采用密码登录,入侵者只要密码字典足够强大,机器运算能力够强是可以非常轻松的破解的,例如通过 hydra 来暴力破解密码

hydra -s 22 -v -l root -P pass.txt 49.111.95.153 ssh

以 Linux 为例,修改/etc/ssh/sshd_config 中的

PermitRootLogin yes 为 no

LoginGraceTime 30

PasswordAuthentication yes 为 no

MaxAuthTries 3 # 限制最大重试次数

Protocol 2

`LoginGraceTime` 允许一次登录花费 30 秒;如果用户花费的时间超过 30 秒,就不允许他访问,必须重新登录。`MaxAuthTries` 把错误尝试的次数限制为 3 次,3 次之后拒绝登录尝试。上面的 `Protocol 2` 行禁止使用比较弱的协议。

最后一行不允许任何人作为根用户登录,这会让黑客攻击更困难。还可以使用 `DenyUsers`、`AllowUsers`、`DenyGroups` 和 `AllowGroups` 选项实现其他限制。这些修改不会显著增强计算机的安全性,但是只尝试强力攻击标准端口 22 的一般脚本会失败,不会造成损害。

第二,除非有必要,最小化对外暴露端口,千万不要将所有端口都设置端口放行为 0.0.0.0/0 这样的规则。这样就像皇帝的新装,完全把自己暴露在外面给人看的一干二净了。

除了 80、443 这样的必须要对外开放访问权限的端口,其他服务都在相对安全的内网环境中运行,这样的优势是除了提升了安全性还防止跨链路带来的带宽损耗,提升访问速度。例如web 服务调用后端 MySQL,如果通过公网访问,速度肯定不及同一个局域网内互相访问的快。

第四,自身程序的安全防护措施要做好,比如在设计系统时就要多考虑一下安全问题,例如防止被注入,可以通过 sqlmap 来扫描下自己的数据库是否存在被入侵的可能。例如如下代码段

uname = request.POST['username']

password = request.POST['password']

sql = "SELECT all FROM users WHERE username='" + uname + "' AND password='" + password + "'"

database.execute(sql)

上面这段程序直接将客户端传过来的数据写入到数据库。试想一下,如果用户传入的 password 值是:"password’ OR 1=1",那么 sql 语句便会变成:

sql = "SELECT all FROM users WHERE username='username' AND password='password' OR 1=1"

那么,这句 sql 无论 username 和 password 是什么都会执行,从而将所有用户的信息取出来。

同时还需要防止针对页面的一些攻击,例如 XSS 攻击、CSRF 跨域攻击等等。对于一些页面DNS 污染攻击,可以采用 HTTPS 来防止页面内容被篡改。在使用 HTTPS 时尽量使用 TLS1.2+版本的协议,并使用加密性非常好的算法。

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:TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:EECDH+CHACHA20:EECDH+AESGCM:EECDH+AES:HIGH:!a:!e:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!EDH+3DES;

第五,如果遭受 DDOS 攻击,可以考虑购买一些防护服务来解决,避免业务受损。

要防止被攻击不仅仅是做到如上这些,还应当加强对系统各项指标的监控,例如文件权限、系统利用率、日志采集等等措施,防范于未然。

声明:本文系作者独立观点,不代表CSDN立场。

【End】

声明:若水百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系youzivr@vip.qq.com