现在到底怎么防服务器攻击才好?
现在到底怎么防服务器攻击才好?
-
具体不知道题主的服务器是怎么被攻击的,如果是web服务器的话,常见的攻击就是DDos和CC攻击。只要不被高级黑客盯上,一般的攻击还是比较好防范的。
首先推荐服务器装linux而不是装windows server。我早期用的都是windows server2003或2008,真的是防不胜防。装过安全狗和D盾防火墙。两者都能起一点作用。但是网站源代码本身有漏洞,这些软件也没法帮你,你还是得定期查杀,清除垃圾,删掉病毒文件。
如果单纯是web服务器,装个D盾就够用了,虽然没有安全狗那么强,但是各种后门文件还是扫描得出来。我一般都是发现服务器上空间突然不够之后,上去手工删一些垃圾文件,再用D盾杀一遍,把后门文件找出来,删掉,再替换上干净的。
这种方法虽然治标不治本,但是通常可以管一段时间。
后来服务器都是用CentOS,用宝塔面板,用自带的防火墙,反正web服务器就没有被黑过了。因为都是普通的web网站,所以可能黑客的兴趣也不大。
2022-03-21 14:48:25 -
得看是什么方式攻击了,现在服务器攻击普遍是DDOS流量攻击和CC攻击。
如果是自己托管机房服务器被DDOS攻击那只有花钱联系运营商看能不能防护,一般小机房发现用户托管服务器被攻击超过防护能力后都会简单粗暴的封掉你服务器IP地址,也就是断网处理了。
如果是阿里云,腾讯云等云服务器,被DDOS攻击可以购买高防CDN或者切换到高防机房,但是都非常昂贵,CC攻击的话可以购买web防火墙进行防御。
2018-03-01 17:26:03 -
服务器经常被攻击,得排查下攻击是通过什么来认定你的,如果是域名,那就换个域名,如果是服务器漏洞,那就处理好即可。如你的网站经常有攻击,日常安全维护要做好
2019-11-25 18:44:50 -
网站服务器是美国的一种高级防御服务器。当没有攻击时,网站的访问速度很难被接受,但一旦受到攻击,网站的访问速度就非常慢。当海外服务器与美国高防服务器打交道时,它们可以抵抗其他海外服务器的防御。如果他们受到攻击,就会直接挂断电话。国外的高级防御服务器有没有更好的解决方案?\t 首先,隐藏网站服务器的IP地址。使用CDN要求将网站域名解析为CDN自动生成的cname记录值,而网站域名不解析为网站服务器的IP地址。这样,网站服务器的IP地址就不会自然地暴露在公共网络上,从而避免了对网站服务器的有针对性的攻击,提高了网站服务器的安全性。\t第二,超级攻击清除能力,无死尸高防御,无不可逾越的攻击,CDN防御机制可根据网站规划制定高防御策略,以应对各种类型的攻击。\t第三,加快对网站的访问,智能地分配附近的节点,访问者将以最快的响应速度连接到这些节点,解决因跨区域和跨服务提供商而导致的延迟和网络拥塞等问题。动态和静态缓存加速进一步加快了网站访问的速度,并改善了网站访问者的体验。\t第四,采用动态、静态等一些缓存技术,从而减少访问者对网站服务器的访问,近一步减轻网站服务器的压力,提高网站服务器的稳定性。
RAKsmart提供DDOS高防服务器,让你的网站更加稳定
2019-08-01 17:54:08 -
我大概看了一下你的回复,其实防止攻击需要做2方面的事情
被攻击前做好维护,如果你是用的云服务器可以买一下云防护,如果是自己的物理服务器,那就需要开启防火墙,安装开源的waf,土豪的话可以买个,该关的端口都关了,只留下你需要的,口令改成强口令,做好日常的流量分析。
第二就是被攻击后了,被攻击后的排查是一个非常复杂的过程,我们行业内称为溯源,这要看攻击现象来判断是什么攻击了,来分析里面的流量,最终确定是通过哪进来了。这个建议你看一下我的头条文章,有详细的分析和举例
最后就是针对分析出来的漏洞打补丁了
2019-11-26 07:27:02 -
网络攻击有很多种,网络上常用的攻击有DDOS攻击、SYN攻击、ARP攻击以及木马、病毒等等,再安全的服务器也避免不了网络的攻击。作为一个网络安全运维人员需要做到维护好系统的安全,修复已知的系统漏洞等,同时在服务器遭受攻击时需要迅速的处理攻击,最大限度降低攻击对网络造成的影响。像我用的bluehost基本就没有遇到过在这种情况
2021-07-27 15:34:27 -
首先就是马上断开网络了,服务器的数据保留程度。是取决你断开的速度,大容量的服务器黑客难以短时间进行清除。断开网络后,可以请网络专家第一时间进行解决。大多数攻击手段,都是通过网络。其次就是根据系统日志进行分析,查看所有可疑的信息进行排查,寻找出攻击者。虽然结果不一定是正确的,但是也可以做到很好的防范手段。
其次,备份安全的稳健导出。将工作日志被黑客黑过的文件,做出单独的隔离处理。降低损失。随后重装系统,导入备份好的文件。在重装系统后,把安全的数据信息导入系统中,并检查系统中是否存在别的漏洞或安全隐患,若存在及时进行修复。
将网络进行正常的链接,可以通过简单的修改服务器IP进行防御。但更新的补丁就需要专门的网络工作人员进行添加了。
2019-06-10 17:16:05 -
暴露在公网的服务,为了保证服务对正常用户可用,只有对来访数据清洗,降低服务器的压力。
2019-05-23 23:12:11 -
网络层面
防火墙,IDS,等等
服务器本身
密码,口令,端口,服务等等主机加固。
实际上上这是一个系统工程,不是点几个设置就能解决的。如果你是一个对外服务的商用服务器,还是建议找一家安全公司统一规划一下。
另外强调一下,安全总是相对的,日后的维护更重要,安全设备,服务器系统等等的升级,日志的分析都是要做的。
做到设备到位,管理到位,才能保证安全。
2019-05-23 23:03:32 -
整体思路
整个防护的思路就是,将生产服务器的对外网的接触面降低到最少。将所有的管理类访问收到以跳板机为中心的SSH主机上。其余的访问只能访问生产机器提供的服务本身。
下面一一讲解。
限制开放端口
任何时候,只要是生产服务器,投入使用之前必须限制开放端口。你需要开放什么服务,就只开放那个服务必要的端口。例如,对于一个web服务来讲只需要打开80/443两个端口。具体做法是,使用iptable命令来DROP掉除了必要端口外所有的INPUT的网络请求。
生产机之间最好也可以做这种封闭,但是如果运维资源实在紧张,可以只做对外出口的限制。毕竟,如果攻击者已经可以进入到生产机内网环境随意SSH了,就已经算是攻破了。
绝对不要把数据库的端口对外网打开。我已经见过太多案例,开发者在服务器上装了个mongo或者mysql就不管了,结果被别人整库拖库的事情。数据库属于内部服务,根本就没有打开的必要。
配置时切记不要把管理用的SSH端口给封住了,这样管理员自己也访问不了主机就尴尬了……
关闭不必要的对外主动连接
生产服务一般也不需要主动发起对外的网络连接。一些例外的情况比如支付服务,微信授权服务,第三方的数据统计分析服务等。这些情况可以方便的通过IP/域名的白名单来处理。除此之外,生产机不应该能够主动发起任何对外网的访问。
修改默认端口
攻击者会尝试根据端口猜背后的程序是什么。比如对于端口22,攻击者会猜这是个SSH,然后会尝试弱口令等方式来攻击。如果你把SSH的端口随便改成一个比如4328,那么攻击者就得花更多的力气才能做这个猜测。如果攻击者不是针对你的话,也就不会废这个功夫猜了,毕竟不设防的机器多的是,何必死磕你的。
其他服务的端口也可以类似处理,比如MySql,Redis等。但是值得注意的是,因为浏览器访问Web时,如果不明确在URL里写端口,就会用80/443,并且端口还可能影响Cookie的有效性。所以Web的默认端口是不方便改的。
学会使用SSH
在*nix环境下,SSH是标准的远程主机访问的协议。所有对集群的管理都要使用SSH,因此对SSH的配置要格外留神。
总是使用生产级别的SSH认证方式
SSH支持相当多的认证方式。只有两种我认为是可以在生产中使用的:
高强度公钥私钥对(比如用RSA-1024)
Kerberos
高强度公钥私钥因为配置方便,用得更广泛。而Kerberos需要比较复杂的配置,一般常见于大型企业内部。
不要使用任何基于密码的认证方式。如果你用了密码就要记住,为了记住这个密码一定是有某个含义的,这就为字典攻击提供了条件。并且密码在网络上传输也是非常不安全的。反复输入密码会进一步增加密码被记录的概率。记得,你和服务器之间隔着互联网,你永远不知道有谁在中间。
2015年已经有消息报道RSA-1024可以通过暴力破解,但是耗费了相当大的计算资源。目前看,对于小公司RSA-1024还是安全的。但是你可以轻易地改用RSA-2048来产生公钥私钥对,指数级提高破解的难度。
RSA-1024的意思是用RSA算法产生长度为1024bit的公钥私钥对。越长的公钥私钥对越难被暴力破解。破解RSA-2048比RSA-1024需要的计算量大概大2^32倍。详情见这里。
作为入口要定时更换认证key
如果是采用公钥私钥对作为SSH的认证,建议每个季度/每半年更换一次公钥私钥对。如如果采用Kerberos作为SSH的认证,建议每个季度/每半年换一次密码。之所以这样做是因为,这个更换的周期会远远小于常规暴力破解的时间。
访问生产资源时总是经过跳板机
也许你有很多服务器主机,但是如果运维资源部不足,没法很好的挨个配置主机的SSH端口设置,可以只开一台机器的SSH端口到外网,允许远程访问。这台对外网打开SSH的机器俗称“跳板机“。
为什么使用跳板机呢?这是因为可以在一台机器上做所有的安全防护配置。在公司过规模小的时候,一个人就可以手工把所有的访问权限在这一台机器上搞了。
利用跳板机:
可以使用SSH的ProxyCommand。它可以让你访问远程主机时必须经过跳板机。这样整个集群只需要在跳板机上开到外网的SSH端口了。
可以使用SSH的端口转发(Local Port Forwarding和Remote Port Forwarding)。这个功能可以允许你用SSH包装其他协议的数据,于是你可以经过跳板机的SSH端口访问其他主机的mysql、redis、mongodb……
关于端口转发,这里推荐一个特别好的工具叫做SSL Tunnel Manager
当然,成熟的技术团队中,除了Lead、DBA和Ops,其他人不应该有权限访问生产服务。要做到这一点需要补充很多基础设施(比如带有Audit和ACL的生产数据库查询、比较方便的查询生产服务的log)。本文主要说小团队的低成本的事情,就不展开了。
确保你的软件源安全可靠
也许很多人对2015年的XCodeGhost不陌生。一些开发人员通过非官方渠道下载了XCode开发App。其中携带的被恶意篡改的基础库和App一起被打包,发布,最终安装在用户的设备上。这个问题可不一定只发生在XCode上。
每天开发者build程序都要使用各种开发工具,从外网各个地方下各种代码包。怎么确保这些东西就不出问题?最基础的防护是:总是从软件提供的官方渠道下载。就算再慢,被墙,也要想办法。如果技术手段无法约束,就必须行政手段强行禁止国内的各种下载网站下开发软件。
但如果访问这官方服务时断时续,或者比较浪费带宽(带宽费用相对比较贵),就要考虑自建“镜像”。像Artifactory就是很好的工具,可以充当内网的maven镜像库。
关注入口相关程序的漏洞
网络请求从连接到被执行,需要经过
硬件(固件)
操作系统
系统库(比如openssl)
程序库(比如jdk和依赖的各种jar)
你的程序
时刻留意这个链条上的漏洞信息(新闻/社交网站讨论等),尤其是你开放的端口的对应服务的漏洞(比如开了443要特别留意操作系统、openssl和nginx的漏洞)。大多数时候漏洞比较偏门,或者说只有学术研究价值,这种可以忽略。但如果发现有漏洞的讨论已经非常普遍,就说明这个漏洞的影响相当大,并且非常容易被利用,抓紧时间升级和修复。
如果你用的是云服务,一般厂商都会有对受影响设施升级的公告,可能会造成停服务。请时刻留意。
管好你的秘钥
用了很强的认证方式后,还要记得好好保管。要是不注意,自己把私钥泄露到了公开的地方,再强的算法也保护不了你。任何情况下不要在网络上传递秘钥。如果要传递给别人,请用纸和笔。
此外,所有的私钥,密码最终都会记录在你自己的电脑上。所以如果你去上个厕所,别人偷偷跑过来从你的没锁的电脑上拿到私密的信息,那么以上所有的防护就都没有用了。因此,离开座位时请总是锁上你的屏幕。
如果用Mac,推荐“触发角”功能。配置好后,鼠标一推就锁屏了。
总结
做到本文所说的所有策略,其实并不能保证绝对的安全。并且还有许多安全问题本文并没有考虑,比如注入攻击,CRSF,带有密码的服务配置,内网服务API的ACL,DDoS,社工学骗管理密码,短信炸弹等。
但是按照本文做了,你的服务器绝不会被攻击者以毫无成本的扫描直接攻破。攻击者必须针对你做定制的攻击方案才有可能成功。这会极大的提高攻击成本。如果你的公司还是个不起眼的小公司,那么基本上不会招眼——太不划算了。
值得注意的是,初创公司就算再怎么预算紧张,也一定要有人来负责运维。就算是开发顶一下也好,兼职也好,但机器不能没人管,不管是自建集群还是云服务。只有这个人存在,上面说的这些事情才有指望可以做好。
随着业务的扩大,服务商业价值增加,随之而来的就是更多的关注和更多的有针对性的攻击的风险。这时候,也许公司已经可以雇得起一个专心做安全的团队,购买防护软件/硬件,或者可以找到一个靠谱的安全领域的合作机构,来处理更复杂的安全攻击。
祝好运!
2019-05-23 21:18:01 -
服务器是为网络提供计算服务的设备,在企业网站中起着重要的作用。所以平时一定要注重对服务器的安全性问题。但是对服务器保护的再好,也难免服务器被竞争对手或者黑客恶意攻击。如果网站被恶意攻击无法访问怎么办?服务器一直被攻击怎么办?如何才能防范服务器被攻击?
服务器被攻击的常见方式有两种:一种是CC,一个是DDOS。如果是CC攻击方式,机房技术会根据攻击的类型及时调整策略,CDN的服务在策略上可以先过一层,很有效的针对CC攻击。
如果是DDOS,必须要机房有硬防才可以防御的,这个必须需要带宽充足才可以解决的,同时CDN进行分流和清洗等。
其实对于服务器被攻击并不是不可防范的,用户在使用服务器之前可以通过一些简单的措施来提升服务器的安全问题,那么这些措施有哪些呢,该如何防范服务器被攻击呢?
1、首先服务器一定要把administrator禁用;
2、系统升级、打操作系统补丁,尤其是IIS6.0补丁、SQL SP3a补丁,甚至IE6.0补丁也要打,同时及时跟踪最新漏洞补丁;
3、启动系统自带的Internet连接防火墙,在设置服务选项中勾选Web服务器;
4、禁止响应ICMP路由通告报文;
5、禁用服务里的Workstation;
6、阻止IUSR用户提升权限;
7、防止SQL注入。
做好服务器的防御措施,以防为主被攻击还是很有必要的。当然若是黑客或者竞争对手要一直盯着你的服务器或者网站,经常性的进行一些攻击,那也是一件很要命的事情,攻击方要耗成本,防御方也需要花费不少的费用来解决防御的问题。所以企业还是要做好对服务器的保护措施,以防被随时恶意攻击,减小服务器被攻击带来的危害。
2019-05-23 20:47:18 -
暴露在公网的服务,为了保证服务对正常用户可用,只有对来访数据清洗,降低服务器的压力。
2019-05-23 23:12:11 -
处理方案都是要钱的。
多少钱的问题
2019-04-30 07:08:36 -
服务器是为网络提供计算服务的设备,在企业网站中起着重要的作用。所以平时一定要注重对服务器的安全性问题。但是对服务器保护的再好,也难免服务器被竞争对手或者黑客恶意攻击。如果网站被恶意攻击无法访问怎么办?服务器一直被攻击怎么办?如何才能防范服务器被攻击?
服务器被攻击的常见方式有两种:一种是CC,一个是DDOS。如果是CC攻击方式,机房技术会根据攻击的类型及时调整策略,CDN的服务在策略上可以先过一层,很有效的针对CC攻击。
如果是DDOS,必须要机房有硬防才可以防御的,这个必须需要带宽充足才可以解决的,同时CDN进行分流和清洗等。
其实对于服务器被攻击并不是不可防范的,用户在使用服务器之前可以通过一些简单的措施来提升服务器的安全问题,那么这些措施有哪些呢,该如何防范服务器被攻击呢?
1、首先服务器一定要把administrator禁用;
2、系统升级、打操作系统补丁,尤其是IIS6.0补丁、SQL SP3a补丁,甚至IE6.0补丁也要打,同时及时跟踪最新漏洞补丁;
3、启动系统自带的Internet连接防火墙,在设置服务选项中勾选Web服务器;
4、禁止响应ICMP路由通告报文;
5、禁用服务里的Workstation;
6、阻止IUSR用户提升权限;
7、防止SQL注入。
做好服务器的防御措施,以防为主被攻击还是很有必要的。当然若是黑客或者竞争对手要一直盯着你的服务器或者网站,经常性的进行一些攻击,那也是一件很要命的事情,攻击方要耗成本,防御方也需要花费不少的费用来解决防御的问题。所以企业还是要做好对服务器的保护措施,以防被随时恶意攻击,减小服务器被攻击带来的危害。
2019-05-23 20:47:18 -
服务器被攻击首先要看下是什么方向攻击,如果是被cc、ddos攻击了,那么我们来根据这两种攻击来做出不同的策略。首先被cc攻击,cc攻击主要是打服务器的端口,不断的去访问,造成cpu熬死,导致宕机。那么根据cc攻击的原理: 1、我们可以先更换端口,封掉被攻击的端口,这样攻击暂时的就能被抵挡一下,2、IIS屏蔽IP,我们通过命令或在查看日志发现了CC攻击的源IP,就可以在IIS中设置屏蔽该IP对Web站点的访问,从而达到防范lIS攻击的目的。
如果是被ddos攻击了:1、确保服务器的系统文件是最新的版本,并及时更新系统补丁。2、关闭不必要的服务。3、限制同时打开的SYN半连接数目。4、缩短SYN半连接的time out时间。5、正确设置防火墙禁止对主机的非开放服务的访问限制特定IP地址的访问。
2019-11-25 20:25:58 -
增加防火墙等网络设备
2019-11-25 19:35:55 -
安装云帮手呀,不仅自带本地防火墙,能够过滤大部分端口攻击,并通过IP黑名单扫描出那些针对服务器有攻击意图的IP,还自带有系统账户查看功能,避免出现黑客账户,防御到各个细节部分。
2019-11-26 18:54:23 -
选择锐讯网络的高防服务器,320G机房总防,可达300G单机真实高防,硬抗DDOS、专业的金盾工程师团队,给客户做一对一防CC策略,无视CC!SYN攻击、金盾智能防火墙,打死1分钟内自动恢复,秒解、7*24小时售后服务!80多人的售后技术团队,24小时处理客户问题!
2020-07-30 10:01:03 -
当服务器被攻击后我们该怎么办呢?具体方法如下:
一、断开所有网络连接。
服务器之所以被攻击是因为连接在网络上,因此在确认系统遭受攻击后,第一步一定要断开网络连接,即断开攻击。
二、根据日志查找攻击者。
根据系统日志进行分析,查看所有可疑的信息进行排查,寻找出攻击者。
三、根据日志分析系统漏洞。
根据系统日志进行分析,查看攻击者是通过什么方式入侵到服务器的,通过分析找出系统所存在的漏洞。
四、备份系统数据。
在备份系统数据时,一定要注意所备份数据是否夹杂攻击源,若存在,一定及时删除。
五、重装系统。
在被攻击后一定要重装系统,因为我们根本不能完全确认攻击者通过哪些攻击方式进行攻击,因此只要重装系统后才能彻底清除掉攻击源。
六、导入安全的数据。
在重装系统后,把安全的数据信息导入系统中,并检查系统中是否存在别的漏洞或安全隐患,若存在及时进行修复。
七、恢复网络连接。
在一切都正常后,把系统连接到网络上,恢复服务。
2019-08-02 22:37:01 -
建议安装一个管理面板进行管理服务器,云帮手就挺不错的,可以时时监控你的服务器状态。
2019-11-28 15:15:26 -
简单说,小公司一般没人攻击,如果给攻击,基本就是等,没事可做,游戏公司给攻击最对。现在很多游戏公司就是租用云服务,借用云服务来挡,可是那个价格也是挺滋味的,按照攻击流量计费。
2018-08-23 22:44:06 -
我用云帮手呀通过IP黑名单扫描出那些针对服务器有攻击意图的IP,还自带有系统账户查看功能,避免出现黑客账户,防御不错
2021-01-22 18:22:08 -
1.防止CC攻击,不一定非要用高防服务器。比如,用防CC攻击软件就可以有效的防止CC攻击。推荐一些CC的防范手段:
2.优化代码
尽可能使用缓存来存储重复的查询内容,减少重复的数据查询资源开销。减少复杂框架的调用,减少不必要的数据请求和处理逻辑。程序执行中,及时释放资源,比如及时关闭mysql连接,及时关闭memcache连接等,减少空连接消耗。
3.限制手段
对一些负载较高的程序增加前置条件判断,可行的判断方法如下:
必须具有网站签发的session信息才可以使用(可简单阻止程序发起的集中请求);必须具有正确的referer(可有效防止嵌入式代码的攻击);禁止一些客户端类型的请求(比如一些典型的不良蜘蛛特征);同一session多少秒内只能执行一次。
4.完善日志
尽可能完整保留访问日志。日志分析程序,能够尽快判断出异常访问,比如单一ip密集访问;比如特定url同比请求激增。
5.使用第三方防护服务
笔者试了很多的CC防御,最终还是选择使用知道创宇抗D宝,就使用体验来说,算是我使用很靠谱的CC防御产品了,对伪造搜索爬虫攻击、伪造浏览器攻击、假人攻击等效果很好。
2020-06-02 14:14:49 -
我用云帮手呀通过IP黑名单扫描出那些针对服务器有攻击意图的IP,还自带有系统账户查看功能,避免出现黑客账户,防御不错
2020-10-20 17:38:39 -
先备份数据,然后重装吧。因为你不知道有多少后门。
2022-07-16 11:04:39 -
睡一觉,明天你会忘了这件事
2019-04-30 01:01:17 -
服务器被攻击解决方法
①立即关闭所有网站服务。
②重装最新的受控端安装包,重新自动设置受控端网站。
③为系统和服务器软件安装最新的补丁。
④检查添加/删除程序里面是不是被人装了其他软件。
⑤为网站目录重新配置权限,关闭删除可疑的系统账户。
飞畅科技,您身边的光通信与接入解决方案专家!专业做光端机、光纤收发器、工业交换机、协议转换器等工业通信设备的厂家,自主研发品牌,欢迎前来了解、交流。
2021-03-15 16:40:23 -
网络层面
防火墙,IDS,等等
服务器本身
密码,口令,端口,服务等等主机加固。
实际上上这是一个系统工程,不是点几个设置就能解决的。如果你是一个对外服务的商用服务器,还是建议找一家安全公司统一规划一下。
另外强调一下,安全总是相对的,日后的维护更重要,安全设备,服务器系统等等的升级,日志的分析都是要做的。
做到设备到位,管理到位,才能保证安全。
2019-05-23 23:03:32 -
可以做cdn云加速,攻击强度大的那就买高防服务器
2021-08-12 17:22:39 -
整体思路
整个防护的思路就是,将生产服务器的对外网的接触面降低到最少。将所有的管理类访问收到以跳板机为中心的SSH主机上。其余的访问只能访问生产机器提供的服务本身。
下面一一讲解。
限制开放端口
任何时候,只要是生产服务器,投入使用之前必须限制开放端口。你需要开放什么服务,就只开放那个服务必要的端口。例如,对于一个web服务来讲只需要打开80/443两个端口。具体做法是,使用iptable命令来DROP掉除了必要端口外所有的INPUT的网络请求。
生产机之间最好也可以做这种封闭,但是如果运维资源实在紧张,可以只做对外出口的限制。毕竟,如果攻击者已经可以进入到生产机内网环境随意SSH了,就已经算是攻破了。
绝对不要把数据库的端口对外网打开。我已经见过太多案例,开发者在服务器上装了个mongo或者mysql就不管了,结果被别人整库拖库的事情。数据库属于内部服务,根本就没有打开的必要。
配置时切记不要把管理用的SSH端口给封住了,这样管理员自己也访问不了主机就尴尬了……
关闭不必要的对外主动连接
生产服务一般也不需要主动发起对外的网络连接。一些例外的情况比如支付服务,微信授权服务,第三方的数据统计分析服务等。这些情况可以方便的通过IP/域名的白名单来处理。除此之外,生产机不应该能够主动发起任何对外网的访问。
修改默认端口
攻击者会尝试根据端口猜背后的程序是什么。比如对于端口22,攻击者会猜这是个SSH,然后会尝试弱口令等方式来攻击。如果你把SSH的端口随便改成一个比如4328,那么攻击者就得花更多的力气才能做这个猜测。如果攻击者不是针对你的话,也就不会废这个功夫猜了,毕竟不设防的机器多的是,何必死磕你的。
其他服务的端口也可以类似处理,比如MySql,Redis等。但是值得注意的是,因为浏览器访问Web时,如果不明确在URL里写端口,就会用80/443,并且端口还可能影响Cookie的有效性。所以Web的默认端口是不方便改的。
学会使用SSH
在*nix环境下,SSH是标准的远程主机访问的协议。所有对集群的管理都要使用SSH,因此对SSH的配置要格外留神。
总是使用生产级别的SSH认证方式
SSH支持相当多的认证方式。只有两种我认为是可以在生产中使用的:
高强度公钥私钥对(比如用RSA-1024)
Kerberos
高强度公钥私钥因为配置方便,用得更广泛。而Kerberos需要比较复杂的配置,一般常见于大型企业内部。
不要使用任何基于密码的认证方式。如果你用了密码就要记住,为了记住这个密码一定是有某个含义的,这就为字典攻击提供了条件。并且密码在网络上传输也是非常不安全的。反复输入密码会进一步增加密码被记录的概率。记得,你和服务器之间隔着互联网,你永远不知道有谁在中间。
2015年已经有消息报道RSA-1024可以通过暴力破解,但是耗费了相当大的计算资源。目前看,对于小公司RSA-1024还是安全的。但是你可以轻易地改用RSA-2048来产生公钥私钥对,指数级提高破解的难度。
RSA-1024的意思是用RSA算法产生长度为1024bit的公钥私钥对。越长的公钥私钥对越难被暴力破解。破解RSA-2048比RSA-1024需要的计算量大概大2^32倍。详情见这里。
作为入口要定时更换认证key
如果是采用公钥私钥对作为SSH的认证,建议每个季度/每半年更换一次公钥私钥对。如如果采用Kerberos作为SSH的认证,建议每个季度/每半年换一次密码。之所以这样做是因为,这个更换的周期会远远小于常规暴力破解的时间。
访问生产资源时总是经过跳板机
也许你有很多服务器主机,但是如果运维资源部不足,没法很好的挨个配置主机的SSH端口设置,可以只开一台机器的SSH端口到外网,允许远程访问。这台对外网打开SSH的机器俗称“跳板机“。
为什么使用跳板机呢?这是因为可以在一台机器上做所有的安全防护配置。在公司过规模小的时候,一个人就可以手工把所有的访问权限在这一台机器上搞了。
利用跳板机:
可以使用SSH的ProxyCommand。它可以让你访问远程主机时必须经过跳板机。这样整个集群只需要在跳板机上开到外网的SSH端口了。
可以使用SSH的端口转发(Local Port Forwarding和Remote Port Forwarding)。这个功能可以允许你用SSH包装其他协议的数据,于是你可以经过跳板机的SSH端口访问其他主机的mysql、redis、mongodb……
关于端口转发,这里推荐一个特别好的工具叫做SSL Tunnel Manager
当然,成熟的技术团队中,除了Lead、DBA和Ops,其他人不应该有权限访问生产服务。要做到这一点需要补充很多基础设施(比如带有Audit和ACL的生产数据库查询、比较方便的查询生产服务的log)。本文主要说小团队的低成本的事情,就不展开了。
确保你的软件源安全可靠
也许很多人对2015年的XCodeGhost不陌生。一些开发人员通过非官方渠道下载了XCode开发App。其中携带的被恶意篡改的基础库和App一起被打包,发布,最终安装在用户的设备上。这个问题可不一定只发生在XCode上。
每天开发者build程序都要使用各种开发工具,从外网各个地方下各种代码包。怎么确保这些东西就不出问题?最基础的防护是:总是从软件提供的官方渠道下载。就算再慢,被墙,也要想办法。如果技术手段无法约束,就必须行政手段强行禁止国内的各种下载网站下开发软件。
但如果访问这官方服务时断时续,或者比较浪费带宽(带宽费用相对比较贵),就要考虑自建“镜像”。像Artifactory就是很好的工具,可以充当内网的maven镜像库。
关注入口相关程序的漏洞
网络请求从连接到被执行,需要经过
硬件(固件)
操作系统
系统库(比如openssl)
程序库(比如jdk和依赖的各种jar)
你的程序
时刻留意这个链条上的漏洞信息(新闻/社交网站讨论等),尤其是你开放的端口的对应服务的漏洞(比如开了443要特别留意操作系统、openssl和nginx的漏洞)。大多数时候漏洞比较偏门,或者说只有学术研究价值,这种可以忽略。但如果发现有漏洞的讨论已经非常普遍,就说明这个漏洞的影响相当大,并且非常容易被利用,抓紧时间升级和修复。
如果你用的是云服务,一般厂商都会有对受影响设施升级的公告,可能会造成停服务。请时刻留意。
管好你的秘钥
用了很强的认证方式后,还要记得好好保管。要是不注意,自己把私钥泄露到了公开的地方,再强的算法也保护不了你。任何情况下不要在网络上传递秘钥。如果要传递给别人,请用纸和笔。
此外,所有的私钥,密码最终都会记录在你自己的电脑上。所以如果你去上个厕所,别人偷偷跑过来从你的没锁的电脑上拿到私密的信息,那么以上所有的防护就都没有用了。因此,离开座位时请总是锁上你的屏幕。
如果用Mac,推荐“触发角”功能。配置好后,鼠标一推就锁屏了。
总结
做到本文所说的所有策略,其实并不能保证绝对的安全。并且还有许多安全问题本文并没有考虑,比如注入攻击,CRSF,带有密码的服务配置,内网服务API的ACL,DDoS,社工学骗管理密码,短信炸弹等。
但是按照本文做了,你的服务器绝不会被攻击者以毫无成本的扫描直接攻破。攻击者必须针对你做定制的攻击方案才有可能成功。这会极大的提高攻击成本。如果你的公司还是个不起眼的小公司,那么基本上不会招眼——太不划算了。
值得注意的是,初创公司就算再怎么预算紧张,也一定要有人来负责运维。就算是开发顶一下也好,兼职也好,但机器不能没人管,不管是自建集群还是云服务。只有这个人存在,上面说的这些事情才有指望可以做好。
随着业务的扩大,服务商业价值增加,随之而来的就是更多的关注和更多的有针对性的攻击的风险。这时候,也许公司已经可以雇得起一个专心做安全的团队,购买防护软件/硬件,或者可以找到一个靠谱的安全领域的合作机构,来处理更复杂的安全攻击。
祝好运!
2019-05-23 21:18:01