XFile

关于XFile XFile设置 利用XFile打造家用文件服务系统 移动端应用 开发历史 下    载 授    权 联系我们

基于IPV6的家庭服务器网络安全问题(软件层)

 

1 家用文件服务器的用途

2 家庭装修时网络结构的布局

3 家用文件服务器硬件采购和组装

4 Windows平台优化部署

5 Linux平台的安装部署

5 服务器端XFile软件的 参数设置

6 手机 平板客户端软件的安装和设置

7 电脑端客户端的使用

8 常见问题和解决方法

 

服务器产生并发送错误ipv6全局地址的解决办法

外部通过IPV6访问家庭服务器在地址正确情况下失败的原因和解决办法

 

 

  由于国家强力推进降费提速,目前,很多城市的家庭宽带接入,普遍达到了下载100M上传20M,比如宁波,很多老用户都提速到了下载200M(1000M),上传30M,已经达到了部署家庭服务器的必要前提,相对之前的带宽和上下传对比,是个巨大的进步,质变会引发量变,量变同样会引发质变,既然有了这么好的网络基础,那么建设家庭服务器[也就是目前流行的雾计算,相对于云计算的高高在上,把所有数据都放到中心服务器上,雾计算更贴近用户,服务器直接放家里,数据直接放个人家里的服务器上,避免人为的各种数据泄密等]也就水到渠成了,但是,暴露在公网上的家庭服务器,一定会有很多人担心网络安全问题,网上那么多文章,暴了那么多漏洞,打不完的补丁,安不安全,我要不要再去买个防火墙......

  现在,我们将协助您快速理解网络安全问题和如何避免网络安全问题.

[1] 首先,要通过网络攻击一个服务器,前提是必须获得该服务器的ip地址,而基于IPV6的家庭服务器,相对于IPV4,有一个巨大的安全优势,由于ipv4下,只分配一个地址,整个网络也只有40亿个有效地址,因此很容易被扫描到,而ipv6下,默认是采用stateless[无状态]分配,也就是由操作系统本身根据前缀自行设置ip地址,默认分配的前缀是64位,计算机分配的后缀可能地址是上亿亿个 [IPV6地址是由前缀和后缀组成],什么概念呢,整个ipv4公网的有效地址是40亿个,而到了ipv6,你自己可以分配的地址是40亿倍的ipv4,假设有一个非常非常牛的黑客,它花钱租用了10万台肉鸡[被感染的计算机,路由器等,事实上没有什么人会花钱调动那么多肉鸡],它已经知道了你所在的电信或者移动等拨号分配到你家的Ipv6前缀[例如你的手机访问钓鱼网站,那么手机的ip地址就泄露了,由此获得了你家ipv6前缀,ipv4更糟糕,你家的ip地址直接就暴露了], 但是后缀是你自己分配的,它无法知道,因此必须通过扫描来获取可能的地址,按每台肉鸡每秒执行1000次[实际做不到,因为如果每秒1000次,那么漏扫的概率几乎超90%,每秒100台都已经算多了],那么黑客控制的10万台肉鸡每秒能扫一亿台 [假设,实际是达不到的], 那么它扫完你家的整个网段至少需要40亿秒,什么概念呢,大约是46300天,不吃不喝不睡觉全力扫描你家,需要大约125年能完成,而实际上,你家的拨号上网,大约3到15天就会变化一次前缀,也就是它在3天后完全是做无用功,因为地址段完全变了,那个时候,那个地址早就不是你家的了. ipv6建设家庭服务器影响安全的最大问题是什么呢,就是动态域名,有些人为了方便,应用DDNS注册了二级动态域名,由于动态域名是没有保护的,任何人都可以通过DNS来查到动态域名的当前对应ip地址,这样就不用扫描,直接就能获取你家服务器的ip地址了.因此,如果您使用我们的XFile建立家庭文件服务器,并使用ipv6网络,强烈建议您不要去注册动态域名,XFile已经完全支持通过电子邮件自动获取服务器ipv6地址了,您只需要按我们的设置去做,就能达到服务器隐身的目的,同时解决客户端软件的地址解析难题.

