5

运维往事 公司生产服务器不让连公网 | XINDOO

 2 years ago
source link: https://zxs.io/article/1418
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

运维往事 公司生产服务器不让连公网

2018-10-25 分类:架构 / 运维 阅读(4863) 评论(0)

  15年毕业,就莫名其妙做了运维,也成为了阿里最后一批业务运维(pe)。刚开始做运维的时候由于基础知识太差,很多事情做了就做了,但也不理解为什么那么做了,知道后来跳出运维的圈子,自己做了开发,思路、见识、视野渐渐开阔之后也就慢慢明白了之前好多不懂的东西,想着想着也觉得比较有意思,这里记录下。

在阿里干过运维的人都只知道阿里有七网隔离,具体是哪七网我也记不全了,大概就是办公网、生产网、公网、阿里云、蚂蚁金服……,隔离也就意味着这些网络之间是无法直接访问的。当时做运维的时候没有经过任何系统的培训,摸着黑干活,好多事只有遇到了才能接触到,说实话我也是干了好久才看到七网隔离的。为什么要做七网隔离,最主要一点就是网络安全,不把所有鸡蛋放一个篮子里,即便黑客入侵了其中一个网络,剩下的其他网络也是安全的。除了生产隔离之外,我觉得七网隔离也带来一些其他的好处,比如业务系统的强制解耦,更安全的发布规范………
  但七网隔离也有有些不便的地方,比如我们经常要在各个网络间就跳转,最常见就是从办公网进入生产网,公司为我们提供了跳板机,相当于开了一扇从办公网进入生产网的门。再比如,我们有些应用可能需要从外网去获取有些资源,服务器默认都是不能连外网的,这就悲剧了,之前好多应用做迁移的时候,换到新服务器上,结果就不能正常运行了。最开始做应用迁移的时候我也不知道,出问题了才有人告诉我有这个坑。  
  解决方案就是到我们一个系统上去提交安全外联申请,然后主管审批+安全部门同事审批后就可以连到公网了。我开始做运维的时候这些都已经变成一个走流程的事了,提个单子,点吧点吧就好了,当时也不理解点几下按钮的背后到底发生了什么,直到后来有一次有个同事让我查一个网络问题,大概是他的应用需要从互联网下载一个jar包,但是一直下不下来,我居然当时没意识到这是受七网隔离的限制,但最后让我发现了网络隔离的秘密。
  当时知道肯定是网络的问题,但也不知道怎么查,还有有台正常的机器可以对比,;然后google+百度找方法,两台机器做对比,最后终于让我发现两者的差别了。 在服务器上执行route这个命令可以看到本机的静态路由表,大概如下

在这里插入图片描述
  数据表在网络中传输起始就是依靠一张张路由表来找到路的,比如在上图中,去往100.64.0.0子网掩码是255.192.0.0网络请求就可以通过10.45.71.247这台gateway跳转出去,这里没有具体配置的网段都可以通过default 47.88.191.247这台gateway跳转出去。
  就好比在猎户座B1024星系,有好多个联邦(网络,比如一个局域网),每个联邦都有一个联邦编号(子网掩码),每个联邦由很多个国家(服务器),每个国家都有一个32位的二进制编号(ip地址),一个 国家的人(数据包)想去另一个国家,就必须通过某个港口(港口)出去,可能特定联邦某个国家必须走一个特定的港口,或者直接走一个通用的港口(default),这些联邦和港口之间对应的关系写在本国法律里(路由表),如果某个联邦要闭关锁国,联邦就会要求自己所有的国家关闭通用港(default路由),只开特定的港口,这这个联邦就和其他联邦隔离了。
  通过上面这个例子,很明显不能访问公网的机器路由表都没有default这一条。服务器刷系统的时候,都默认不刷default路由,只刷特定几个特定网段的路由表,七网隔离是这么实现了。不过有root权限的我啥搞不定啊(偷笑),route add default gw *.*.*.* 就搞定,于是当时我也是这么解决的。
  虽然我是发现了这个“秘密”,但是也不敢怎么用,因为到时候出了网络安全的问题,背锅的还是自己,况且后来逐渐引导研发自己去提安全外联申请,逐渐也就没我什么事了。
  回过头来想想,凡事皆有利弊,只要利大于弊就值得去做。别看限制网络连接是一个非常简单的事,但也是非常有效且低成本的网络安全防护措施。减少网络出入口,也就大大减少了出现安全漏洞的可能性。自己在搭设云服务的时候可以考虑下只开放必要的流量出入口,像有些比较成熟的云厂商(比如阿里云)其实已经提供了服务器安全策略的配置,假如云厂商未提供相关配置,可以考虑自行用iptables配置一些安全策略,有备无患。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK