常用的网络安全防范技术有哪些？如何提高网络安全防护意识？
视频传送门大家好，你们的小伙伴果子。2020年3月某站某博主花费十几万搭建的nas系统被黑客破解并勒索了。果子找到了那个视频并且搜寻了一些相关信息，有介绍病毒的运作原理及过程的，也有关于病毒如何入侵内部主机的，也有说黑客扫描开放端口，暴力破解密码的。由于被病毒加密的数据采用非对称加密，破解的难度实在是太高了，很多大型安全公司也没办法恢复数据。 作为一个网络科普博主，果子还是很关注这件事的。既然打算做关于网络的科普视频，网络安全肯定会讲，不过由于需要的基础比较多，大多都放在后面了。 这期视频是2020年5月发布的，现在咱们一起时空穿越，回到2020年5月... ...事发突然，这期视频的第一个目的，简要整理一下攻防要点，聊聊防火墙，让大家有个粗浅的概念，以后会继续深入。 第二个目的，是从一个稍微专业的角度提点网络安全小建议， 也是果子自己使用服务器的一个成长经历，毕竟用nas的小伙伴还是挺多的，而且也急需这方面的知识。 第三点，主要针对个人和企业用户，讲讲如何组建XXX网，实现企业异地组网、nas服务器的安全远程访问。 通过这期视频，如果你能发现自己网络可能存在的隐患，并能根据果子提供的信息，自行排查，或者找专业的公司来帮助你修复，能帮助你有效防范服务器被黑客攻击，果子的目的也就达到了。 我们先来看看知乎上火绒发的一个帖子，这个帖子描述了2种情况，  第一种情况是计算机已经被病毒感染，或者说病毒已经入侵了内网。这种情况很麻烦，主要防御措施还是做好备份，设置好权限，不要点击不明链接以及打开不明软件。这不是这一期视频的重点。这一期的重点是如何防范黑客从外部网络主动攻击我们的服务器和nas设备。想要了解黑客怎么攻击，我们首先需要了解互联网两台主机如何通讯。  大家还记得曾经我们讲过的osi模型吗？交换机在第二层数据链路层工作，路由器在第三层网络层工作。有了这两层，数据包已经可以在互联网中的两台计算机之间传输了。当两台主机进行通讯时，实际上是应用程序在交互。那么当主机收到数据包时，计算机怎么判断这个数据包应该交给哪个应用程序来处理呢？现在我们需要引入的一个新的概念，传输层，对应端口号，与数据链路层对应mac地址，网络层对应ip地址类似。传输层常见的协议有tcp，udp等，但是最具潜在威胁的其实是tcp协议。 大家可能没怎么听过传输层这个概念，但是大家应该经常听到“端口”这个词。例如2017年永恒之蓝爆发，通过samba协议文件共享的445端口进行传播。 再例如工信部要求运营商封了家庭网络的80，443，8080端口等。 为了更好的理解传输层，我们可以做个类比。假设我想去银行办理一个业务，有了数据链路层和网络层，我们已经能从家里走到银行门口了。但是实际去办业务时，是需要去银行的窗口或ATM机办理实际的业务。每个窗口的工作人员或ATM机就相当于银行这个“服务器”的应用程序，开放的窗口编号就相当于端口号了。现在，当我们知道端口号后，就可以找到对应的窗口办理业务，实现两台主机应用程序之间的通讯了。 从这个图，我们可以很直观的看到应用程序和端口之间的对应关系了。在linux系统中，也可以使用netstat命令查看本机与远程主机建立的连接。 那防火墙是什么呢？防火墙相当于一个关卡，可以对进出的数据包进行控制。 例如，银行门口坐着一个老大爷，为了预防新冠病毒传播，给每个进入银行的人测量体温，给张三量体温时发现高烧39度9，就没放张三进去，这种叫防火墙的filter表的input链，实现过滤功能。再例如，假设医院是一个服务器，张三出车祸被送往医院，首先访问通用的端口导医台，发现张三胸部被钢筋贯穿，服务器随后将张三的目的端口从问诊台修改为胸外科，这种叫防火墙的nat表的prerouting链，实现网络地址转换功能，也是我们之前讲过的端口映射。大家先有个粗略的概念，防火墙就是用来实现类似这样的功能，以后的视频我还会更详细的讲解防火墙。 有了这些概念后，理解网络攻防就方便的多了。如果想要防御黑客从公网攻击，那么首先就得知道黑客怎么攻击，毕竟知己知彼的好处大家还是懂得。 我们首先需要了解黑客是如何进行渗透的。在该博主被勒索之前，2017年5月，全球爆发了勒索病毒“永恒之蓝”，是通过windows操作系统SMB服务的漏洞进行传播。 我想熟悉nas的小伙伴应该知道samba是什么， 监听的端口是445端口。 当时果子学校给出的方法就是关闭对应端口， 或者通过防火墙阻断对应端口的流量。 该事件，据说是nas直接放在了公网上，并且开启了windows远程桌面的3389端口，而且使用了弱密码，刚上线的第一天就被攻破。那么我们应该如何防范呢？下面我来举个我自己的例子吧。 为了讲明白网络攻防，我拿我之前的组网方案来举个例子，通过这个例子，我想应该能覆盖到大多数情况了。 我在家里搭建了nas服务器，开启了ssh，ftp，http，nfs，transmission等服务。 其中ftp服务用于手机观看nas中的影音， http服务提供本地客户端下载服务器中的资料， nfs服务用于电脑外挂网络硬盘， transmission服务用于服务器下载种子文件， 这些服务均对磁盘有读写权限。ssh类似该博主的nas服务器的windows远程桌面程序， 用于远程登录管理和维护服务器，具有对服务器的最高权限。 现在的基本的需求是， ssh服务必须暴露在公网进行管理和维护。其他服务暂时只供局域网内的客户端使用。在保证安全的情况下，可以从其他网络访问这些服务。 现在我们结合这个例子来看看防御方案吧。 方案1，防火墙封闭对公网的端口。 如果将银行的金库直接暴露在任何人都能触碰到的地方， 张三听到这个消息高兴坏了，一下子就把银行的金库给盗了精光。 后来银行给金库设置了密码， 张三和他的同伙继续契而不舍地不断尝试密码，结果又成功盗取了一次。 黑客通常也会通过开放的端口的漏洞进行破解。张三对这个金库实在是太心动了，寝食难安， 有一天李四悄悄告诉张三，只要在金库输入一个神秘代码，金库就开了。 于是张三到银行按照李四的指点输入了这个神秘代码，金库开了，张三高兴坏了。  这种情况的防御非常简单，因为金库只有内部人员会用到，那么金库只对内部人员开放，禁止外界人员接触，这样就可以抵御大量来自外部的攻击了。 如果某个端口经常出现漏洞，或者为了方便设置弱密码，这种情况很容易被攻击。我们可以使用防火墙禁止从公网访问该端口，只允许局域网内部的主机访问，这样就相对安全了。我们只需要在防火墙中禁止ftp，http，nfs，transmission的端口从公网访问，就能阻断绝大多数攻击了，而且不影响内网使用，这是我很推荐的方法。那么如果是必须外界接触的ATM机呢？需要暴露在公网的ssh呢？这样就产生了第二个方案。 方案2，主动添加IP黑名单。 众所周知，张三就是喜欢拿着很多偷来的银行卡在很多银行的ATM机尝试破解密码，一个一个试。  那张三攻击我行金融系统，损害用户利益，是大概率还是小概率？ 请在留言区给出你们的答案。有些银行卡密码很弱，张三一下就试出密码了，张三说：哇，太开心了，好多钱啊。 那我们怎么防御呢？当你作为银行的管理人员，明知道张三要来，想要防御这样的攻击，如果能识别张三的话， 就可以把张三的IP地址直接加入防火墙的拒绝列表或丢弃列表， 当张三来到银行门口就没法进入银行内部的ATM机了。 果子以前登录自己的服务器后经常感觉很卡，当时不知道怎么回事。 查询记录后发现是有人持续尝试破解密码，ssh曾经被好几个IP使用暴力破解密码上十万次。  查询登录记录后，果子主动将这些IP地址加入到防火墙drop列表中，服务器就变得不卡了。类比这样的机制，大家可以在网上找到恶意破解的黑名单加入自己的防火墙中。 例如东北大学网络中心提供的网络威胁黑名单等。 大家可以下载。其实法外狂徒并不只张三，李四王五王六看到之后也想试试， 但是我们也不能预先知道谁要来，那么怎么办呢？果子的服务器过了段时间又开始卡了，所以需要一个自动识别的机制。 方案3，自动添加黑名单。 李四今天尝试了一次金库远程控制密码，没成功，他准备后面每天都接着再来尝试密码。这样对银行来说太危险了，万一有一天李四破解成功了呢？或者万一王五在一年的第366天破解成功了呢？现在就需要引入一个自动添加黑名单的防御机制了。这样当王六在第三天尝试密码失败之后，就被限制登录银行系统了。以后王六再到银行来，银行系统已经丢弃王六的登录请求了。 这样的例子很常见，黑客的IP地址也经常发生变化， 果子曾经也编写过脚本进行类似的防御，通过分析ssh的登录日志，定时将密码输入错误过多的IP地址整理出来自动加入防火墙的drop列表。 这种方法适合必须使用密码登录的情况，不过不是本期的重点。 果子单独做了一期视频介绍这个方法，以及果子自己编写的ssh防爆破程序。当然大家也可以尝试一些其他的安全软件。因为果子登录服务器的设备比较固定，所以已经禁止使用密码登录服务器而采用非对称加密的私钥登录， 只要ssh不出现漏洞，黑客无论怎么尝试密码都是无法破解的。虽然果子现在已经不再使用动态黑名单了，但是定时加入黑名单这种方法还是适用于离不开密码登录的小伙伴。 现在我们发现，公网能访问的只有ssh服务的22号端口了。 那么如果想要自己在公司内部所有的设备都能访问家庭防火墙内部的nas资源呢？这就需要组建XXX网实现局域网的远程对接了。 方案4，组建XXX网。 下面我来讲一个企业级的组网方案并给大家演示一下如何对接两个异地的局域网。原理很简单，我们只需要跨公网搭建一条加密隧道，使两端局域网互通就可以了。因为跨越公网的隧道是加密的，这个隧道的安全性就能得到保障。 这样，从公司访问家里的nas资源就相当于局域网访问了。家里的nas设备在公网没有暴露危险端口，这样也能保证nas在公网的安全了。果子自己是通过ssh搭建的隧道，不过搭建的难度与使用的操作系统有关，而且至少具有一个公网IP，操作起来比较麻烦，对小白和怕麻烦的企业也不太友好。 本期内容介绍到这里，关注博主，更多网络知识等着你！ 图文编辑：旋律果子 猫小爪 旋律果子： 网络Geek/Linux开发者/中国科学院大学在读博士/科技数码博主/国家二级建造师/优质科技领域创作者常驻小尾巴： ------------------- 作者介绍与教程列表(知识空间)：教程