[2] 假如你不走运,被黑客获取到了你家服务器的ip地址,或者你布置了动态域名,被黑客查到了你家服务器的地址,那么,这个时候,黑客需要通过网络远程尝试攻击你的服务器. 要进行攻击,就要求被攻击的服务器必须有开放的端口 ,或者你部署了防火墙软件,而这个防火墙软件本身存在漏洞[典型的如windows xp自带的防火墙,本身存在漏洞],但是到现在,比如windows 10的高级防火墙,或者linux的iptables,本身可以认为是没有漏洞的,或者干脆没有防火墙,我们来看下,会有什么发生,在没有防火墙的情况下,如果没有开放的端口,那么这个ip包会在你tcp/ip协议栈里走一下,匹配不到,然后被操作系统丢弃,什么反映都没有;另一种是部署了防火墙,那么如果防火墙没有开放端口,直接被防火墙给丢弃. 比如一台服务器电脑,运行了utunbu linux 18.04lts,后台服务全关,包括系统自带的反馈等全关,没有开放端口,这样的一台电脑,至少在目前看来,没有任何人可以通过网络攻破它,能攻破它的人可以直接去欧盟领奖金,而且应该可以直接拿到顶级的offer,整个世界的服务器基本都完蛋了. 什么意思呢,要攻击,必须你这台服务器有开放的对外端口[通常就是后台服务,例如http,https,ftp,pop3,smtp等],没有对外的端口,神仙也无法攻击啊. 假设你部署了某种服务,那么有两种攻击方法,一种是DOS拒绝服务攻击[包括ddos攻击,分布式拒绝服务攻击],什么意思呢,就是让你的服务器时刻处理无效的垃圾连接,而无法提供 正常的服务,当你自己想使用服务的时候,感觉就象这台服务器掉线了或者死机了,这种攻击不会对服务器造成实质的损害,攻击者无法获取服务器上的任何资源,作为家庭服务器,一般只需要重新拨号[换个ip地址],就可以恢复服务,但是如果做了动态域名,则可能恢复不了多少时间就又被攻击了,这时候只需要停止更新ddns就可以摆脱这种攻击. 另一种就是漏洞攻击,我们会在下面详细讲述. 另外一种常见的被攻击手段就是你被钓鱼了,例如你在服务器电脑上使用浏览器访问了某些钓鱼网站,被引诱下载了某些木马,这时候,堡垒就被从内部攻破了,这也是非常常见的攻击手段,因此我们强烈建议不要在服务器电脑上执行除了部署软件外的任何操作.

