重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Web服务器攻击常利用Web服务器软件和配置中的漏洞,web服务器安全也是我们现在很多人关注的一点,那么你知道web服务器安全设置吗?下面是我整理的一些关于web服务器安全设置的相关资料,供你参考。
创新新互联,凭借十载的做网站、成都网站设计经验,本着真心·诚心服务的企业理念服务于成都中小企业设计网站有上千余家案例。做网站建设,选创新互联。
web服务器安全设置一、IIS的相关设置
删除默认建立的站点的虚拟目录,停止默认web站点,删除对应的文件目录c:inetpub,配置所有站点的公共设置,设置好相关的连接数限制, 带宽设置以及性能设置等其他设置。配置应用程序映射,删除所有不必要的应用程序扩展,只保留asp,php,cgi,pl,aspx应用程序扩展。对于php和cgi,推荐使用isapi方式解析,用exe解析对安全和性能有所影响。用户程序调试设置发送文本错误信息给客户。
对于数据库,尽量采用mdb后缀,不需要更改为asp,可在IIS中设置一个mdb的扩展映射,将这个映射使用一个无关的dll文件如C:WINNTsystem32inetsrvssinc.dll来防止数据库被下载。设置IIS的日志保存目录,调整日志记录信息。设置为发送文本错误信息。修改403错误页面,将其转向到其他页,可防止一些扫描器的探测。另外为隐藏系统信息,防止telnet到80端口所泄露的系统版本信息可修改IIS的banner信息,可以使用winhex手工修改或者使用相关软件如banneredit修改。
对于用户站点所在的目录,在此说明一下,用户的FTP根目录下对应三个文件佳,wwwroot,database,logfiles,分别存放站点文件,数据库备份和该站点的日志。如果一旦发生入侵事件可对该用户站点所在目录设置具体的权限,图片所在的目录只给予列目录的权限,程序所在目录如果不需要生成文件(如生成html的程序)不给予写入权限。因为是虚拟主机平常对脚本安全没办法做到细致入微的地步。
方法
用户从脚本提升权限:
web服务器安全设置二、ASP的安全设置
设置过权限和服务之后,防范asp木马还需要做以下工作,在cmd窗口运行以下命令:
regsvr32/u C:\WINNT\System32\wshom.ocx
del C:\WINNT\System32\wshom.ocx
regsvr32/u C:\WINNT\system32\shell32.dll
del C:\WINNT\system32\shell32.dll
即可将WScript.Shell, Shell.application, WScript.Network组件卸载,可有效防止asp木马通过wscript或shell.application执行命令以及使用木马查看一些系统敏感信息。另法:可取消以上文件的users用户的权限,重新启动IIS即可生效。但不推荐该方法。
另外,对于FSO由于用户程序需要使用,服务器上可以不注销掉该组件,这里只提一下FSO的防范,但并不需要在自动开通空间的虚拟商服务器上使用,只适合于手工开通的站点。可以针对需要FSO和不需要FSO的站点设置两个组,对于需要FSO的用户组给予c:winntsystem32scrrun.dll文件的执行权限,不需要的不给权限。重新启动服务器即可生效。
对于这样的设置结合上面的权限设置,你会发现海阳木马已经在这里失去了作用!
web服务器安全设置三、PHP的安全设置
默认安装的php需要有以下几个注意的问题:
C:\winnt\php.ini只给予users读权限即可。在php.ini里需要做如下设置:
Safe_mode=on
register_globals = Off
allow_url_fopen = Off
display_errors = Off
magic_quotes_gpc = On [默认是on,但需检查一遍]
open_basedir =web目录
disable_functions =passthru,exec,shell_exec,system,phpinfo,get_cfg_var,popen,chmod
默认设置com.allow_dcom = true修改为false[修改前要取消掉前面的;]
web服务器安全设置四、MySQL安全设置
如果服务器上启用MySQL数据库,MySQL数据库需要注意的安全设置为:
删除mysql中的所有默认用户,只保留本地root帐户,为root用户加上一个复杂的密码。赋予普通用户updatedeletealertcreatedrop权限的时候,并限定到特定的数据库,尤其要避免普通客户拥有对mysql数据库操作的权限。检查mysql.user表,取消不必要用户的shutdown_priv,reload_priv,process_priv和File_priv权限,这些权限可能泄漏更多的服务器信息包括非mysql的 其它 信息出去。可以为mysql设置一个启动用户,该用户只对mysql目录有权限。设置安装目录的data数据库的权限(此目录存放了mysql数据库的数据信息)。对于mysql安装目录给users加上读取、列目录和执行权限。
Serv-u安全问题:
安装程序尽量采用最新版本,避免采用默认安装目录,设置好serv-u目录所在的权限,设置一个复杂的管理员密码。修改serv-u的banner信息,设置被动模式端口范围(4001—4003)在本地服务器中设置中做好相关安全设置:包括检查匿名密码,禁用反超时调度,拦截“FTP bounce”攻击和FXP,对于在30秒内连接超过3次的用户拦截10分钟。域中的设置为:要求复杂密码,目录只使用小写字母,高级中设置取消允许使用MDTM命令更改文件的日期。
更改serv-u的启动用户:在系统中新建一个用户,设置一个复杂点的密码,不属于任何组。将servu的安装目录给予该用户完全控制权限。建立一个FTP根目录,需要给予这个用户该目录完全控制权限,因为所有的ftp用户上传,删除,更改文件都是继承了该用户的权限,否则无法操 作文 件。另外需要给该目录以上的上级目录给该用户的读取权限,否则会在连接的时候出现530 Not logged in, home directory does not exist。比如在测试的时候ftp根目录为d:soft,必须给d盘该用户的读取权限,为了安全取消d盘其他文件夹的继承权限。而一般的使用默认的system启动就没有这些问题,因为system一般都拥有这些权限的。
web服务器安全设置五、数据库服务器的安全设置
对于专用的MSSQL数据库服务器,按照上文所讲的设置TCP/IP筛选和IP策略,对外只开放1433和5631端口。对于MSSQL首先需要为sa设置一个强壮的密码,使用混合身份验证,加强数据库日志的记录,审核数据库登陆事件的”成功和失败”.删除一些不需要的和危险的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
去掉其他系统存储过程,如果认为还有威胁,当然要小心drop这些过程,可以在测试机器上测试,保证正常的系统能完成工作,这些过程包括:
xp_cmdshell xp_dirtree xp_dropwebtask sp_addsrvrolemember
xp_makewebtask xp_runwebtask xp_subdirs sp_addlogin
sp_addextendedproc
在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server 实例可防止对1434端口的探测,可修改默认使用的1433端口。除去数据库的guest账户把未经认可的使用者据之在外。 例外情况是master和 tempdb 数据库,因为对他们guest帐户是必需的。另外注意设置好各个数据库用户的权限,对于这些用户只给予所在数据库的一些权限。在程序中不要用sa用户去连接任何数据库。网络上有建议大家使用协议加密的,千万不要这么做,否则你只能重装MSSQL了。
apache+php Web安全配置全攻略
kindle整理
个人整理算不上原创,mysql的略过不说了
apache方面:
1.编译源代码,修改默认的banner
2.修改默认的http状态响应码404,503等默认页面
3.访问特殊目录需要密码.htaccess
4.关闭索引目录options -Indexes
5.关闭CGI执行程序options -ExecCGI
6.apache限制目录php_admin_value open_basedir /var/www
7.apache的php扩展名解析漏洞
apache配置文件,禁止.php.这样的文件执行,配置文件里面加入
Files ~ “\.(php.|php3.)”
Order Allow,Deny
Deny from all
/Files
8.apache设置上传目录无执行权限
关闭路径/www/home/upload的php解析:
Directory “/www/home/upload”
Files ~ “.php”
Order allow,deny
Deny from all
/Files
/Directory
PHP方面:
1.配置文件php.ini设置register_globals = Off。(防止变量滥用)
2.magic_quotes_gpc=On还是必须的了,咱可以程序处理好,客户不能- – !!
3.safe_mode是唯一PHP_INI_SYSTEM属性,必须通过php.ini或httpd.conf来设置。要启用safe_mode,只需修改php.ini:safe_mode = On(避免本地包含、文件打开、命令执行)
4.如非特殊需要,一定要关闭PHP的远程文件打开功能。修改php.ini文件(避免远程包含漏洞)
5.防注入,在php.ini中,找到此节:
; Automatically add files before or after any PHP document.
;auto_prepend_file = “phpids.php”
;auto_append_file = “alert.php”
默认是空,请添加所包含的文件。
同时找到:
; UNIX: “/path1:/path2〃
;include_path = “.:/php/includes”
;
; Windows: “\path1;\path2〃
include_path = “.;F:\PHPnow\htdocs”
6.修改display_errors = Off(关闭警告及错误信息,爆路径)
7.disable_function要屏蔽的
disable_functions = phpinfo,exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,dl,popen,show_source
8.disable_classes可以禁用某些类,如果有多个用逗号分隔类名,看情况所需
在Windows Server 2008下配置PHP环境特别的快,只需要鼠标点点就可以了。
1,下载PHP5.2系列版本,目前5.2系列比5.3系列兼容性更好。其中又分为Non Thread Safe和Thread Safe版本,如果要用FastCGI模式运行PHP,就选择Non Thread Safe版本,如果要用ISAPI模式运行PHP,就选择Thread Safe版本。
2,开启IIS7:点击“开始”菜单上面的“服务器管理器”== 角色== 添加角色== 点下一步== 选上II7.5 == 点下一步== 一定选上CGI == 开启安装IIS
3,双击下载下来的PHP安装包,开始安装PHP,一直点next就能完成安装,
勾选的模块:EXIF,GD2,Mcrypt,Mhash,Ming,MySQL,OpenSSL,SOAP,Sockets,XML-RPC,XSL,ZIP
再点next == install 即可安装完成
4,检查PHP有没有安装成功,并且查看php.ini的存放路径
打开 控制面板== 管理工具== Internet 信息服务(IIS)管理器 ,再随意创建一个站点,按下图进行查看:
再到该站点的目录下,创建一个文本文件,改名成index.php,内容是:
?php phpinfo();
再访问这个站点,即可显示PHPINFO页面,而且要记下php.ini的存放路径,如下图:
5,PHP安全设置(重要)
打开刚才记下的php.ini的存放路径。编辑这个文件:
在最低下加入这两行:
disable_functions = exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,dl,popen,show_source
cgi.fix_pathinfo=0
然后重启IIS让配置生效