和端口是危险的代名词 连接于微软网络上的电脑之间使用和端口取得IP地址然后进行文件共享和打印机共享等实际通信通信过程是通过SMB(服务器信息块)协议实现的这里使用的是和端口 图1●SMB与CIFS的区别Windows 以前版本的Windows使用NetBIOS协议解决各计算机名的问题通过向WINS服务器发送通信对象的NetBIOS名取得IP地址而Windows以后的版本所采用的CIFS则利用DNS解决计算机的命名问题根据DNS服务器中的名字列表信息寻找需要通信的对象如果顺利地得到对象的IP地址就可以访问共享资源 在SMB通信中首先使用上述的计算机名解释功能取得通信对象的IP地址然后向通信对象发出开始通信的请求如果对方充许进行通信就会确立会话层(Session)并使用它向对方发送用户名和密码信息进行认证如果认证成功就可以访问对方的共享文件在这些一连串的通信中使用的就是端口 Windows 和XP除此之外还使用端口文件共享功能本身与端口相同但该端口使用的是与SMB不同的协议这就是在Windows 中最新使用的CIFS(通用因特网文件系统)协议 CIFS和SMB解决计算机名的方法不同SMB使用NetBIOS名的广播和WINS解决计算机名而CIFS则使用DNS(图) 因此在文件服务器和打印服务器使用Windows的公司内部网络环境中就无法关闭和端口很多情况下文件共享和打印机共享在普通的业务中是不可缺少的功能而客户端如果自身不公开文件就可以关闭这两个端口 假如是仅版本以后的Windows构成的网络就可以关闭端口这是因为如前所述该网络只用端口就能够进行文件共享由于在解决计算机名过程中使用DNS所以也可以关闭和端口不过在目前情况下基本上所有的网络系统都还在混合使用以前的Windows版本在混合网络环境中由于必须使用端口通过SMB协议进行通信因此就无法关闭端口另外浏览时还需要~端口 公开服务器绝对应该关闭这些端口 在因特网上公开的服务器要另当别论公开服务器打开和端口是一件非常危险的事情就像本文开头所说的那样如果有Guest帐号而且没有设置任何密码时就能够被人通过因特网轻松地盗看文件如果给该帐号设置了写入权限甚至可以轻松地篡改文件也就是说在对外部公开的服务器中不应该打开这些端口通过因特网使用文件服务器就等同自杀行为因此一定要关闭和端口对于利用ADSL永久性接入因特网的客户端机器可以说也是如此 要关闭端口与和端口一样可以选择将NetBIOS over TCP/IP设置为无效而要想关闭端口则必须进行其他工作利用注册表编辑器在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters中追加名为SMBDeviceEnabled的DWORD值并将其设置为然后重新起动机器 NET中安全策略改变了吗? 就像在此之前所讲的那样直接在默认设置条件下使用现有的Windows将会出现各种各样的危险这是因为Windows是为了让初学者不需进行复杂设置就可以使用而开发的 比如Windows Server在安装该系统时会自动安装IIS而且只需起动个人电脑IIS服务就会启动虽然Windows NT Server可以选择是否安装IIS但在默认条件下该服务的复选框是有效的与一样在起动电脑时IIS服务也会自动起动 而Linux则在很多方面都采取的是完全不同的思路比如RedHat Linux 在安装过程中必须让用户设置防火墙由于防火墙有高中低三种等级因此所拦截的信息包也各不相同如果选择高将关闭(DNS)和(DHCP)以外的全部端口如果选择中尽管会打开以上的端口但在一般人熟知的端口中打开的只有和三个 安装应用程序时的作法也不同RedHat Linux 在安装时可选择工作站服务器和桌面三种类型因此即使选择服务器如果用户不选择构筑兼容Windows的文件服务器Samba和Web服务器Apache等就不会进行安装另外即便安装以后也不会直接起动如果用户明确地启动必要的服务后没有设置利用过滤软件过滤信息包相应端口就不会打开 如果只考虑方便性Windows要更好一些这是因为即便不进行复杂的设置系统也能够自动起动各种服务但这样一来就甚至极有可能起动用户不希望起动的服务而且这些服务往往还是在用户不知晓的情况下起动的可以这样说如果希望安全地运行服务器或者希望保护自己的客户端个人电脑免受危险那么最好不要随便安装和设置 美国微软也提出了值得依赖的计算(Trustworthy Computing)的计划并计划利用定于年初开始上市的Windows NET Server实现默认安全与Windows 不同的是将不再标准安装IIS服务即便增加了IIS组件OS起动时该服务也不会自动运行 不过如果只要使用测试版和端口在默认条件下就是打开的另外从Windows XP开始导入的因特网连接防火墙(ICF)的使用在默认条件下也是无效的要想在默认设置下实现与Linux相同等级的高安全性可以说最稳妥的方法是将ICF设置为有效然后用户再根据自己的需要选择起动的服务 |