[3] 漏洞攻击,这是非常常见的一种攻击手段,漏洞分两种,一种是操作系统本身的漏洞,我们常见的补丁里,通常就包含这种系统本身漏洞的补丁,例如recvmmsg本地信息泄漏漏洞,但是,要利用这种漏洞的前提,是黑客必须已经获得了服务器本地执行的能力才可以,在获得服务器本地执行能力之前,通常这种漏洞是无法被远程利用的.很多人可能误解了,以为只要操作系统本身有漏洞,那么就可能导致服务器被黑,其实根本不是这回事,操作系统本身[内核]的漏洞,通常不会被网络攻击利用,只能在本地执行被利用,事实上大多数情况下和网络攻击没直接关系,例如,之前轰动全世界的"融毁"和"幽灵"的cpu硬件漏洞(Meltdown和Spectre),这足够大了吧,几乎所有的主流操作系统内核全部中招,补丁打到现在都还没有完全修复,但是并没有服务器因为这些漏洞被远程攻击成功,为什么呢?因为很简单,这几个系统级漏洞,利用的前提是,必须把恶意程序或者代码在远程服务器的本地执行,才有可能盗窃口令等,而要能够在远程服务器上执行恶意程序,前提是你必须获得远程的上传和执行权限,但是系统默认情况下是没有服务的,或者部署的软件本身没有致命漏洞,这个漏洞也就无法被利用[一种例外是共享服务器例如云服务器,一台服务器分配给很多用户,同时很多用户是具有本地执行权限的,在这种情况下,无论是vps还是容器,按全性上就出现了问题,因为有可能一个容器[用户]利用这两个漏洞访问别的容器[用户]的内存空间,发生密码泄漏,但是对于单用户服务器,比如我们的家庭服务器,因为本身就只有一个用户,也就是你自己使用,这个风险几乎可以被忽略. 另一种就是服务器网络服务软件漏洞, 这也要分成几种,一种是软件本身的漏洞,小漏洞,例如输出错误等小问题是不会引发漏洞的,但是,有些严重的漏洞,最常见的例如远程溢出漏洞,一个服务器软件用c语言编写,分配了500字节缓冲,然后使用了不安全的拷贝函数strcpy并且没有做输入检查,而黑客输入超过500字节,这时候,就导致了缓冲溢出,如果这是个主流软件或者开源软件,并且检测不到这个内存溢出异常,那危险就比较大了,这个时候,除了软件开发者打补丁,除非你关闭软件本身.另一种则不是软件本身的漏洞,而是后端开发者导致的漏洞,这也是网络上最最常见的漏洞攻击,例如架个web服务,做个论坛,然后为了方便管理,写了个后台上传,例如admin_upload.asp,然后设置了非常简单的用户名和口令例如12345678,被人家暴力破解掉,那么系统的上传就暴露了;还有一种是后端程序安全性做的不好,例如可能为了方便用户上传文件,在网页里做了个接口,例如user_upload.asp,然后这个接口,对用户的输入没有做严格的检测,例如,提供用户登录的login, 连接的sql数据库语言可能是Select id from user_table where name='user' and passwd='12345678',我们在用户里做下手段,如果user字段没有进行严格的过滤,允许用户输入单引号等字符,那么这个登录就完蛋了,只要在用户名里添加单引号和--就可以跳过密码验证,任何人都可以登录,安全就被破坏了.

[4]无心之过,有些人可能并不了解安全,只要好用就照网上教程部署,典型的如NFS服务,这个服务在Linux/Unix下用来部署文件共享比SMB还快,还好用,但是并没有人告诉你,NFS是没有什么口令保护的,它只能根据ip地址来做访问控制,如果你按照网上的教程,允许所有ip访问,那么对不起,万一被别人发现你的ip地址,你的服务器直接变成了超级大肉鸡.

[5]额外的防护手段,常常有些所谓的"牛人"警告你,不做防护放在公网上的服务器风险很大,其实针对的是服务器万一存在漏洞被攻破的弥补手段或者降低损失的手段. 出现风险的前提是你在服务器上部署了高风险服务,例如apache+java/php+sql,用户的输入被动态解析语言处理并在你的服务器端执行,因为没有人可以保证所有的php语句[类似的还有asp,java,python等]都是按设计目的进行执行,也无法预料用户会输入什么,特别是正则表达式处理,这些组合可以产出漂亮的WEB页面,但是带来的风险也是巨大的,因此,才有公网服务器风险很大的说法,其实针对不不是服务器系统本身,而是上面部署的服务软件,如果服务软件本身很安全,也不在后台执行java/php/c#等后端输出,那么风险是很小的 几乎是0,除非服务器软件本身存在严重漏洞. 而网上说的防护,其实主要并不是针对的网络攻击本身(这方面只有防火墙有点作用,其实也是心理作用),而是针对万一例如动态web程序存在漏洞,被攻击者获得了执行权限后的补救措施,例如现在linux上常见的chroot,它本身并不是用来对 付攻击,而是万一程序本身存在漏洞被突破,可以把根目录限制在一个指定目录,这样就算攻击者获得了执行权限,但是由于无法切换到指定目录以外 特别是无法访问根目录,就可以降低损失;同样的还有防火墙,防止外来未开放端口的数据包,其实更大的作用是,万一例如web程序存在漏洞,攻击者获得了权限,但是由于防火墙设置了端口开放规则,攻击者就很难重新开个端口偷取服务器的资料,也就降低了损失.当然,关键的服务器,可能还会部署预警程序,这样万一某台服务器出现了规则外的动作,管理员可以立即获知并做出应对和检查,但是由于家庭服务器本身也就部署一个或者两个简单的对外文件服务,并不会去部署那种巨无霸级的几个风险软件组合,因此普通的防护手段够了.

综合上面的几点,架设一台相对安全基于IPV6的家庭服务器,我的建议是: [1]使用Linux或者Windows server操作系统,不建议使用windows7/windows10这样的桌面操作做服务器系统(后台默认开启的服务太多了),并打上最新的补丁. [2]不建议做DDNS动态域名,这能避免几乎99%的可能攻击,别人不知道你的IP地址如何攻击你? [3]关闭所有不必要的后台服务,服务越少,出现漏洞的可能性就越小. [4]如果没有绝对的必要,不要在你的家庭服务器上开启动态web apache(nginx,iis...)+java/php/c#/vb+SQL,这种高风险组合的漏洞几乎一直不断,a是安全的,b是安全的,c也是安全的,但是a+b+c,就无法保证安全了,软件规模越大,功能越复杂,存在漏洞的概率就越高. [5]及时升级,特别是服务器软件的升级,家庭服务器基本是单用户,在这种情况下,服务器软件的安全性要求远大于操作系统的安全性.

如果您部署的是服务器主板,那么请注意,关闭BIOS里的远程功能以及Intel特有的V pro(AMT),切记! 这是硬件层的问题,但是经常遇见,因此我们这里特意强调一下.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
(c) 2016-2023 phoenixp2p.com