目 录
1 前言 3
2 网络安全 3
3 系统安全 3
4 WEB服务安全 4
4.1 IIS安全配置 4
4.2备份 4
5 MSSQL数据库安全 4
5.1使用安全的密码策略 5
5.2使用安全的帐号策略。 5
5.3加强数据库日志的记录 5
5.4管理扩展存储过程 6
5.5使用协议加密 6
5.6不要让人随便探测到TCP/IP端口 6
5.7拒绝来自1434端口的探测 7
5.8对网络连接进行IP限制 7
5.9备份 7
6 ASP代码安全 7
7 Serv-U安全 7
8 小结 8
1 前言
在这混的久了收获很多,感觉不发点东西就对不起这里的兄弟姐妹,因此就把我对Windows系统配置的一点经验共享一下.希望对初学者有点帮助!^_^
Windows 系统整合要根据不同平台进行不同的安全配置,甚至由于版本的不同安全配置也会有很大的差别。这里的整合的平台:Windows Server+IIS+ASP+MSSQL2K+ServU,可以说这个是目前Windows整合典型配置。
2 网络安全
网络安全主要考虑的是防火墙的配置,设定严格的访问的控制列表,以及根据服务器的需要对外网开放端口的控制。在不考虑防火墙对网络性能的影响下一般建议用端口NAT功能或地址映射功能对服务器地址进行转换。这样的好处是服务器的地址不暴露在外面,外网的攻击无法直接攻击在服务器上。但是缺点是对网络性能影响相对于透明模式影响比较大。如果是IDC机房的话还是用透明模式比较好,对网络的影响比较小。
如果服务器不多又出于成本考虑的话,可以把路由器配置成防火墙,通过配置路由器可以实现70%防火墙的功能。或者在Win2K 里把的自带防火墙配起来。可能有人要问Win2K那里自带了防火墙又不是Windows 2003 Server,其实Win2K也带防火墙的只是系统本身没有提供好用的配置界面而已,甚至在某些抵御攻击方面超过了著名Linux自带防火墙iptables。
3 系统安全
WINDOWS的系统安全是出了名的难做,这是由于微软的操作系统在市场的占由率大,使用的人多导致他的安全问题暴露的比较快导致的。所以首先一定在装好的系统上把补丁打全,关闭所有的除了服务需要以外的端口。
处以上这些还要做下列操作才能增加服务器的安全性。
1). 对磁盘和文件权限进行重新设置。
2). 加密文件或文件夹:为了防别人偷看系统中的文件,这里可以利用Win2000系统提供的加密工具,来保护文件和文件夹。其具体操作步骤是,在“Win 资源管理器”中,用鼠标右键单击想要加密的文件或文件夹,然后单击“属性”。单击“常规”选项卡上的“高级”,然后选定“加密内容以保证数据安全”复选框。
3). 配置超强口令,隐藏上次登录用户名:给所有用户帐号一个复杂的口令,长度最少在8位以上, 且必须同时包含字母、数字、特殊字符。同时不要使用大家熟悉的单词(如Microsoft)、熟悉的键盘顺序(如qwert)、熟悉的数字(如2000)等。
4). 口令必须定期更改(建议两周改一次),系统操作完备一定要锁定服务器。
5). 配置WINDOWS的安全审核策略
6). 起用自动补丁更新服务,让系统自动更新安全补丁。
7). 配置WINDOWS的端口过滤服务,禁止不需要的端口。
8). 如非服务需要一定删除所有的网络共享资源:卸载“Microsoft 网络的文件和打印机共享”。
9). 安装杀毒软件,并经常更新病毒码库。
4 WEB服务安全
WEB服务安全这里指IIS+ASP服务器的安全配置。
4.1 IIS安全配置
由于IIS 安全问题比较多,因此要很严格配置的安全策略。
1). 关闭并删除默认站点:删除FTP 服务、删除默认的WEB站点、删除默认的WEB管理、如非必要建议删除SMTP 服务,防止外网利用服务器做邮件中继,并禁用或删除所有示例程序、删除IISADMPWD虚拟目录。
2). 建立自己的站点,与系统不在一个分区如D:wwwroot3. 建立 E:Logfiles 目录,以后建立站点时的日志文件均位于此目录,确保此目录上的访问控制权限是: Administrators(完全控制)System(完全控制)。
3). 删除不必要的IIS映射和扩展: IIS 被预先配置为支持常用的文件名扩展如 .asp 和 .shtm 文件。IIS 接收到这些类型的文件请求时,该调用由 DLL 处理。如果您不使用其中的某些扩展或功能,则应删除该映射,步骤如下:打开 Internet 服 务管理器选择计算机名,点鼠标右键,选择属性:然后选择编辑然后选择主目录, 点击配置选择扩展名 ".htw",".htr",".idc",".ida",".idq"和".printer",点击删除如果不使用server side include,则删除".shtm" ".stm" 和 ".shtml"。
4). 为虚拟目录设置正确的访问控制列表。
5). 为IIS日志文件设置正确的访问控制列表。
6). 启用日志:客户、IP地址、用户名、方式、URI资源、HTTP状态、Win32状态、用户代理、 服务器IP地址 、服务器端口。
4.2 备份
如果有页面更新的话因应该及时备份,要求备份的介质应与服务器分开放,决对禁止直接备份在服务器上。
5 MSSQL数据库安全
微软的SQL Server是一种广泛使用的数据库,很多电子商务网站、企业内部信息化平台等都是基于SQL Server上的,但是数据库的安全性还没有被人们更系统的安全性等同起来,多数管理员认为只要把网络和操作系统的安全搞好了,那么所有的应用程序也就安全了。大多数系统管理员对数据库不熟悉而数据库管理员有对安全问题关心太少,而且一些安全公司也忽略数据库安全,这就使数据库的安全问题更加严峻了。数据库系统中存在的安全漏洞和不当的配置通常会造成严重的后果,而且都难以发现。数据库应用程序通常同操作系统的最高管理员密切相关。应用广泛的SQL Server数据库又是属于“端口”型的数据库,这就表示任何人都能够用分析工具试图连接到数据库上,从而绕过操作系统的安全机制,进而闯入系统、破坏和窃取数据资料,甚至破坏整个系统。
因此在SQL2000 SP3 补丁打过的前提进行下列SQL Server的安全配置。
5.1 使用安全的密码策略
必须把密码策略摆在所有安全配置的第一步,请注意,很多数据库帐号的密码过于简单,这跟系统密码过于简单是一个道理。对于sa更应该注意,同时不要让sa帐号的密码写于应用程序或者脚本中。健壮的密码是安全的第一步!
SQL Server2000安装的时候,如果是使用混合模式,那么就需要输入sa的密码,除非你确认必须使用空密码。这比以前的版本有所改进。
同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合密码要求的帐号。比如使用下面的SQL语句:
Use master
Select name,Password from syslogins where password is null
5.2 使用安全的帐号策略。
由于SQL Server不能更改sa用户名称,也不能删除这个超级用户,所以,必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号,只有当没有其它方法登录到 SQL Server 实例(例如,当其它系统管理员不可用或忘记了密码)时才使用 sa。建议数据库管理员新建立一个拥有与sa一样权限的超级用户来管理数据库。安全的帐号策略还包括不要让管理员权限的帐号泛滥。
SQL Server的认证模式有Windows身份认证和混合身份认证两种。如果数据库管理员不希望操作系统管理员来通过操作系统登陆来接触数据库的话,可以在帐号管理中把系统帐号“BUILTINAdministrators”删除。不过这样做的结果是一旦sa帐号忘记密码的话,就没有办法来恢复了。
很多主机使用数据库应用只是用来做查询、修改等简单功能的,请根据实际需要分配帐号,并赋予仅仅能够满足应用要求和需要的权限。比如,只要查询功能的,那么就使用一个简单的public帐号能够select就可以了。
5.3 加强数据库日志的记录
审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有帐号的登录事件。
请定期查看SQL Server日志检查是否有可疑的登录事件发生,或者使用DOS命令:findstr /C:"登录" d:Microsoft SQL ServerMSSQLLOG*.* 。
5.4 管理扩展存储过程
对存储过程进行大手术,并且对帐号调用扩展存储过程的权限要慎重。其实在多数应用中根本用不到多少系统的存储过程,而SQL Server的这么多系统存储过程只是用来适应广大用户需求的,所以请删除不必要的存储过程,因为有些系统的存储过程能很容易地被人利用起来提升权限或进行破坏。
如果你不需要扩展存储过程xp_cmdshell请把它去掉。使用这个SQL语句:
use master
sp_dropextendedproc 'xp_cmdshell'
xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你需要这个存储过程,请用这个语句也可以恢复过来。
sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
如果你不需要请丢弃OLE自动存储过程(会造成管理器中的某些特征不能使用),这些过程包括如下:
Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop
去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下:
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues Xp_regread Xp_regremovemultistring Xp_regwrite
还有一些其他的扩展存储过程,也要检查检查。
在处理存储过程的时候,一定确认一下,避免造成对数据库或应用程序的伤害。
5.5 使用协议加密
SQL Server 2000使用的Tabular Data Stream协议来进行网络数据交换,如果不加密的话,所有的网络传输都是明文的,包括密码、数据库内容等等,这是一个很大的安全威胁。能被人在网络中截获到他们需要的东西,包括数据库帐号和密码。所以,在条件容许情况下,最好使用SSL来加密协议,这就需要在安装的时候安装一个证书来支持。
5.6 不要让人随便探测到TCP/IP端口
默认情况下,SQL Server使用1433端口监听,很多人都说SQL Server配置的时候要把这个端口改变,这样别人就不能很容易地知道使用的什么端口了。可惜,通过微软未公开的1434端口的UDP探测可以很容易知道SQL Server使用的什么TCP/IP端口了.
不过微软还是考虑到了这个问题,毕竟公开而且开放的端口会引起不必要的麻烦。在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server 实例。如果隐藏了 SQL Server 实例,则将禁止对试图枚举网络上现有的 SQL Server 实例的客户端所发出的广播作出响应。这样,别人就不能用1434来探测你的TCP/IP端口了(除非用Port Scan)。
为此一定更改原默认的1433端口。在实例属性中选择网络配置中的TCP/IP协议的属性,将TCP/IP使用的默认端口变为其他端口。
5.7 拒绝来自1434端口的探测
由于1434端口探测没有限制,能够被别人探测到一些数据库信息,而且还可能遭到DOS攻击让数据库服务器的CPU负荷增大,所以对Windows 2000操作系统来说,可以通过“端口过滤”过滤拒绝掉1434端口的UDP通讯,可以尽可能地隐藏你的SQL Server。
5.8 对网络连接进行IP限制
限制和SQL Server 连接的IP。
5.9 备份
数据库应该定期备份,将重要的库和表的内容备份到备份介质上。
6 ASP代码安全
1). 在开发页面时代码完成后要做安全测试。
2). 用ASPLock等ASP 代码加秘工具进行代码加密。
3). 尽量使用安全套接字(SSL)技术配置服务器。
4). 配置时要求页面不要放在系统盘下。
由于ASP 这块的安全性主要在控制开发人员在开发中对安全性的重视程度而定。
7 Serv-U安全
1). 一定要用最新的版本,因为老版本(4.x)有远程缢出的问题。
2). 对“本地服务器”进行设置:(1)首先,选中“拦截FTP_bounce攻击和FXP”。什么是FXP呢?通常,当使用FTP协议进行文件传输时,客户端首先向FTP服务器发出一个“PORT”命令,该命令中包含此用户的IP地址和将被用来进行数据传输的端口号,服务器收到后,利用命令所提供的用户地址信息建立与用户的连接。大多数情况下,上述过程不会出现任何问题,但当客户端是一名恶意用户时,可能会通过在PORT命令中加入特定的地址信息,使FTP服务器与其它非客户端的机器建立连接。虽然这名恶意用户可能本身无权直接访问某一特定机器,但是如果FTP服务器有权访问该机器的话,那么恶意用户就可以通过FTP服务器作为中介,仍然能够最终实现与目标服务器的连接。这就是FXP,也称跨服务器攻击。选中后就可以防止发生此种情况。(2)其次,在“SSL证书”选项卡中修改证书的内容,并且在“高级”选项卡中,检查“启用安全”是否被选中。
3). 对域中的服务器进行设置:(1)前面说过,FTP默认为明文传送密码,容易被人嗅探,对于只拥有一般权限的账户,危险并不大,但如果该账户拥有远程管理尤其是系统管理员权限,则整个服务器都会被别人远程控制。在域的传输方式上选择第三个“只容许SSL/TLS进程”。注意,当用户凭此账户登录服务器时,需要FTP客户端软件支持此密码类型,如CuteFTP Pro等,输入密码时选择相应的密码类型方可通过服务器验证。(2)Serv-U对每个账户的密码都提供了以下三种安全类型:规则密码、OTP S/KEY MD4和OTP S/KEY MD5。不同的类型对传输的加密方式也不同,以规则密码安全性最低,建议选择OTP S/KEY MD5。同时选中“需要安全连接”选项。
4). 与IIS一样,还要谨慎设置主目录及其权限,凡是没必要赋予写入等能修改服务器文件或目录权限的,尽量不要赋予,建议把FTP用户锁定在目录下。最后,进入“设置”,在“日志”选项卡中将“启用记录到文件”选中,并设置好日志文件名及保存路径、记录参数等,以方便随时查询服务器异常原因。
8 小结
本文档为建立安全的Windows Server+IIS+ASP+MSSQL2K+ServU 架构的站点提供一个解决方案。在具体的安全部署过程中,MSSQL数据库的安全是比较重要的,大部分的安全工程师对数据库的安全重视不够导致了服务器很容易被入侵。在这里ASP的安全描述的不多,这是由于ASP的安全主要是在开发当中对代码的审查不严格导致的,所以有不确定的因素在内,只有在建立架设的时候视情况而定。
安全第一,在sql server和client之间配置ssl连接
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com